1
1

AWS ECSを使ってとりあえずnginxをデプロイしてWebブラウジングする

Posted at

こんにちは。
株式会社クラスアクト インフラストラクチャ事業部の大塚です。

今回はAWSのコンテナサービスであるECSを見よう見まねで使用してみたいと思います。
具体的にはECSでnginxコンテナをデプロイして、Webブラウザでアクセスしてみたいと思います。

用語

AWS ECS

Elastic Container Serviceの略。
説明は公式に委ねますが、AWS側でデプロイとかスケーリングとか色々マネージングしてくれる便利なやつ位のイメージしかありません。今後頭の中のイメージを具体化していけば良いと思っています。

コンテナ化されたアプリケーションのデプロイ、管理、スケーリングを容易にするフルマネージドコンテナオーケストレーションサービスです。アプリケーションと必要なリソースを記述するだけで、Amazon ECS が柔軟なコンピューティングオプションで、アプリケーションを起動、モニタリング、スケーリングし、アプリケーションが必要とする他の AWS サポートサービスと自動的に統合します。カスタムのスケーリングルールやキャパシティルールの作成などのシステムオペレーションを実行し、アプリケーションログやテレメトリからデータを確認し、クエリします。

AWS Fargate

今回のnginxコンテナデプロイにはFargateと呼ばれるサーバレスコンピューティング技術を使っています。
これも詳細は公式サイトに委ねます。コンテナ向けのLambdaくらいのイメージしか今はありません。

AWS Fargate は、サーバーレスで従量制料金のコンピューティングエンジンであり、サーバーを管理することなくアプリケーションの構築に集中することができます。AWS Fargate は、Amazon Elastic Container Service (Amazon ECS) と Amazon Elastic Kubernetes Service (Amazon EKS) の両方との互換性を備えています。 OCI 準拠のコンテナイメージを選択し、メモリとコンピューティングリソースを定義して、サーバーレスコンピューティングでコンテナーを実行します。複数の CPU アーキテクチャとオペレーティングシステムがサポートされているため、さまざまなアプリケーションでメリットを享受できます。

Amazon ECR Public Gallery

コンテナと言えばDockerですが、Dockerでコンテナをデプロイする時、コンテナイメージはDocker Hubからpullされます。
AWS ECS-ページ1.drawio.png

AWS ECSの場合、Docker Hubの代わりにこのECR Public Galleryを使うッぽいです。
恐らくDocker Hubと連携も普通に出来るんだと思いますが、今回はこっちから引っ張ってきました。
AWS ECS-ページ2.drawio.png

構築時参考にしているサイト

UIが今のものと違うッぽいですが参考になりました。
ありがとうございます。

構築

task作成

ECSのサイトを開く。左のタスク定義を押下する。
image (47).png
新しいタスク定義の作成を押下する。
image (48).png
今回は以下のタスクを作成しました。

  • タスク名をtest-task。
  • コンテナをFargateで作成。
  • イメージURIはECR Public Galleryから取得。
    screencapture-ap-northeast-1-console-aws-amazon-ecs-v2-create-task-definition-2023-10-04-23_58_07 (1).png
    正常に作成されると以下の様に表示されます。
    image (49).png

クラスタ作成

クラスターを押下後、クラスターの作成を押下する
image (50).png
今回はtest-clusterというクラスタ名で作成しています。
screencapture-ap-northeast-1-console-aws-amazon-ecs-v2-create-cluster-2023-10-05-00_00_52 (1).png
正常に作成されると以下の様に表示されます。
image (51).png

クラスタにタスクを実行させコンテナをデプロイし、Webブラウジングする

上記の画面のクラスタ名がリンクになっている為、押下する。
タスクタブをアクティブにして、新しいタスクの実行を押下する。
image (52).png
以下の様に設定を入れました。

  • デプロイ設定でタスクを選択。ファミリー欄で作成したタスクを選択。
  • セキュリティグループで設定を変更。デフォルトのままだとhttp接続するために修正する必要が出てきたので、初めから接続出来るように変更してます。
    screencapture-ap-northeast-1-console-aws-amazon-ecs-v2-clusters-test-cluster-run-task-2023-10-05-00_11_50 (1).png
    プロビジョニングが走ります。
    image (53).png
    暫くすると実行中になるはずです。タスク名がリンクになっていると思うので、押下します。
    image (54).png
    パブリックIPが表示されていると思います。これがコンテナに外部から接続する為のIPアドレスになります。
    今回はhttp://18.183.22.85になります。
    screencapture-ap-northeast-1-console-aws-amazon-ecs-v2-clusters-test-cluster-tasks-3db727baf84044418e2eef0cb235f024-configuration-2023-10-05-00_13_16 (1).png
    接続出来ました。とりあえず動かせたので一安心。コンテナは割と好きで得意な技術なのですが少々癖があるなと思いました。
    image (55).png
1
1
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
1