AWSの構築(手動)
AWS構成図の作成で設計したAWS構成図をもとに、AWSマネジメントコンソールからインフラを手動で構築します。API構築で作成したAPIをAWS上にデプロイし、インターネットからアクセスできる状態を目指します。手動構築を通じて各リソースの設定値や依存関係を理解することが、次のステップ(Terraform化)の土台になります。
- AWSマネジメントコンソールでインフラを一から構築する
- 各リソースの設定値や依存関係を体感する
- カスタムドメインからAPIにアクセスできる状態を実現する
| 💡 ポイント |
|---|
| すでにAWSの手動構築に慣れている方や、Terraformでの構築に自信がある方は、この講座をスキップしてTerraformによるIaC構築から取り組んでいただいて構いません。ただし、手動構築の経験が浅い方には、各リソースの設定値や依存関係を体感できるこの講座を経験しておくことをおすすめします。 |
1. 必須要件
AWS構成図の作成で作成した構成図に沿って、AWSマネジメントコンソールから実際のAWS環境を構築してください。構成図に含めたすべてのリソースを構築し、動作確認まで行うこと。
2. よくハマるポイント
構築中につまずきやすいポイントをまとめました。うまくいかない場合は、まずここを確認してみてください。
2.1 セキュリティグループの設定
セキュリティグループは最小権限の原則に従い、必要なポートのみを開放してください。リソース間の通信が通らない場合、セキュリティグループの設定ミスが原因であることが多いです。一般的な設定例は以下のとおりです。
- ALB:インターネットからのHTTPS(443)のみ許可
- ECS:ALBからのトラフィックのみ許可
- RDS:ECSからの接続(3306)のみ許可
2.2 NATゲートウェイの設定
ECSタスクをPrivateサブネットに配置する場合、NATゲートウェイがないとECSタスクがECRからイメージをプルできず、タスクの起動に失敗します。Privateサブネットのルートテーブルに、NATゲートウェイへのルート(0.0.0.0/0 → NAT Gateway)が設定されていることを確認してください。
2.3 ECSタスク定義の環境変数
ECSタスクからRDSに接続するためには、タスク定義の環境変数にDB接続情報(ホスト名、ポート、ユーザ名、パスワード、データベース名)を正しく設定する必要があります。特にRDSのエンドポイント(ホスト名)は作成後にしか確認できないため、設定漏れに注意してください。
2.4 ALBのヘルスチェック
ALBのターゲットグループにはヘルスチェックパスの設定が必要です。APIのヘルスチェックエンドポイント(例:/health)を指定し、ターゲットが「healthy」になることを確認してください。ヘルスチェックが失敗するとトラフィックが転送されず、アクセスしても502エラーになります。
2.5 ACMの証明書検証
ACMでSSL証明書を発行した後、Route 53でDNS検証用のCNAMEレコードを追加する必要があります。検証が完了するまで証明書のステータスは「検証保留中」のままになるため、ALBのHTTPSリスナーに設定できません。検証完了までに数分〜数十分かかることがあります。
2.6 動作確認
- カスタムドメインにHTTPSでアクセスし、APIのレスポンスが正常に返ることを確認すること
3. 提出物
- 構築した各リソースの作成完了画面のスクリーンショット
- カスタムドメインにHTTPSでアクセスした際のAPIレスポンス画面のスクリーンショット
- 構築時に工夫した点や苦労した点を簡単にまとめたメモ(形式自由)
4. 構築の進め方
一度にすべてを構築しようとすると複雑になるため、段階的に進めることをおすすめします。一般的には、以下のような順番で進めるとスムーズです。実際に構築するサービスの種類や数は、AWS構成図の作成で作成したAWS構成図に従ってください。
- ネットワーク … VPC、サブネット、ゲートウェイ、ルートテーブルなど、土台となるネットワークを最初に作成する
- データベース … ネットワークが整ったら、Privateサブネットにデータベースを構築する
- コンテナレジストリ … Dockerイメージの保管先を作成し、API構築のイメージをプッシュする
- コンテナ実行環境 … アプリケーションをコンテナとして起動し、データベースへの接続を確認する
- ロードバランサ … 外部からのトラフィックをコンテナに転送する仕組みを構築する
- ドメイン・証明書 … カスタムドメインの設定とHTTPS通信の有効化を行う
- スケーリング … 負荷に応じた自動スケーリングを設定する
各段階が完了したら、次に進む前に正しく動作していることを確認しましょう。
5. 参考講座
- VPC講座
- EC2講座
- 仮想サーバを立てよう
- ELB講座
- オートスケーリング講座
- 冗長化構成を組み立てよう
- IAM講座
- RDS講座
- データベースを構築しよう
- Route53講座
- ACM講座
- ECR講座
- ECS/Fargate講座
- ECSとFargateでシンプルなWebアプリをデプロイしよう
- ECSとFargateで本格的なWebアプリをデプロイしよう
6. 目安期間
4週間