【手順】
- AWSマネジメントコンソールでCloudFormationのテンプレートを作成
- EC2インスタンスの構成(AMI ID、インスタンスタイプ、セキュリティグループなど)をテンプレートに定義
- 作成したテンプレートを使ってスタックを作成
- 作成されたインフラリソースを確認し、適切に構成されていることを確認
- 変更管理を行い、コードでのインフラ構成を運用に反映
【実施したこと】
CloudFormationテンプレートを作成し、スタックを構築することでインフラをコードベースで定義しました。
テンプレートではAMI、インスタンスタイプ、キーペア、セキュリティグループの定義などを行いました。
【結果】
テンプレートからスタックを作成し、意図通りのEC2インスタンスを自動で立ち上げることに成功しました。 インフラをコードで管理することで、変更点の追跡や再利用が容易になり、構成の一貫性も確保できました。


【苦戦したこと】
S3にアップロードしたテンプレートファイル(YAML)のURL指定のエラー
URLの形式(例:s3://バケット名/ファイル名.yaml)や、ファイルが実際に正しくアップロードされているかの確認が不十分だったため、CloudFormation側でテンプレートが見つからない・内容が不正というエラーが出てしまいました。
また、テンプレートファイルの内容が正しく保存されていない状態でアップロードしてしまったことも原因でした。修正したはずの内容が反映されておらず、構文ミスやリソースの未定義などでスタック作成が失敗することがありました。
S3バケット名の重複エラー
最初は手動でバケット名を指定していましたが、スタック作成時に名前の重複エラーが発生することがありました。
そのため、S3バケット名を自動で生成するように変更しました。
これにより、名前の重複を避け、他のリソースと衝突することなく、スムーズにスタックを作成できるようになりました。
変更前のテンプレート

変更後のテンプレート

【今後の活用】
今回、CloudFormationテンプレートをアップロードするためにS3バケットを使用しましたが、
ブラウザ上での操作ではフォルダー構造を保ったままアップロードするのが難しく、作業効率がやや悪いと感じました。
今後は、WinSCPなどのS3対応ツールを活用し、テンプレートファイルをフォルダーごと一括で効率的にアップロードできるようにしたいです。
これにより、作業のスピードアップとミスの軽減が期待できます。