-
タグ
タグ
- セキュリティ
- 人材開発・教育
- システム開発
- アプリ開発
- モバイルアプリ
- DX
- AI
- サイバー攻撃
- サイバー犯罪
- 標的型攻撃
- 脆弱性
- 働き方改革
- 企業市民活動
- 攻撃者グループ
- JSOC
- JSOC INSIGHT
- サイバー救急センター
- サイバー救急センターレポート
- LAC Security Insight
- セキュリティ診断レポート
- サイバー・グリッド・ジャパン
- CYBER GRID JOURNAL
- CYBER GRID VIEW
- ラックセキュリティアカデミー
- すごうで
- ランサムウェア
- ゼロトラスト
- ASM
- EDR
- SASE
- デジタルアイデンティティ
- インシデントレスポンス
- 情シス向け
- 対談
- CIS Controls
- Tech Crawling
- クラウド
- クラウドインテグレーション
- データベース
- アジャイル開発
- DevSecOps
- OWASP
- CTF
- FalconNest
- セキュリティ診断
- IoT
- EC
- サプライチェーンリスク
- スレットインテリジェンス
- テレワーク
- リモートデスクトップ
- アーキテクト
- プラス・セキュリティ人材
- 障がい者採用
- 官民学・業界連携
- カスタマーストーリー
- 白浜シンポジウム
- CODE BLUE
- 情報モラル
- クラブ活動
- 初心者向け
- 趣味
- カルチャー
- 子育て、生活
- 広報・マーケティング
- コーポレート
- ライター紹介
- IR
こんにちは。クラウドサービス部の小池です。
サーバーがない状態でどうやってシステムを構築するのか想像できない、実際に手を動かしてみないとピンと来ないという、スキルシフト仲間の声にお答えしたサーバーレス初心者向けの連載第4回です。今回は、API GatewayとLambdaを組み合わせて、APIを作成する方法を体験します。
インフラエンジニア歴20年目にして、APIというものを初めて作ってみます。果たしてまともに動くものが作れるのでしょうか......。(AWSのハンズオン手順は疑っていませんが、自分のアプリ開発力は疑っている私です)
ここからは、AWSが公開しているハンズオン※のセクション4をもとに実際に手を動かした結果や、前提知識が足りなくて迷ったところ、理解を深めるポイントを詳しく解説します。画面遷移は多少変わっていますが、ハンズオン手順の通りに構築は問題なくできます。「サーバーレス構築とは何なのか」について理解し、公式ハンズオンの隙間を埋める手がかりとして、この記事をご覧ください。
Hello from Lambda in API Gateway!
API GatewayでREST APIを新たに作成し、連載第1回で作成したLambda関数とWebブラウザに連携してみます。
作業環境
Webブラウザ | Firefox |
---|---|
作業するリージョン | AWS東京リージョン[アジアパシフィック(東京) ap-northeast-1 ] |
利用するサービス | AWS Lambda(イベント発生時にコードを実行)| AWS (amazon.com) Amazon API Gateway(規模に応じた API の作成、維持、保護)| AWS |
API Gatewayとは
Amazon API Gatewayについて、公式によると「Amazon API Gatewayを利用すれば、規模にかかわらず簡単にAPIの作成、公開、保守、モニタリング、保護を行えます」とのことです。APIとは、「Application Programming Interface」の略で、ソフトウェアやプログラム、Webサービスをつなぐインターフェースを意味します。
今回のハンズオンではAPI GatewayをWebブラウザ(フロント)とLambda(バック)を連携させることに使っています。連載第3回のSQSに続き、サーバーレスな連携にはこのサービスも重要そうですね!
ちなみに、Google Cloudにも「API Gateway」という名のサービスがあるので確認してみましょう。こちらも、「Google Cloud サーバーレス バックエンド向けAPIを作成、セキュリティ保護、モニタリングすることができます。」とされており、ほぼ同じにみえます。いずれ詳細比較してみたいところです。
※ API Gateway | API ゲートウェイ | Google Cloud
API GatewayでREST APIを作ってみる
ハンズオン手順に従い、API Gateway画面にて以下を入力しREST APIを作成してみます。前回まで(Lambda・SNS・SQS)と異なり、今回はタグを有効化する画面がないので、リソース削除時にうっかり忘れないよう注意が必要です。
APIタイプ | REST API | 選択 | |
---|---|---|---|
API名 | rkoike-handson-api ※ 冒頭部はユーザ固定読み替えしてください |
入力 | |
エンドポイント タイプ |
リージョン | デフォルト | |
メソッド | メソッド タイプ |
GET | 選択 |
統合タイプ | Lambda 関数 | 選択 | |
rkoike-handson-function (連載第1回で作成したLambda関数を指定) |
検索+選択 | ||
デフォルトタイムアウト | チェックする | デフォルト | |
メソッドリクエスト の設定 |
(特に設定しない) | デフォルト | |
URLクエリ文字列 パラメータ |
(特に設定しない) | デフォルト | |
HTTPリクエストヘッダー | (特に設定しない) | デフォルト | |
リクエスト 本文 |
(特に設定しない) | デフォルト |
ハンズオンシナリオはLambdaですが、他の選択肢は画像の通りです。
ここでちょっと寄り道。ここでいう「メソッド」とは、リソース(ツリー構造になっているAPIのパス)に対するアクションで、GET、POST、PUT、DELETEなどのHTTPメソッドを指します。完全にプログラミングの世界ですね。この連載はサーバーレス触ってみたというシリーズですが、API Gatewayにいたってはサーバーレスであることが、もはや大前提にもみえます。
メソッドをテストしてみる
連載第1回で作成した「Hello from Lambda!」のLambda関数を、REST APIのメソッドとして動かしてみます。
テストタブのオレンジ色の「テスト」ボタンを押すと、ご挨拶が表示されました!ちゃんとメソッドにLambdaが組み込めているようです。
APIをデプロイしてみた
メソッドGETの「アクション」メニューから、APIのデプロイを選択すると、「ステージ」を定義する画面が出てきました。ハンズオンに従って、ステージ名のみ定義してデプロイを進めます。そうそう、最初に作る画面には出てこないのですが、ステージ定義の画面にはタグの有効化メニューがあるので、これまで通りタグ付けはしておきましょう。
ステージ名 | beta | 入力 |
---|---|---|
タグの有効化 | UserName | 個人名入力 |
Webブラウザからアクセスしてみる
デプロイ画面の下の方にある「URLを呼び出す」からURLをコピーしてWebブラウザに貼り付けて「Enter」を押します。おや!JSONタブでLambdaのご挨拶が表示されましたね。大成功!
ついでに生データのタブを開いてみます。
そうでした、Lambda関数のデフォルトはこれでした。(連載第1回のコードと比べてみた)
ハンズオンのメイン手順はここまでです。やったー!コンプリートしました!
API Gatewayのお財布事情
例によって実際利用するにあたって気になるのは、費用の問題です。
※ 料金 - Amazon API Gateway | AWS
最初の課金しきい値が大きいですね......。3億リクエストまで、100万リクエスト単位で同じ課金方式でしょうか?
※ Create estimate: Configure Amazon API Gateway
検証用に、月間1,000回単位で10ユニット、キャッシュメモリもいらないとして試算するとこちらになりました。
REST APIのコスト(毎月):0.04 USD
2024年9月3日現在の料金表だと、だいたい10円くらいですね。このシリーズで使ってみた中では一番お高い!いやいや、業務利用をするとなると、このリクエスト数に収まるわけがありません。実際にかかる費用は、扱うデータ量と処理内容、処理する頻度によると考えてください。
おわりに
もともとのハンズオンシナリオは、ここまでで終了です。あとは作成したリソースのお片付け(削除)をすればいいのですが、そのまえに!ここまで動かしてみたログを、あとから確認するやり方について確認しておきましょう。次回もぜひお楽しみに。
なお、ラックはセキュリティの会社ですが、筆者のようなスキルシフト中のエンジニアだけでなく、経験豊富なクラウド技術者やコンサルタントが多数在籍しています。AWSだけではなく、OCI、Azure、Google Cloudも取り扱い、クラウド移行からクラウドネイティブ支援、サーバーレス構築まで、幅広くサポートしますので、お気軽にご相談ください。
関連記事
- Hello from Lambda!AWSでサーバーレスに触ってみた #1
- S3イベント連携 with Lambda!AWSでサーバーレスに触ってみた #2
- Hello from SQS to Lambda!AWSでサーバーレスに触ってみた #3
- Lambdaのログを見てみよう&検証リソースお片付け!AWSでサーバーレスに触ってみた #5
プロフィール
小池 玲子
外国語学部出身でIBM Power/AIX/PowerHA育ちのインフラエンジニア。
現場でマネジメント修業を積み、PMP取得を経て、クラウド系PMへ移行中。
タグ
- セキュリティ
- 人材開発・教育
- システム開発
- アプリ開発
- モバイルアプリ
- DX
- AI
- サイバー攻撃
- サイバー犯罪
- 標的型攻撃
- 脆弱性
- 働き方改革
- 企業市民活動
- 攻撃者グループ
- JSOC
- もっと見る +
- JSOC INSIGHT
- サイバー救急センター
- サイバー救急センターレポート
- LAC Security Insight
- セキュリティ診断レポート
- サイバー・グリッド・ジャパン
- CYBER GRID JOURNAL
- CYBER GRID VIEW
- ラックセキュリティアカデミー
- すごうで
- ランサムウェア
- ゼロトラスト
- ASM
- EDR
- SASE
- デジタルアイデンティティ
- インシデントレスポンス
- 情シス向け
- 対談
- CIS Controls
- Tech Crawling
- クラウド
- クラウドインテグレーション
- データベース
- アジャイル開発
- DevSecOps
- OWASP
- CTF
- FalconNest
- セキュリティ診断
- IoT
- EC
- サプライチェーンリスク
- スレットインテリジェンス
- テレワーク
- リモートデスクトップ
- アーキテクト
- プラス・セキュリティ人材
- 障がい者採用
- 官民学・業界連携
- カスタマーストーリー
- 白浜シンポジウム
- CODE BLUE
- 情報モラル
- クラブ活動
- 初心者向け
- 趣味
- カルチャー
- 子育て、生活
- 広報・マーケティング
- コーポレート
- ライター紹介
- IR