ハンズオン資料

「構築しただけでは終わらせない。学びを言葉にして、"自分の技術"にする。」

View on GitHub

🗄️ Day3 Database Lab - CloudFormation版

🎯 概要

Day3のデータベース演習をCloudFormationで自動化したバージョンです。手動でのRDSエンドポイント設定が不要になり、完全自動でEmployee Management Systemが構築されます。

🏗️ 構築されるリソース

ネットワーク

データベース

Webサーバー

セキュリティ

🚀 デプロイ手順

CloudFormationコンソールからのデプロイ

  1. CloudFormationコンソールにアクセス
  2. 「スタックの作成」→「新しいリソースを使用(標準)」
  3. テンプレートファイル: day3-db-lab-manual.yaml をアップロードし、「次へ」
  4. スタック名: Day3DbLabStackを入力し、「次へ」
  5. スタックオプションの設定: デフォルト値のまま「次へ」
  6. 「送信」をクリック

⚠️ 必要な操作はここまで。以下は参考情報。

AWS CLIからのデプロイ

CloudFormationコンソールからのデプロイした場合は実施不要

# スタック作成
aws cloudformation create-stack \
  --stack-name Day3DbLabStack \
  --template-body file://day3-db-lab-manual.yaml \
  --capabilities CAPABILITY_IAM \
  --region us-east-1

# デプロイ状況確認
aws cloudformation describe-stacks \
  --stack-name Day3DbLabStack \
  --query 'Stacks[0].StackStatus' \
  --region us-east-1

🧹 リソース削除

# CloudFormationスタック削除
aws cloudformation delete-stack \
  --stack-name Day3DbLabStack \
  --region us-east-1

⏰ デプロイ時間

🎯 主要な改善点

🔧 完全自動化

🔒 セキュリティ強化

📊 運用性向上

📤 出力値

出力名 説明
ApplicationUrl Employee Management SystemのURL
DatabaseEndpoint RDSエンドポイント
VpcId 作成されたVPCのID

🔍 トラブルシューティング

アプリケーションにアクセスできない

  1. EC2インスタンス状態確認
    aws ec2 describe-instances --filters "Name=tag:Name,Values=employee-web-server"
    
  2. セキュリティグループ設定確認
    • ポート3000が0.0.0.0/0に開放されているか確認
  3. ユーザーデータログ確認
    # EC2にSession Managerで接続後
    sudo cat /var/log/cloud-init-output.log
    

データベース接続エラー

  1. RDS状態確認
    aws rds describe-db-instances --db-instance-identifier employee-database-cf
    
  2. セキュリティグループ設定確認
    • データベースSGがWebサーバーSGからのポート3306を許可しているか
  3. アプリケーションログ確認
    # EC2にSession Managerで接続後
    sudo journalctl -u employee-app.service -f
    

CloudFormationスタック作成失敗

  1. 権限確認: AWS Academy環境で必要な権限があるか
  2. リソース制限: 同じリージョンでリソース上限に達していないか
  3. テンプレート構文: YAMLファイルの構文エラーがないか

🎓 学習ポイント

Infrastructure as Code

CloudFormationの利点

セキュリティベストプラクティス

📋 テンプレートファイル

🔗 関連リンク


🔥 CloudFormationによる完全自動化で、Infrastructure as Codeの威力を体験しよう!