serverless infrastructureデプロイ手法
LambdaやAPI Gateway, AppSyncなど
便利だがとかくリソース数が多く通常のIaCだと記述が煩雑になりがち
またTerraform自体はローカル開発をScope外としているためローカル開発が弱い
AmplifyフレームワークやServerlessフレームワークにあるようなlocal mock開発を構成する手段のサポートが薄い
Terraformの部分的代替としての各ツール
Amplify
Amplify自体がCLIとデプロイ、クライアントへの組み込みをサポートした大統一FWのような様相を呈しており、Terraform等との相互運用性が低くTerraformでServerless系以外のリソースを管理しつつ部分的にAmplifyのような使い方がしづらい
Serverless
SSM経由でのパラメータの相互運用はサポートしている
serverless offlineやappsync-simulatorでlocal mockが強い
localでlambda function mockするのがserverless mock invokeのような形で比較的簡単
aws-sdkでの投げ先をlocalエンドポイントにすることで切り替え
appsync-simulatorではfunction名で指定しserverless.ymlで定義したfunctionsから出力
ただappsync-simulatorでもHTTPデータソースはlocalhostを直接エンドポイントに指定出来ないようだったのでなにかfakeのドメインにする(local.example.app等)
CloudFormationベースなので反映は若干遅いのとTerraformのようなplanによる差分出力が確認出来ないのが辛い
Serverless自体はあまり筋がよくないところが多いので完全betは危ない気がするがserverless部分に限り使うというのは許容されるかもしれない(Lambda, API Gateway, AppSync, DynamoDB等)