Step10: コンテナ2
このStepでは、AWS でコンテナを運用する方法(ECR・ECS/Fargate など)を学び、Step 9 でコンテナ化した自作のバックエンドをコンテナ実行環境で動かします。
1. 講座の履修
コンテナ講座 の以下の章を実施してください。すでに同等の知識がある場合は、講座の履修はスキップしても構いません。
2. 課題の実施
2.1 目的・背景
Step 9 で作成した Dockerfile を活用し、自作のバックエンドをコンテナレジストリにプッシュしたうえで、コンテナ実行環境で動かします。Step 7・Step 8 で組み立てた EC2 ベースの構成から、コンテナベースの運用に切り替えることで、可用性・スケーラビリティを保ったままアプリケーションのデプロイ手順をシンプルにすることが目標です。
2.2 実施要件
使用するサンプルアプリケーション
Step 9 で Dockerfile 化した自作のバックエンドを使用してください。
データベース
Step 8(インフラ2)で構築した RDS を使用してください。Step 9 では Docker Compose 内の DB コンテナを使いましたが、本 Step ではクラウド上の RDS に接続する形になります。
コンテナレジストリ
自作バックエンドのコンテナイメージをコンテナレジストリにプッシュしてください。
コンテナ実行環境
自作バックエンドをコンテナ実行環境で動作させ、インターネット経由でアクセスできる状態にしてください。
ロードバランサー
ALB(Application Load Balancer)を配置し、インターネットからのトラフィックをコンテナに振り分けてください。ALB のヘルスチェック機能で異常なコンテナを自動的に切り離す構成にしてください。
可用性
一部のコンテナに障害が起きても、継続的に API が応答できるようにしてください。
スケーリング
需要の変動に合わせて、コンテナの数を自動で増減できるようにしてください。目安として、以下の数値要件を満たすようにしてください。
- 最小コンテナ数: 2
- 最大コンテナ数: 6
- スケールアウトの契機: CPU 使用率が 70% を超えたとき
- スケールインの契機: CPU 使用率が 30% を下回ったとき
フロントエンドのデプロイ(任意)
Step 8(インフラ2)で Amplify や CloudFront + S3 を採用して自作フロントエンドを既にデプロイ済みの場合は、そちらを継続して使用してください。まだデプロイしていない場合は、自作バックエンドと同様に自作フロントエンドもコンテナ化・レジストリへのプッシュ・コンテナ実行環境へのデプロイを行い、インターネットからアクセスできる状態にしてください。
2.3 判定基準
動作確認
デプロイ後の公開 URL に対して、Step 2(バックエンド2)で作成した API 仕様書に沿って、以下 3 種類の疎通確認を curl で実施してください。
- 疎通確認: ヘルスチェック相当のエンドポイントを叩き、API が応答することを確認する
- 書き込み確認: ユーザ登録などの POST エンドポイントを叩き、DB にデータが書き込まれることを確認する
- 読み取り確認: 書き込んだデータを取得できるエンドポイントを叩き、DB からデータが読み取れることを確認する
自作フロントエンドも本Stepでコンテナ実行環境にデプロイした場合は、その公開 URL をブラウザで開き、画面が表示されることを確認してください。
机上確認
以下の内容について、実際の設定画面などを確認し、それがわかるスクリーンショットを取得してください。
- 可用性: 1つのコンテナに障害が起きた場合に、どのように処理が継続されるか
- スケーリング: 需要が増減した場合にどのようにコンテナの数が増減するか(想定するスケール条件とあわせて)
2.4 課題提出
下記内容を提出フォームより提出してください(提出はプレミアムプランでご利用いただけます)。
| 項目 | 内容 |
|---|---|
| 概要 | 今回追加した構成の特徴・採用したサービスを簡潔に記載する |
| インフラ構成図 | Step 9 の構成を発展させたインフラ構成図を画像ファイルとして添付する |
| 動作確認 | デプロイ後の URL に対する 3 種類の疎通確認の実行結果を記載する |
| 机上確認 | 可用性・スケーリングそれぞれの設定がわかる画面のスクリーンショットを添付し、なぜ合格基準を満たしているかを記載する |
| まとめ | 構築中に苦労したこと、工夫したこと、学んだことを記載する |