Rails フロントエンド用のサービスの作成

次に、タスク定義からサービスを作成します。

作業手順

  1. 「タスク定義の表示」から遷移した画面(タスク定義の詳細情報を表示する画面)から、「アクション」、「サービスの作成」と順に選択します。

    • タスク定義の詳細情報を表示する画面を閉じてしまった場合は、「タスク定義」から作成したタスク定義を選択すると同じ画面に遷移します。
  2. 「サービスの設定」で、以下のように設定します。

    • 起動タイプ: FARGATE

    • タスク定義: 先ほど作成した Rails フロントエンド用のタスク定義(自動で選択されています)

    • クラスター: このハンズオンで作成した ECS クラスター

    1. サービス名: {ユーザー名}-ecsdemo-frontend

    2. タスクの数: 3

    2

  3. 「デプロイメント」では以下のように設定します。設定ができたら次のステップに進みます。

    • デプロイメントタイプ: Blue/Green デプロイメント(AWS CodeDeploy を使用)

    • CodeDeployのサービスロール: {ユーザー名}CodeDeployRoleForECS(今回のハンズオンで作成したもの)

    3

  4. 「ネットワーク構成」では以下のように設定します。

    • (上にスクロールする必要があります)

    • クラスターVPC: ハンズオンで作成した VPC

    • サブネット: ハンズオンで作成したサブネットを 3 つ選択

      • ドロップダウンリストからサブネットを選択すると、選択済みサブネットがその上に追加されていきます。
    • セキュリティグループ: 編集を選択し、以下のように設定します。

      • 割り当てられたセキュリティグループ: 既存のセキュリティグループの選択

      • default セキュリティグループグループにチェックを入れる

    5

    4

  5. 「ロードバランシング」では以下のように設定します。

    • ロードバランサーの種類: Application Load Balancer

    • ロードバランサー名: 今回のハンズオンで作成したロードバランサー

    • ロードバランス用のコンテナ: frontend コンテナが選択されていることを確認して、「ロードバランサーに追加」を選択

    6

  6. コンテナをロードバランサーに追加した際に表示される部分では、以下のように設定します。

    • プロダクションリスナーポート: 新規作成、80

    • テストリスナーポート: 新規作成、9000

    7

  7. 続けて、「Additional configuration」を選択し、以下のように設定します。

    • ターゲットグループ1の名前: {ユーザー名}-ecsdemo-frontend-1

    • ヘルスチェックパス: /health

    • ターゲットグループ2の名前: {ユーザー名}-ecsdemo-frontend-2

    • ヘルスチェックパス: /health

    8

  8. 「サービスの検出(オプション)」では、以下のように設定します(ここは後で直せないので、慎重に設定してください)。

    • 「サービス検出の統合の有効化」にチェック

    • 名前空間: 新しいプライベート名前空間の作成

    • 名前空間名: service

    • サービスの検出名: {ユーザー名}-ecsdemo-frontend

  9. 「サービスの検出の DNS レコード」では、以下のように設定します。

    • TTL: 60

    9

  10. 「次のステップ」を選択します。

  11. 「Auto Scaling (オプション)」の設定はデフォルトのままで次に進み、設定を確認した上で「サービスの作成」を選択してください。

実装の確認

  1. サービス作成が完了し、「前回のステータス」が RUNNING であるタスクが 3 つ立ち上がることを確認します。

    11

  2. EC2」のページに移動し、左のメニューから「ターゲットグループ」を選択します。{ユーザー名}-ecsdemo-frontend-1 という名前のターゲットグループを選択し、画面下部の「ターゲット」タブを選択します。「登録済みターゲット」に 3 つのターゲットが登録されており、「ヘルスステータス」が healthy になっていることを確認します。

    • Fargate 起動タイプの ECS タスクに割り当てられた ENI がターゲットとして登録されています。

    12

  3. ALB のエンドポイント (DNS 名) にアクセスし、Rails フロントエンドのアプリケーションが表示されることを確認します。

    13