Table of Contents
はじめに
FundastA Inc.の鈴木です。
現在、AWS ソリューションアーキテクトアソシエイト試験合格に向け AWS について勉強中です。
今回は Lambda と APIGateway について勉強したことを備忘録として、記述していきます。
Lambdaとは
サーバーレスコンピューティングサービスで、サーバーのプロビジョニングや管理、ワークロード対応のクラスタースケーリングロジックの作成、イベント統合の維持、ランタイムの管理を行わずにコードを実行できます。
Lambda の特徴
- 
実行基盤は全て AWS が管理
- 
AWS サービスと連携させることで簡単にイベントドリブンなアプリケーションを実装可能
- 
Node.js/Java などで書かれたコードを実行
- 
100 ミリ秒単位でコード実行時間に対しての課金でありコスト効率が非常に高い
- 
オートスケール(サーバー負荷に応じて、自動的にクラウドサーバーの台数を増減させる機能)
Push モデル
- 
AWS サービスもしくはアプリが直接実行する
- 
順不同
- 
3 回までリトライ
- 
S3 にファイルが格納させる等のイベントが発生した場合に、S3 が Lambda にイベント通知するモデル
Pullモデル
- 
ストリームに入ってきた順に処理
- 
Lambda が自動的にデータ取得などのファンクションを実行する。
- 
イベントごとに複数レコードを取得可能
- 
データが期限切れになるまでリトライ
機能紹介
- ブループリント
- Lambda ファンクションをコーディングする際にサンプルコード集を利用可能にしてくれる。
 
- バージョニング
- ファンクションの一時点を記録管理することが可能であり、復元などが可能になる。
 
- VPC アクセス
- VPC 内のリソースへのアクセス
- 
インターネットを経由せずにアクセスが可能
- 
ENI を利用して実現:ENI には指定したサブネットの IP が DHCP で動的に割り当てられる。
 
- 
 
- VPC 内のリソースへのアクセス
- アクセス制御
- 
VPC 内リソースにアクセスさせたい Lambda ファンクションに対して VPC サブネットおよびセキュリティグループを指定
- 
ファンクションに割り当てる IAMRole に “AWSLambdaVPCAccessExecutionRole” をアタッチしておく
 
- 
APIGateway
API作成/管理をフルマネージド型サービスで提供されるサービス
特徴
- 
最大数十万個のAPI同時呼び出し・受付が可能
- 
アクセス制御の管理
- 
DDoS攻撃の対応やスロットリングによるバックエンド保護
- 
EC2/Lambdaのワークロード処理を実行する
- 
Lambdaと密接に統合される
- 
WebSocketを利用したリアルタイムかつ双方向通信のAPIも処理可能
API とは
API はアプリケーションソフトウェア開発に利用される標準的なインターフェース群のこと
APIGateway を連携口としてアプリとの連携を実現できる。
APIGateway と Lambda のユースケース
APIGateway を連携口として外部アプリとの連携を実現する形です。簡単なイメージとしてはこのような図になります。
次に EC2 の構築を例にどのようにサーバーレス化されるかを見てみます。
まず「 EC2 中心の WEB アプリケーションの構築」をしてみた図になります。

上図のように EC2 や NAT ゲートウェイなど様々な設定をして、環境を構築しています。
続いて
先ほどの「 EC2 中心の WEB アプリケーションの構築」をサーバーレス化した場合のアーキテクチャ図がこちらになります。

APIGateway と Lambda を使用することで、簡略化することができました。
Lambda と APIGateway を用いてこのような環境を構築することができます。
おわりに
APIGateway と Lambda は、私も実際に触って動作を確認しました。
みなさんも実際に触りサーバーレス化を体験してみても良いと思います。
ご覧いただきありがとうございます。
 
                
