DockerHubにあるexpressのイメージをECSで動かす
- 2020.06.07
- AWS
EKSを導入することになったので、コンテナの復習としてECSの使い方をメモ。80番ポートにアクセスすると文字列を返却する超簡単なexpressのイメージを作成しているので、今回はそれを使う。
イメージをローカルで動作確認
以下コマンドで、コンテナが立ち上がる。ブラウザでlocalhostにアクセスすると、「Hello World」と表示される。–nameの箇所は任意。
docker run --name express-test -d -p 80:80 hisamitsu/nodejs-sample:latest
確認できたら、以下コマンドでストップ
docker stop express-test
ECSの構築
ECSには大きく、タスク、サービス、クラスタの三つの概念がある。
- タスク:Dockerコンテナの起動設定を行う。複数のコンテナをまとめて管理できる。Docker Composeのようなイメージ。
- サービス:ALBやAutoScalingに紐づけるタスク群。これらが不要であればサービスを容易せず、タスク単体でアプリケーションを動かすことも可能。
- クラスタ:タスクを配置するEC2インスタンス群。
今回は、特に本番で使うわけでもないので一旦サービスは作らない。また、本来はCloudFormationでコード化した方が良いが、一旦コンソールでポチポチ作る。
クラスタの作成
- ECS画面から「クラスターの作成」を選択
- 「ネットワーキングのみ」を選択
- クラスタ名を適当に入力。VPCは使用したいものがなければ新規作成
タスクの作成
- 先ほど作成したクラスタを選択し、「タスク」タブから「新しいタスクの実行」を選択
- 「起動タイプへ切り替える」を選択し「FARGATE」を選ぶ
- クラスターVPC、サブネットを選択。サブネットは今回はパブリックになっているものを選ぶ。
- 以下のように「RUNNING」が表示されればOK。
アプリケーションにアクセスしてみる
実行したタスクのリンクをクリックすると、パブリックIPが記載されているので、このIPをブラウザに入力。ブラウザに「HelloWorld」と入力されればOK。
-
前の記事
CodePipelineでビルドした成果物をS3へあげる(Cloudformation) 2020.05.23
-
次の記事
AWS IoT Coreで特定のトピックにのみpublishできるようにする 2020.08.21