前提
ローリングアップデートの流れを書いていきます。
本題
クラスター作成
EC2 Linux + ネットワーキングを選択
↓
クラスター名を任意の名前を入力
↓
EC2インスタンスタイプ t3.smail
↓
インスタンス数 2
↓
キーペア(作成済みのもの)
↓
VPC・サブネット選択
↓
その他はdefault
↓
作成
クラスターの上にサービスやタスクを作成
新しいタスク定義
↓
起動タイプはEC2
↓
タスク定義名入力
↓
タスクロール選択(作成済みのもの)
↓
ネットワークモード(bridge)
↓
タスク実行 IAMロール選択
↓
タスクメモリ 512
CPU 512
↓
コンテナ追加
↓
コンテナ名入力
↓
イメージはECRにアップロードしているコンテナのURIを貼り付ける
↓
ポートマッピング
ホストポート:0
コンテナポート:80
ランダムなポート番号が割り当てられる。
↓
作成
コンテナ用のロードバランサー作成
ロードバランサーの作成
↓
アプリケーションロードバランサーの作成
↓
名前入力
↓
スキームがインターネット向けになっているか確認
(インターネットからの通信を受け付けるため)
↓
リスナー
HTTP:80
↓
新しいセキュリティグループ
↓
ターゲット名入力
↓
作成
ターゲットグループが空の状態のロードバランサーの作成完了。
コンテナデプロイ
クラスター
↓
作成
↓
起動タイプ EC2
↓
タスク定義は同じもの
↓
サービス名の入力
↓
サービスタイプ REPLICA
↓
タスク数 4
↓
次のステップ
↓
アプリケーションロードバランサーを選択
↓
IAMロールの選択
↓
ロードバランサーの追加
↓
プロダクションリスナーポート 80:HTTP
↓
ターゲットグループ名選択
↓
サービスの検出の統合の有効化のチェックを外す
↓
次のステップ
↓
サービスの作成
ロードバランサーがコンテナに通信できない理由
EC2インスタンスにアタッチされているセキュリティグループ、ロードバランサーからの通信許可設定がされていないため
バランシングチェック
きちんとロードバランシングされているか確認
コンテナインスタンスに対してsshでログイン。
※セキュリティグループに許可グループを追加
↓
設定していたhtmlファイルなどを編集。
↓
リロードして変更が反映されているか確認。
タスク定義の更新
新しいリビジョンの確認
↓
コンテナイメージのURIを貼り付け
↓
残りの項目は変更なし
↓
作成
↓
作成したタスクをデプロイ
↓
クラスターを開く
↓
更新するサービスの左側のチェックボックスをチェック
↓
リビジョンナンバーを最新のものに設定
↓
次のステップ
↓
サービスの更新
タスクをオートスケーリング
クラスターの更新するサービス名の左側のチェックボックスにチェックを入れ、更新
↓
オートスケーリングの部分だけ変更
↓
タスクの最小値1
タスクの最大値8
↓
スケーリングポリシーの設定
↓
・ターゲットの追跡 = 例えば、エアコンの設定温度が20度の場合、室内温度が20度に保つように上下左右しながら20度を保つようなこと
・ステップスケーリング = CPUの使用率が閾値を超えたらタスクを1つ追加すること
↓
次のステップ
↓
サービスの更新
↓
サービスの表示