最低限の設定でAmazon ECS(+EC2)なNginxを立ち上げる
いまECSを使うならEC2インスタンスをホストとせずFargateを使うのが基本になりそう。
ここではFargateではなくEC2インスタンスを使う方法で進めます。
ちなみにECSは「Elastic Container Service」の略ですが、ひと昔前は「EC2 Container Service」でした。
大まかな流れ
- 新しいタスク定義の作成
- クラスターの作成
- サービスを作成してクラスターで実行・維持するタスク定義を指定
タスク定義
マネジメントコンソールでAmazon ECSの画面を開いたら左メニューから「タスク定義」を選択し「新しいタスク定義の作成」をします。
「起動タイプの互換性の選択」をする画面が表示されますが、ここではEC2を選択。
次は「タスクとコンテナの定義の設定」。 「タスク定義名」を適当に(nginx-taskとか)入力しましょう。
あと、少し下にスクロールして「コンテナの定義」から「コンテナの追加」をします。
「コンテナ名」はお好きにnginx-containerみたいに入力して。
「イメージ」は nginx:alpine
とかするとDocker Hubからイメージをとってくるようになってます。
タグはドキュメントを参照してください。
https://hub.docker.com/_/nginx
「メモリ制限」は推奨されている最低値の300。
「ポートマッピング」はホスト、コンテナともに80としておきます。
これ以外の設定値は特に触らず、「作成」します。
クラスター作成
タスク定義できたらクラスターの作成です。
左メニューから「クラスター」を選んで「クラスターの作成」と進み、最初の「クラスターテンプレートの選択」は EC2 Linux + ネットワーキング
を選びます。
「クラスター名」はなんでもいいです。nginx-clusterにしときます。
「EC2インスタンスタイプ」はお試し目的なのでt2.microとか小さいのにしとくといいでしょう。
最低限の設定はこれくらいです。
「作成」しましょう。
サービス作成
最後ですね。サービスの作成です。
クラスターの作成が終わると「クラスターの表示」というボタンが出てくるのでそれを押すか、クラスターの一覧から作成したクラスター選択します。
「サービス」というタブがあるので、そこから「作成」しましょう。
「起動タイプ」はEC2。
「タスク定義」と「クラスター」は先ほど作成したものが選択されていることを確認してください。
「サービス名」は例によってnginx-serviceとして、「タスクの数」は1としときます。
あとは触らずに「次のステップ」を押し続けます。
最後の確認画面で「サービスの作成」です。
動作確認
EC2インスタンスが作成されているので、そのパブリックIPを参照するか、クラスターの「タスク」タブを開いてタスクのリンクを押すと、下にコンテナが表示されており、そこに外部リンクが記載されています。
ブラウザからアクセスするとNginxのウェルカムページが表示されるはずです。やったね。