【AWS ECS入門】Fargateでコンテナを5分で立ち上げてみる

fargate

AWS ECS(Elastic Container Service)-Fargateでコンテナを最速で(簡単に)立ち上げようというコンテナ入門の記事です。

以下のような方向けです。

こんな方向けの記事

コンテナを触ってみたい
コンテナをAWS上で動かしてみたい
ECSを使ったことがなく、とりあえず使ってみたい
とりあえずコンテナ立ち上げ、どんなものか知りたい

ECSでのコンテナ立ち上げは、以下の3ステップで簡単にできますので、まずはコンテナを立ち上げて、そこから理解を深めていきましょ!

必要な3つのステップ

クラスター作成
タスク定義作成
タスクの作成

なお、本記事では、Nginxのコンテナを立ち上げていきます。

 

 それでは早速コンテナを立ち上げていきます。

まずは、クラスターを作成します!

スポンサーリンク

クラスター作成

AWSマネージメントコンソール画面のECSダッシュボードから「クラスターの作成」ボタンを押下し、以下の設定でクラスターを作成します。

  • クラスター名:適切な名前
  • 上記以外、デフォルトのまま

次はタスク定義を作成します!

タスク定義の作成

AWSマネージメントコンソール画面のECSダッシュボードからタスク定義を選択し、「新しいタスク定義の作成」ボタンを押下し、以下の設定でタスク定義を作成する

  • タスク定義とコンテナの設定
    • タスク定義ファミリー:適切な名前
    • コンテナ – 1
      • 名前:適切な名前
      • イメージ URI:nginx:latest   
        • 本記事ではNginxを指定しています
          • 他のコンテナを立ち上げたい場合は、立ち上げたいコンテナイメージを指定します
            • docker hubのイメージであれば、docker pullするときのイメージ名で指定できます。
              docker pull {イメージ名}
      • 上記以外デフォルトのまま
    • 環境、ストレージ、モニタリング、タグの設定
      • 環境
        • CPU:.5VCPU
        • メモリ:1GB
    • 上記以外デフォルトのまま

次はタスクの作成(コンテナ立ち上げ)です!

タスクの作成

AWSマネージメントコンソール画面のECSダッシュボードで作成したクラスターを選択し、タスクタブ押下して、「新しいタスクの実行」ボタンを押下し、以下の設定で作成します。(このステップでコンテナを立ち上がります)

  • デプロイ設定
    • ファミリー:作成したタスク定義を指定
    • 上記以外デフォルトのまま
  • ネットワーキング
    • セキュリティグループ
      • ポート80を許可
Fargate-セキュリティグループの設定

Fargate-セキュリティグループの設定

  • 上記以外はデフォルトのまま

動作確認

  • タスクタブからタスクのリンクを押下する
  • パブリック IPが表示されるのでパブリックIPでHTTPアクセスする
    • http://パブリックIP
      

以下の画面が表示されればOKです。

welcome-nginx

welcome-nginx

動作確認後はタスクを終了しておきましょー

まとめ

ECS-Fargeteでは

3つのステップ

クラスター作成
タスク定義作成
タスクの作成

といったことをやれば、コンテナが立ち上げることがわかったと思います。

また、思ったより簡単にコンテナが立ち上げられたと思います。

実際の本番稼働には

  • ロードバランサーなどのネットワーク周りの知識
  • ECSにはサービスという概念もあるため、サービスという概念の知識
  • ECSの各設定に対する深い知識

が必要になってきますが、まずは本記事のようにコンテナを立ち上げて、そこから理解を深めていくのがいいと考えています。

↓Fargateの公式記事です↓

AWS Fargate(サーバーやクラスターの管理が不要なコンテナの使用)| AWS
AWS Fargate は、Amazon Elastic Container Service (ECS) と Amazon Elastic Kubernetes (EKS) の両方で動作する、コンテナ向けのサーバーレスコンピューティングエンジンです。

↓Fargateのオートスケーリング関連の記事です↓

Elastic Container Service(ECS) Fargateの2つのオートスケーリング設定
Elastic Container Service(ECS)のオートスケーリング設定は「リソースの負荷に応じたオートスケーリング設定」「時間に応じたオートスケーリング設定」が設定可能。 「リソースの負荷に応じたオートスケーリング」「時間に応じたオートスケーリング」を組み合わせ、メリットを活かし、注意点を補う設定が可能

↓Fargateの負荷対策関連の記事です↓

Elastic Container Service(ECS) Fargate 高負荷時の対策ーメモリ使用率とCPU使用率
ECS Fargateの高負荷時の対策 「CPU使用率が高いケース」 「メモリ使用率が高いケース」 について記載します。 「スケールアウト:タスク数を増やす」 「スケールアップ:1タスクのCPUやメモリを大きくする」 「新しいデプロイの強制:タスクを全て入れ替える」 といった対策があります。