ゴール
下記で作成したコンテナへのアクセスにALBを使う。phpinfoが見られればOK
https://qiita.com/chanP_yamazaki/items/f4829a2905582a78223a
ALBとターゲットグループを作成する
手順 | 名称 | 設定値 |
---|---|---|
ロードバランサーの設定 | 名前 | ecs-cluster-alb |
アベイラビリティーゾーン | aとc両方にチェック | |
セキュリティグループの設定 | セキュリティグループの割当 | ポート80許可したものを設定 or 作成 |
ルーティングの設定 | ターゲットグループ | HTTP、ポート80のターゲットグループを作成or割当 |
ECSのタスクを定義する
※記載がないパラメータは変更しないものとする
・タスク名をつける
後から変えられないので注意
・コンテナの追加
これがまさにdocker-compose.ymlに相当している
▼ nginx
名称 | 設定値 |
---|---|
コンテナ名 | nginx |
イメージ | ECRにプッシュしたnginxコンテナの「イメージのURI」をコピーして貼り付け |
メモリ制限 | 必要な分だけ設定。全コンテナの合計値がインスタンスのメモリサイズを超えないように注意 |
ポートマッピング | 設定なし:80に設定する |
スタートアップ依存順序 | depends_on設定。コンテナ名「php-fpm」、状態「START」を設定 |
ネットワーク設定 | リンクに「php-fpm:php-fpm」を設定 |
ストレージとログ | ログ設定の「Auto-configure CloudWatch Logs」をONに (立ち上げに失敗した際にログを追えるようになる |
他は最小構成では設定不要 |
▼ php-fpm
名称 | 設定値 |
---|---|
コンテナ名 | php-fpm |
イメージ | ECRにプッシュしたphp-fpmコンテナの「イメージのURI」をコピーして貼り付け |
メモリ制限 | 必要な分だけ設定。全コンテナの合計値がインスタンスのメモリサイズを超えないように注意 |
ポートマッピング | php-fpmは外に開ける必要無いので設定不要 |
ストレージとログ | ログ設定の「Auto-configure CloudWatch Logs」をONに (立ち上げに失敗した際にログを追えるようになる |
他は最小構成では設定不要 |
・他は設定せず作成
ECSクラスターを作成する
・Amazon Container Service -> Amazon ECS -> クラスター へ
・クラスターの作成
ステップ | 名称 | 設定値 |
---|---|---|
クラスターテンプレートの選択 | クラスターテンプレートの選択 | EC2 Linux + ネットワーキング |
クラスターの設定 | クラスター名 | test-cluster |
インスタンスの設定各種 | インスタンスタイプや数は必要に応じて | |
AmiId | 特に理由がなければ今は 「AmazonLinux2」 | |
キーペア | コンテナの思想上、インスタンスに入って何かを操作する必要はないので 「なし」 | |
ネットワーキング各種 | vpc、サブネットは必要に応じた設定を | |
ネットワーキング - セキュリティグループ | ポートは0-65535まで開ける。IPは必要なものを | |
Auto assign public IP | Disabled |
・作成実行
実行したクラスターの「ECSインスタンス」タブで、指定した個数のインスタンスが立ち上がり、ステータスがACTIVEになったことを確認
コンテナを立ち上げる
・サービスタブを開いて「作成」
ステップ | 名称 | 設定値 |
---|---|---|
サービスの設定 | 起動タイプ | EC2 |
タスク定義 ファミリー | 先ほど「タスク定義」で作ったタスクを指定 | |
タスク定義 リビジョン | latest(最新バージョン)を指定 | |
クラスター | test-cluster | |
サービス名 | 適当に | |
サービスタイプ | REPLICA (DAEMONだとどう変わるか後で調査 | |
タスク数 | 1 | |
ネットワーク構成 | ロードバランサーの種類 | ALBを指定 |
ネットワーク構成 | ロードバランサー名 | 先ほど作成したもの |
ネットワーク構成 | ロードバランス用のコンテナ | nginx:0:80 を追加 |
ネットワーク構成 | プロダクションリスナーポート | 80:HTTP |
Auto Scalingオプション | EC2インスタンスの数をAutoScalingさせたいならここで設定。今回は何も設定せず次へ |
・サービスの作成
・作成したサービスのタスクタブにRUNNINGのタスクが出来あがれば成功
・ELBのpublicIPかDNS名にアクセスしてphpinfoが確認できればOK!