こんにちは!在宅カエルです。
現在AWS DVAの勉強をしています。
AWS SAM(Serverless Application Model)についてテキストのみだと
イメージが湧かなかったので実際に操作してみようと思います。
今回はAWS公式が提供している「Hello World チュートリアル」が
デプロイ手順が簡単そうなので利用してみます。
AWS SAM とは
AWS SAM(Serverless Application Model)は
サーバーレスアプリケーション構築用のオープンソースフレームワークです。
Lambda、API Gateway、DynamoDB、S3、などを組み合わせた
サーバレスアプリケーションの構築を自動化することができます。
AWSサービスのデプロイにはCloudFormationが利用されています。

CloudFormation
準備
チュートリアルの実施にあたってSAM CLIなど準備が必要です。
AWS SAM CLI
AWS SAMはCLIで操作するのでAWS SAM CLIをインストールしましょう。
手順については下記記事にまとめています。

Python3.7.0のインストール
「Hello Worldチュートリアル」では実行環境を選択できます。
どの実行環境でも問題ないですが、今回はPython3.7.0を選択しようと思います。
御自身の実行環境に合わせて適宜ご準備ください。
Pythonのインストール手順について
以下のサイトが分かりやすかったです。(Macです。)

Hello Worldチュートリアル
Hello WorldチュートリアルはAWS公式サイトを参考に実施しています。
①sam init ②sam build ③sam deployの3ステップから成るので
ステップ毎に確認していきます。
sam init
ターミナルを開き、「sam init」を実行します。
「sam init」コマンドはサーバレスアプリケーションの初期化を行います。
この初期化処理ではテンプレートが作成されます。
sam init
テンプレートを選択する質問が表示されるので「1」を選択します。
続いてサンプルアプリケーションのパッケージタイプを選択します。
ZIP:zip ファイルアーカイブを作成
Image:コンテナイメージを作成
今回は1を選択します。
実行環境を選択します。
お使いの環境に合わせて選択していただいて問題ないです。
今回は Python3.7を選択します。
project nameを入力します。
デフォルトで「sam-app」が設定されていますので、変更の必要がなければ
未入力で問題ありません。
次のテンプレートの選択では「Hello World Example」を選択します。
これで「sam init」による初期設定は完了です。
設定内容が表示されます。
「sam-app」というフォルダが以下のような構成で作成されます。
(フォルダ名は自分でつけたものになります。)
AWS SAM はCloud Formationの拡張機能ですので、
ここで作成される「template.yaml」というyaml形式のファイル内に
テンプレートが記述されています。
sam build
続いて「sam build」コマンドでbuildします。
コマンドを実行する前に「sam init」で作成したフォルダまで移動しましょう。
私の場合「sam-app」フォルダに移動してコマンドを実行します。
sam build
コマンドを実行してしばらくすると、画像の通り「Build Succeeded」と表示されます。
buildはこれで完了です。
sam deploy
「sam deploy」コマンドでAWSアカウントにリソースを構築します。
リソースの構築にはCloud Formationが利用されます。
sam deploy --guided
–guidedオプションをつけることで、実行されている内容を対話形式で表示します。
スタック名(起動するリソース群の名称)とリージョンを設定します。
デフォルト値の「sam-app」「ap-northeast-1」で問題ないので入力せずに進めます。
その後は画面に表示される質問に回答していきます。
最後の質問に回答し、しばらく待つとデプロイが完了します。
OutputsセクションにURLがあるのでアクセスしてみると動作を確認できます。
▽Outputsセクション
画像のように「hello world」と表示されればデプロイは成功です。
マネジメントコンソールからスタックが作成されているか確認します。
マネジメントコンソール>Cloud Formationからスタックを確認すると「sam-app」
というスタックが作成されていることが確認できました。
※チュートリアル実施後、不要であればスタックは削除しておきましょう。
まとめ
簡単なチュートリアルですが実際に手を動かすことによって、
AWS SAMについてイメージが掴めました。
勉強を進めながらわからない部分があれば
積極的にAWSサービスを動かしていきたいと思います。
今回は以上になります。
最後までお読みいただきありがとうございました。
コメント