ECRに登録
プッシュコマンドの表示をして指示通りにPushします。
M1 Macだとplatform指定が必要
$ docker build --platform x86_64 -t ykdevs-sample/spring-sample .
Dockerファイルのあるターミナルに移動して。
イメージがPushされていることを確認します。
Amazon ECSの環境構築
Amazon ECSでクラスターの「今すぐ始める」をクリックします。
ステップ1:コンテナとタスク
コンテナはカスタムを選択してECRに登録したものを選択します。
ポートは8080を選択します。
タスク定義は名称を変更するくらい。
全体としては以下の感じ
ステップ2:サービス
Application Load Balancerを選択します。
ステップ3:クラスター
ステップ4:確認
結果画面
接続確認
ロードバランサのVIPの8080ポートにアクセスすると画面が確認できた。
作られたもの
クラスタ
サービス
タスク
タスク定義
サービス
実行中のタスク
VPC
ECS用に新しいVPCが1つ発行されている。
IPv4 CIDRが10.0.0.0/16となっている。
vpc-0fafecdce74c06dbc
サブネット
サブネットは2つ(10.0.0.0/24, 10.0.1.0/24)作成されている。
subnet-018e4a14da8b8fdeb(ECS sample - Public Subnet 1)
subnet-087ed4db079bd28c5(ECS sample - Public Subnet 2)
セキュリティグループ
セキュリティグループは3つ作られている。
sg-039d6e0480b24f147(default)
sg-00f8a735ce0d7a266(ECS sample - ECS SecurityGroup)
sg-0ad3854a547c625a8(ECS sample - ALB SecurityGroup)
sg-039d6e0480b24f147(default)
sg-00f8a735ce0d7a266(ECS sample - ECS SecurityGroup)
ECS用のセキュリティグループ
すべての場所から8080へのアクセスが可能で、すべての場所にすべてのポートで応答可能。
同じセキュリティグループ内からはすべてのポートでアクセス可能。
sg-0ad3854a547c625a8(ECS sample - ALB SecurityGroup)
ALB用のセキュリティグループ。
すべての場所から8080へのアクセスが可能で、すべての場所にすべてのポートで応答可能。
ターゲットグループ
ロードバランサ
DSN名のところにPublicなDNS名があるので、その8080ポートにアクセスすると画面が表示できる。
リスナー
8080ポートをターゲットグループEC2Co-Defau-LDIKBIHZNNACに転送。
80番でのポート開放を追加する
セキュリティグループにルール追加
リスナーを追加
リスナーを追加して80番で受付け、ターゲットグループEC2Co-Defau-LDIKBIHZNNACに転送する。
ブラウザでアクセスする
80番でもアクセスできるようになった。
443番でのポート開放に変更する
構成
セキュリティグループにルール編集
リスナーを追加
証明書をインポートしておいて、HTTPSを使えるようにしておいてからリスナを追加します。
ブラウザでアクセスすると
オレオレ証明書なので警告がでますが「thisisunsafe」と打って先に進むとHTTPSでページが表示されます。