次に、タスク定義からサービスを作成します。
「タスク定義の表示」から遷移した画面(タスク定義の詳細情報を表示する画面)から、「アクション」、「サービスの作成」と順に選択します。
「サービスの設定」で、以下のように設定します。
起動タイプ: FARGATE
タスク定義: 先ほど作成した Crystal バックエンド用のタスク定義(自動で選択されています)
クラスター: このハンズオンで作成した ECS クラスター
サービス名: {ユーザー名}-ecsdemo-crystal
タスクの数: 3
「デプロイメント」では以下のように設定します。設定ができたら次のステップに進みます。
デプロイメントタイプ:ローリングアップデート
「ネットワーク構成」では以下のように設定します。
クラスターVPC: ハンズオンで作成した VPC
サブネット: ハンズオンで作成したサブネットを 3 つ選択
セキュリティグループ: 編集を選択し、以下のように設定します。
割り当てられたセキュリティグループ: 既存のセキュリティグループの選択
default
セキュリティグループグループにチェックを入れる
「Load balancing」では以下のように設定します。
「サービスの検出(オプション)」では、以下のように設定します(ここは後で直せないので、慎重に設定してください)。
「サービス検出の統合の有効化」にチェック
名前空間: service|プライベート
(先ほどフロントエンドで作成したもの)
サービス検出名: {ユーザー名}-ecsdemo-crystal
「Auto Scaling (オプション)」の設定はデフォルトのままで次に進み、設定を確認した上で「サービスの作成」を選択してください。
サービス作成が完了し、「前回のステータス」が RUNNING
であるタスクが 3 つ立ち上がることを確認します。
ALB のエンドポイント (DNS 名) にアクセスし、Rails フロントエンド、Node.js と Crystal の両バックエンドが連携していることを確認します。