【要約】🌸 TerraformでAWS Lambda・S3を構築&構築削除してみた [Qiita_Trend] | Summary by TechDistill
> Source: Qiita_Trend
Execute Primary Source
// Problem
筆者は、従来のCloudFormationによる管理から、マルチクラウド対応が可能なTerraformへの移行を検討した。学習の過程において、以下の課題に取り組んでいる。
- ・Terraformを用いたAWSリソース(S3, Lambda, IAM)の具体的な定義方法の習得。
- ・構築したインフラの動作検証(Lambda実行とS3へのファイル書き込み)の手順確立。
- ・検証終了後のリソースを確実に削除するライフサイクル管理の確認。
// Approach
筆者は、GitHub Copilotを開発補助として利用し、コード生成からデプロイまでの一連の作業を行った。具体的な手法は以下の通りである。
- ・GitHub Copilotに対し、要件を伝えてLambdaのソースコードを生成。
- ・Terraformにより、S3バケット、IAMロール、Lambda関数を定義。
- ・terraform init、plan、apply のコマンドを用いてAWS環境へリソースを反映。
- ・aws lambda invoke コマンドでLambdaを実行し、S3への書き込みを確認。
- ・terraform destroy を実行し、構築した全リソースを削除。
// Result
筆者は、Terraformを用いたインフラ構築から削除までのプロセスを完遂した。得られた成果は以下の通りである。
- ・S3バケット、Lambda、IAMロールの正常なプロビジョニング。
- ・Lambda実行によるS3へのJSONファイル作成およびCloudWatch Logsへの出力確認。
- ・terraform destroy による、作成したリソースの一括削除。
Senior Engineer Insight
> 本記事はIaCの初歩的なフローを網羅している。しかし、実戦投入の観点では、StateファイルのS3バックエンド管理や、リソース名の動的な生成、モジュール化といった設計が不可欠である。また、GitHub Copilotによるコード生成は開発速度を上げるが、生成されたコードのセキュリティ検証(最小権限の原則など)は人間が責任を持つ必要がある。