Crystal バックエンド用のサービスの作成

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

作業手順

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

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

    • 起動タイプ: FARGATE

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

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

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

    2. タスクの数: 3

    2

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

    • デプロイメントタイプ:ローリングアップデート

      • AWS CodeDeploy を使用した Blue/Green デプロイメントには ALB もしくは NLB が必要となります。今回は DNS ベースでのサービスディスカバリを体験いただくため、フロントエンド以外は「ローリングアップデート」を選択します。

    3

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

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

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

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

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

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

    4

    5

  5. 「Load balancing」では以下のように設定します。

    • ロードバランサーの種類: なし

    6

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

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

    • 名前空間: service|プライベート(先ほどフロントエンドで作成したもの)

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

    7

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

実装の確認

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

    9

  2. ALB のエンドポイント (DNS 名) にアクセスし、Rails フロントエンド、Node.js と Crystal の両バックエンドが連携していることを確認します。

    10