terraform構築手順〜API Gateway 編〜 - 株式会社CoLabMix

terraform構築手順〜API Gateway 編〜

開発部の「エイジ」です。

今回はterraformを使ってAPI Gatewayを構築する手順を書きたいと思います。

 

関連記事

 

terraformとは

公式

HashiCorpが手がける、インフラ構築や設定をコード(テンプレートファイル)を使って自動化するためのツールであり、 Infrastructure as Code を実現するOSSです。

 

APIとは

Application Programming Interfaceの略でありアプリケーションの連携をするのに用いられます

 

terraformを使用することのメリット

AWS等のGUIで設定せずコードで一気に作成ができ、また消去も再利用もすることができ大変便利です。
まずはTerraformのインストールから行います。

 

Terraformインストール

 

Homebrew でインストールします。

Terraformのバージョン確認


 

AWSの環境構築

今回はAWS CLIを利用するにあたりiamユーザーを作ります。

IAM ユーザーを作る

AWS CLIを使うのでプログラムによるアクセスにも☑️してください。

管理権限をAdministratorAccessにしてください。

無事作成できたら次にAWS CLIをインストールします。

 

AWS CLI

AWS CLIの設定

先ほど制作したiamユーザーの情報を登録します。


一つづづ先ほど作成したiamユーザーから設定していきます。

 

Terraformを作成する。

 

これからAPI Gateway作成までを書いていきます。

まずはTerraformのコマンドを記します。

まずはTerraformを書き込むファイルを作成します。

※Terraformは拡張子が.tfのファイルを自動的にテンプレートとして認識してくれます。

 

API Gateway の宣言

aws_api_gateway_rest_apiを宣言します。

コマンドを実行します。


実際にAWS上で確かめると作成されています。

次にリソースの設定をしていきます。

aws_api_gateway_resourceの宣言

リソースとはAPIのパスです。リソースを指定することで任意のパスを作ることができます。

実行するとルートの直下へ/mydemoresourceが作成されます。

 

aws_api_gateway_methodの宣言

ここでは受け付けることができるクエリパラメータや必須のパラメータ, 認可の有無, API Keyの有無... などと実際に受け付けるリクエストを絞り込む, いわばリクエストの受付のような役割を担います.

Amazon API Gateway は何をしてるのか

リソースで指定した物にメソッドを付与します。今回はGETを指定いたします。

aws_api_gateway_integrationの宣言

統合リクエストではバックエンドへどのように繋ぐのか決めます。

ntegration Requestはどのバックエンドにどのようにデータを渡すかを決定します. バックエンドとは例えばLambda関数やAWSサービスなどといった実際にリクエストを処理するコンポーネントのことです.

Amazon API Gateway は何をしてるのか

統合ポイントのtypeを指定します。今回はMOCKを指定しました。

 

 

aws_api_gateway_integration_responseの宣言

バックエンドから返ってきたレスポンスに関する設定を行います. 例えばHTTPステータスコードをマッピングしたり, レスポンスの内容の変換を行ったりします.

Amazon API Gateway は何をしてるのか

 

aws_api_gateway_method_responseの宣言

クライアントから受け取ったリクエストに対するAPI Gatewayの最終的なレスポンスをここで定義します. ステータスコードやHTTPヘッダなどといった部分です.

Amazon API Gateway は何をしてるのか

レスポンスのステータスコードを設定します。

最後にデプロイをします。

aws_api_gateway_deploymentの宣言

そして実行すると作成されます。

 

 

以上になります。お読みいただきありがとうございました。

 

 

このブログは株式会社CoLabMixによる技術ブログです。

GCP、AWSなどでのインフラ構築・運用や、クローリング・分析・検索などを主体とした開発を行なっています。

Ruby on RailsやDjango、Pythonなどの開発依頼などお気軽にお声がけください。

開発パートナーを増やしたいという企業と積極的に繋がっていきたいです。

お問い合わせやご依頼・ご相談など

    関連記事

    1. CentOS8にTripwireのインストール

    2. Elasticsearch 6 を使ったデータ検証 その6( Aggr…

    3. Vue.jsで申し込み同意でボタンをアクティブにするチェックボタンの作…

    4. Scrapyでデータの保存をmongodbにしてみる(Scrapy そ…

    5. CentOS7のPython3でJUMAN++のインストールと利用

    6. AmazonLinuxでpyenvを利用してPython3.6の仮想環…

    最近の記事

    制作実績一覧

    ITシステム開発の開発先・発注先の選び方を見つけるコンシェルジュサービス

    ITシステム開発の開発先・発注先の選び方を見つけるコンシェルジュサービス

    ITクリエイターのための転職・仕事情報サイト

    ITクリエイターのための転職・仕事情報サイト

    SNS分析での転職支援

    SNS分析での転職支援

    受託パートナーのマッチングとSES人材のマッチング

    受託パートナーのマッチングとSES人材のマッチング