AWS SAMのWindows運用についてご紹介!

AWS サーバーレスアプリケーションモデル (AWS SAM) とは

AWS サーバーレスアプリケーションモデル (AWS SAM) は、AWS でサーバーレスアプリケーションを構築するために使用することができるオープンソースフレームワークです。
サーバーレスアプリケーションは、Lambda 関数、イベントソース、およびその他のリソースを組み合わせたもので、協調して動作することによってタスクを実行します。サーバーレスアプリケーションは単なる Lambda 関数ではないことに注意してください。API、データベース、イベントソースマッピングなどの追加リソースを含めることができます。
AWS SAM を使用してサーバーレスアプリケーションを定義できます。AWS SAM は、次のコンポーネントで構成されています。

AWS SAM テンプレート仕様…この仕様を使用して、サーバーレスアプリケーションを定義します。サーバーレスアプリケーションを構成する関数、API、アクセス権限、設定、イベントを記述するためのシンプルで簡潔な構文を提供します。AWS SAM テンプレートファイルを使用して、サーバーレスアプリケーションであるデプロイ可能でバージョン管理された単一のエンティティを操作します。

AWS SAM コマンドラインインターフェイス (AWS SAM CLI)
このツールを使用して、AWS SAM テンプレートによって定義されたサーバーレスアプリケーションを構築します。CLI には、AWS SAM テンプレートファイルが仕様に従って記述されていることを確認したり、Lambda 関数をローカルで呼び出したり、デバッグ Lambda 関数をステップスルーしたり、サーバーレスアプリケーションをパッケージ化して AWS クラウドにデプロイしたりするためのコマンドが用意されています。

このガイドでは、AWS SAM を使用して、シンプルなサーバーレスアプリケーションを定義、テスト、およびデプロイする方法について説明します。また、ダウンロードしてローカルでテストし、AWS クラウドにデプロイできるサンプルアプリケーションも用意されています。このサンプルアプリケーションは、独自のサーバーレスアプリケーションを開発するための出発点として使用できます。

AWS SAM のメリット

AWS SAM は他の AWS のサービスと統合されるため、AWS SAM でサーバーレスアプリケーションを作成すると、次のような利点があります。

単一のデプロイ構成…AWS SAM を使用すると、関連するコンポーネントやリソースの整理が容易になり、単一のスタック上で操作できるようになります。AWS SAM を使用すると、メモリやタイムアウトなどの設定をリソース間で共有し、単一のバージョン管理されたエンティティとしてすべての関連リソースを一緒にデプロイできます。

AWS CloudFormation の拡張…AWS SAM は AWS CloudFormation の拡張であるため、AWS CloudFormation の信頼性の高いデプロイ機能を利用できます。AWS SAM テンプレートで AWS CloudFormation を使用してリソースを定義できます。また、AWS CloudFormation で利用できるすべてのリソース、組み込み関数、およびその他のテンプレート機能も使用できます。

組み込みのベストプラクティス…AWS SAM を使用して、インフラストラクチャを設定として定義し、デプロイできます。これにより、コードレビューなどのベストプラクティスを使用し、実行できるようになります。また、数行の構成で、CodeDeploy を介して安全にデプロイし、AWS X-Ray を使用してトレースを有効にできます。

ローカルのデバッグとテスト…AWS SAM CLI を使用すると、AWS SAM テンプレートで定義されたサーバーレスアプリケーションをローカルで構築、テスト、およびデバッグできます。CLI では、Lambda のような実行環境をローカルで提供します。実際の Lambda 実行環境と同等な機能を提供することは、問題を事前に把握するのに役立ちます。コードをステップ実行してデバッグし、コードの実行内容を理解するには、JetBrains の AWS ツールキット、AWS Toolkit for PyCharm、AWS Toolkit for IntelliJ、および AWS Toolkit for Visual Studio Code などの AWS ツールキットで AWS SAM を使用します。これにより、クラウド上で発生する可能性のある問題を見つけてトラブルシューティングすることが可能になり、フィードバックループが強化されます。

開発ツールとの緊密な統合…サーバーレスアプリケーションを構築するための一連の AWS ツールで AWS SAM を使用できます。新しいアプリケーションは、AWS Serverless Application Repository で見つけることができます。AWS SAM ベースのサーバーレスアプリケーションをオーサリング、テスト、およびデバッグするには、AWS Cloud9 IDE を使用できます。サーバーレスアプリケーションのデプロイパイプラインを構築するには、CodeBuild、CodeDeploy、および CodePipeline を使用できます。AWS CodeStar を使用して、プロジェクト構造、コードリポジトリ、および自動的に構成される CI/CD パイプラインの使用を開始することもできます。サーバーレスアプリケーションをデプロイするには、Jenkins プラグインを使用できます。Stackery.io ツールキットを使用して、本番用のアプリケーションを構築できます。

AWS SAM CLI のインストール

AWS SAM には、サーバーレスアプリケーションの作成と管理を容易にするコマンドラインツールである AWS SAM CLI が用意されています。AWS SAM CLI を使用するには、いくつかのものをインストールして設定する必要があります。Windows、Mac、Linaxそれぞれでインストール方法が異なります。

おわりに

いかがだったでしょうか。今回はAWS サーバーレスアプリケーションモデル (AWS SAM) についてご紹介しました。単一のデプロイ構成やローカルのデバッグとテストもできるようになるので、是非一度ご検討してみてはいかがでしょうか。

コメントを残す

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