AWS

今回Amazon API GatewayとAmazon Lambdaを使ってAPIを作成したのでその方法をまとめました。

Amazon API Gatewayとは

Amazon API Gatewayとは何かを簡単に表すと、
「APIの作成と管理が簡単にできるサービス」です。
AWSに含まれています。

APIを作成

画面上で入力したり選んでいくだけで簡単にAPIができます。
APIの玄関となりEC2やLambdaと合わせてつくることが可能なのです。

APIを管理

APIキーによる認証やバージョンの管理も含めAPIを公開するために必要なものが全て揃っています。

Lambdaとあわせる

LambdaとあわせることでEC2などサーバーなしでAPIができます。

AWS Lambdaとは

AWS LambdaもAWSのサービスです。
サーバーなし(サーバーレス)でコードが実行できます。

読み方は「ラムダ」だそうです。

サーバーの管理がいらない

サーバーがないので構築も管理も不要!
コードだけ書けばok

費用は使った分だけ

課金はミリ秒単位でコードが実行された分だけです。
EC2などのように起動しっぱなしであればかかり続けますが、実際に動いた分だけしかかからないのです!

LambdaとRDSは相性が悪い

今回はRDSを一緒に使いませんが相性が悪いようです。
Lambda+RDSはアンチパターン!!

API Gatewayがかなりのアクセスをさばいてくれるのに、RDSのコネクション上限が…

API構築の手順

さて簡単に作ってみます。

Lambdaの作成

Amazon Lambda作成

各種入力します。
言語はGo、node、pythonから自由に選択しましょう。

API Gatewayの作成

API-Gateway

API作成を押しましょう!

API作成

API名のみ今回は入力します。
API名はURLに含まれたりしないので、わかりやすい好きなものを入れましょう。

リージョンの API は現在のリージョンにデプロイされます。
エッジ最適化 API は CloudFront ネットワークにデプロイされます。
プライベート API は VPC からのみアクセスできます。

リソースの追加

リソース作成

アクションを押して

リソース作成

リソース作成

リソース作成

今回「items」と入れて作ってます。
リソースパスは自動で名前に合わせて入ります。

「/items」となります。

「/items/{id}」というリソースもさらに子で作成します。

メソッド追加

リソース作成

続けてメソッドを追加

メソッド作成

まずはGETを作成。

Lambdaとの連係

GETにLambda連携

統合タイプを「Lambda関数」にして、Lambda関数には作成していた関数名を入れましょう。

統合リクエスト

リクエストパスのid(/items/{id})をLambdaで受け取れるように設定します。

GET – 統合リクエストの「URL パスパラメータ」に追加します。
名前「id」,マッピング元「 method.request.path.asin 」を入れます。

そしてマッピングテンプレートを「テンプレートが定義されていない場合 (推奨)」にします。
application/jsonを追加して、下記の用に記述して保存。

これでAPIが動作するように。。

あとはテストAPIキー認証の追加、デプロイなどを必要に応じて行いましょう!

この記事を書いた人

鳥井 慎太郎
鳥井 慎太郎
Web事業家/ブロガー
毎日楽しい。 個人開発(Webサービス、ゲームアプリ)