サーバーレスアプリケーションをデプロイする - AWS サーバーレスアプリケーションモデル

サーバーレスアプリケーションをデプロイする

AWS SAM は AWS CloudFormation を基盤となるデプロイメントメカニズムとして使用します。詳細については、「AWS CloudFormation とは何か」を参照してください。

AWS SAM コマンドラインインターフェイス (CLI) コマンドを使用して、アプリケーションをデプロイできます。AWS SAM と統合する他の AWS のサービスを使用して、デプロイを自動化することもできます。

AWS SAM CLI を使用したパッケージ化とデプロイ

サーバーレスアプリケーションをローカルで開発およびテストした後、sam package および sam deploy コマンドを使用してアプリケーションをデプロイできます。

注記

このセクションで説明する sam package コマンドと sam deploy コマンドは、それぞれ AWS CLI の同等のコマンド aws cloudformation packageaws cloudformation deploy と同じです。

sam package コマンドは、コードアーティファクトを圧縮し、Amazon S3 にアップロードし、使用する準備が整ったパッケージ化された AWS SAM テンプレートファイルを生成します。sam deploy コマンドは、このファイルを使用してアプリケーションをデプロイします。たとえば、次のコマンドは packaged.yaml ファイルを生成します。

# Package SAM template sam package --template-file sam.yaml --s3-bucket mybucket --output-template-file packaged.yaml

次の sam deploy コマンドは、以前に作成されパッケージ化された AWS SAM テンプレートファイルを取得し、サーバーレスアプリケーションをデプロイします。

# Deploy packaged SAM template sam deploy --template-file ./packaged.yaml --stack-name mystack --capabilities CAPABILITY_IAM
注記

ネストされたアプリケーションが 1 つ以上含まれているアプリケーションをデプロイするには、CAPABILITY_AUTO_EXPAND 機能を sam deploy コマンドに含める必要があります。

サーバーレスアプリケーションの公開

AWS Serverless Application Repository は、AWS SAM を使用して構築されたサーバレスアプリケーションをホストするサービスです。サーバレスアプリケーションを他のユーザと共有する場合は、AWS Serverless Application Repository で公開できます。また、他のユーザーが公開したサーバーレスアプリケーションを検索、参照、およびデプロイすることもできます。詳細については、「AWS Serverless Application Repository とは」を参照してください。

デプロイの自動化

他の多数の AWS のサービスと AWS SAM を使用して、サーバーレスアプリケーションのデプロイプロセスを自動化できます。

  • CodeBuild: CodeBuild を使用して、サーバーレスアプリケーションを構築、ローカルテスト、およびパッケージ化します。詳細については、「CodeBuild とは」を参照してください。

  • CodeDeploy: CodeDeploy を使用して、サーバーレスアプリケーションに更新を段階的にデプロイします。方法の詳細については、サーバーレスアプリケーションを段階的にデプロイする を参照してください。

  • CodePipeline: CodePipeline を使用して、サーバーレスアプリケーションをリリースするために必要なステップをモデル化し、視覚化し、自動化します。詳細については、「CodePipeline とは」を参照してください。