サーバーレスのデプロイと管理 - Amazon API Gateway と AWS Lambda を使用した AWS サーバーレスマルチティアアーキテクチャ

このホワイトペーパーは過去の参考用です。一部のコンテンツは古く、一部のリンクは使用できない場合があります。

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

サーバーレスのデプロイと管理

Lambda 関数のデプロイと管理に役立つように、以下を含むオープンソースフレームワークである AWS Serverless Application Model (AWS SAM) を使用します。

  • AWS SAM テンプレート仕様 - 関数を定義し、それらの環境、アクセス許可、設定、イベントを記述して、アップロードとデプロイを簡素化するために使用される構文。

  • AWS SAM CLI - SAM テンプレート構文の検証、関数のローカル呼び出し、Lambda 関数のデバッグ、パッケージ関数のデプロイを可能にするコマンド。

プログラミング言語を使用してクラウドインフラストラクチャを定義し AWS CDK、CloudFormation を通じてプロビジョニングするためのソフトウェア開発フレームワークである を使用することもできます。CDK はリソースを定義する必須の方法を提供しますが AWS 、 は宣言的な方法 AWS SAM を提供します。

通常、Lambda 関数をデプロイすると、割り当てられた IAM ロールで定義されたアクセス許可で呼び出され、インターネット向けエンドポイントに到達できます。ロジック層の中核として、 AWS Lambda はデータ層と直接統合されるコンポーネントです。データ層に機密性の高いビジネス情報またはユーザー情報が含まれている場合は、このデータ層が適切に分離されていることを確認することが重要です (プライベートサブネット内)。

Lambda 関数がプライベートデータベースインスタンスのようにパブリックに公開できないリソースにアクセスできるようにする場合は、 AWS アカウントの Virtual Private Cloud (VPC) のプライベートサブネットに接続するように Lambda 関数を設定できます。関数を VPC に接続すると、Lambda は関数の VPC 設定内のサブネットごとに Elastic Network Interface を作成し、Elastic Network Interface を使用して内部リソースにプライベートにアクセスします。

VPC 内の Lambda アーキテクチャパターン

VPC 内の Lambda アーキテクチャパターン

VPC で Lambda を使用すると、ビジネスロジックが依存するデータベースやその他のストレージメディアにインターネット経由でアクセスできなくなります。また、VPC は、インターネットからデータを操作する唯一の方法が、定義した APIs と、記述した Lambda コード関数を使用することです。