[SAA資格勉強]LambdaとAPIGateway

はじめに

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 内リソースにアクセスさせたい 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 は、私も実際に触って動作を確認しました。

みなさんも実際に触りサーバーレス化を体験してみても良いと思います。

ご覧いただきありがとうございます。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA