1
/
5

森田ドラゴンのインターンシップ 6日目 AWS SAM

 こんにちは。高知からインターンしている森田ドラゴンです。 
 最近は、インターンの時間にしかaws を触っていないので、個人でも触って技術力を上げていきたいです。今日はAWS SAM について勉強していました。色々詰まる所はあるものの、ぼんやりとイメージが掴めた?ような気がします。

AWS SAM を触り始める

AWS サーバーレスアプリケーションモデル (AWS SAM) は、AWS でサーバーレスアプリケーションを構築するために使用することができるオープンソースフレームワークです。サーバーレスアプリケーションを定義するために使用する AWS SAM テンプレート仕様と、サーバーレスアプリケーションの構築、テスト、デプロイに使用する AWS SAM コマンドラインインターフェイス (AWS SAM CLI) で構成されています。
- AWS サーバーレスアプリケーションモデル (AWS SAM) の使用  

 サーバーレスアプリケーションの認識が、これで合っているかはわかりませんが、「サーバーの存在を感じずに構築できるアプリケーション」の事だと思っています。(違っていたら後でご指摘お願いします)

 実際に手を動かして色々触ってみると、コンソールを叩いたり、コマンドを打ったりせずに、Lambdaをdeployできたのは面白かったです。仕組みを覚えたら色々な事ができそうで楽しみです。 他にも、ローカル環境で Lambda を実行する際に、Dockerを触りました。いまいちDockerの仕組みと凄さを実感できていないので、経験を積んでから勉強し直したいです。

CloudFormation再び

 AWS SAMの課題をやる前に、「AWS SAM分かった?」と社員の森さんに訊かれたので、とりあえず調子に乗って「わかりました」と答えましたが、案の定分かってないです。ごめんなさい。

AWS SAMは アプリケーションdeployするのに必要なリソースを、CloudFormationで生成するのですが、

Transform: AWS::Serverless-2016-10-31

という設定が書き加えられているせいで、機能が拡張されて、どこが原因か調べるのに時間がかかってしまいました。その他にも、deployの手順として

sam package \
--template-file <設定ファイル> \
--s3-bucket <Lambdaなどを保存するbucket> \
--output-template-file <CloudFormationのデザインを出力するファイル>

このコマンドで アプリケーションをパッケージ?( 1つにまとめる ) にしてから、

sam deploy \
--template-file <先ほど出力されたファイル> \
--stack-name <スタックの名前>

CloudFormationでdeployする。という templateファイル から CloudFormationのファイルへの変換を挟んでいるため、どの記述方法で書けばいいのか混乱しました。AWSコンソールに移して書いてみても、有効じゃないというエラーしか出てこなかったので、ログがどこにあるのか探し当てなければ、無限大に時間がかかりそうです。EC2であれば普段触っている分、コードで書いてもイメージが付きやすいのですが、API Gatewayは触った経験が少ないので、そういったことも影響して苦戦してます。 次はエラーログを探してから、そこを指針に動いていけたらなと思います。

株式会社サーバーワークスでは一緒に働く仲間を募集しています
2 いいね!
2 いいね!
同じタグの記事
今週のランキング
株式会社サーバーワークスからお誘い
この話題に共感したら、メンバーと話してみませんか?