1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ECSブルーグリーンデプロイメントをゼロから構築する。(その4:ELBの作成とレコード作成)

Last updated at Posted at 2023-11-18

はじめに

前回までは、ブルーグリーンデプロイメントの設定を行う前の事前準備を行ってきました。

いよいよ今回からブルーグリーンデプロイメントの設定を行っていきます。

ブルーグリーンデプロイメントの設定

今回より本格的にブルーグリーンデプロイメントの設定を行っていきますが、ブルーグリーンデプロイメントは、複数の設定が絡み合うため、設定が複雑です。

そのため、どこか一つ設定を間違えると、エラーとなったり、再度作り直さないといけなくなったりするため、設定する順序が重要となります。
※そのため、私はいつもどこかで詰まっていました・・・

ELBの設定

以下再掲となりますが、ELBの設定にはユーザからのアクセスを待ち受けたり、負荷分散のルール等を設定するための「ロードバランサー」の設定と、負荷分散先となるインスタンスやタスクの指定やターゲットへのヘルスチェック等を設定するための「ターゲットグループ」の設定を行う必要があります。

以下の図でいうと真ん中のELBが「ロードバランサー」の設定、Blue Group、 Green Groupと書かれている部分が「ターゲットグループ」の設定となります。

blue_green_deploy.png

今回、ELBでは、HTTPS:443とHTTPS:4430ポートで待ち受けを行い、Fargateでは HTTP:80で待ち受けを行うよう設定していこうと思います。

ターゲットグループ作成

ブルーグリーンデプロイメントによるデプロイはELBに2つのターゲットグループを指定して、デプロイ時に一方のターゲットグループへのルーティングを切り替えることで安全にデプロイを行う機能となることから、ターゲットグループを2つ作成します。

EC2ダッシュボード」より「ロードバランシング」の「ターゲットグループ」→「ターゲットグループの作成」を選択します。

また、ターゲットグループは名前以外は同じ設定となるため、以下表を参考に2つ作成します。

項目 設定 備考
ターゲットタイプの選択 IPアドレス Fargateの場合、IPアドレスを選択
ターゲットグループ名 blue-green-blue-tg 任意の名前を指定
2つ目はblue-green-green-tgとする
プロトコル:ポート HTTP:80
IPアドレスタイプ IPv4
VPC blue-green-vpc その1で作成したVPCを選択
プロトコルバージョン HTTP1 今回はテストのためHTTP1を指定
ヘルスチェックプロトコル HTTP
ヘルスチェックパス /index.html その3で仕込んだindex.htmlを指定
ヘルスチェックの詳細設定 ※デフォルトのまま 今回はデフォルトのまま
タグ 空欄 今回はデフォルトのまま
ステップ1:ネットワークを選択する blue-green-vpc その1で作成したVPCを選択
ステップ2:IPを指定してポートを定義する 未指定 まだターゲットが存在しないので空欄でOK
ステップ3:グループに含めるIPターゲットを確認する ※指定不可 まだターゲットが存在しないので空欄でOK

ロードバランサー作成

ロードバランサーを作成して、リスナールール、先程作成したターゲットグループを紐づけます。

項目 設定 備考
ロードバランサータイプ Application Load Balancer 今回はALBを作成
ロードバランサー名 blue-green-elb 任意の名前を指定
スキーム インターネット向け
IPアドレスタイプ IPv4
VPC blue-green-vpc その1で作成したVPCを選択
マッピング blue-green-subnet-public1-ap-northeast-1a
blue-green-subnet-public2-ap-northeast-1c
外部からのアクセスを受けるため、パブリックサブネットを指定
セキュリティグループ blue-green-test-elb-sg その3で作成したELB用セキュリティグループを指定
リスナーとルーティング HTTPS:443
HTTPS:4430
※以下で紹介
セキュリティポリシー ELBSecurityPolicy-TLS13-1-2-2021-06(推奨) 推奨を指定
Certificate source ACMから その2で作成したACMを指定するために指定
Certificate (from ACM) *.aws.example.com その2で作成したACMを指定
アドオンサービス チェックなし デフォルトのままチェックなし
ロードバランサータグ 空欄 今回は未設定

リスナールールについては、本番通信用のリスナールール(HTTPS:443)とテスト通信用のリスナールール(HTTPS:4430)の2つを指定する必要があるので、以下のように指定します。

2つ目のリスナールールは「リスナーの追加」を押下して作成してください。

その3のセキュリティグループ作成で指定したテスト通信用のポート番号を指定してください(今回は4430番ポート)

Monosnap_20231112_145342.png

以下リスナーとルーティング部分を抜き出して表に示します。

項目 リスナー1設定 リスナー2設定 備考
プロトコル HTTPS HTTPS どちらもHTTPSを指定
ポート 443 4430 それぞれのポートを指定
デフォルトアクション blue-green-blue-tg blue-green-green-tg 別々のターゲットグループを指定
リスナータグ 空欄 空欄 今回は未設定

リスナールールに指定するターゲットグループはブルーグリーンデプロイ実行時にCodeDeployにより書き換わるため、リスナールール1、リスナールール2でそれぞれ別々のターゲットグループが指定できていればOKです。

なお、2つのリスナールールどちらも同じターゲットグループを指定すると、ECSサービス作成時にエラーとなるため、別々のターゲットグループを指定するようにしてください。

レコードの作成

ロードバランサーを作成したことで、その2で作成したRoute53のホストゾーンに、ロードバランサーにアクセスするためのレコードを追加できるようになったため、「Route 53」ダッシュボードの「ホストゾーン」より、その2で作成したホストゾーンを選択→「レコードを作成」でレコード作成します。

エイリアス」を有効にすると、選択ボックスから選ぶだけでレコードが指定できるため、以下のように指定して「レコードを作成」で作成します。

なお、今回レコード名は「www」としましたが、任意のレコード名を指定してください。

Monosnap_20231112_183031.png

おわりに

今回はブルーグリーンデプロイメント用のELBの作成と、外部からアクセスする際に使用するレコードの作成を行いました。

次回はブルーグリーンデプロイメントの設定としては最後となるECSの設定を行っていきます。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?