AWS
Jenkins
Docker

プラグインインストール済のJenkins 構築 Docker編 その4


モチベーション

もともとローカルで動かすのが目的だったが、せっかくなのでAWS上で動かす練習しておく。

(表題と内容が合わないので、あとで表題は変える予定です。)


基本

Amazon ECS,Amazon Fargate,Amazon EKS,Amazon ECR,Amazon Batch, DockerEEいろいろサービスあるけど、今はおケースとレーションとかいらなくて、単発でDocker動かしたいだけ、どれからはじめたらいいのかわからないので、ひとまずチュートリアルやってみる。


Amazon ECS チュートリアル実施

Docker コンテナを 10 分でデプロイする

ロードバランサーの後方に配置した Amazon ECS クラスターで Docker 対応サンプルアプリケーションを実行し、サンプルアプリケーションをテストし、課金を避けるためにリソースを削除する方法について学びます。

ようはAmazon ECSなんだと

Amazon ECS( Elastic Container Service ) コンソール初回実行ウィザードを開きます。リージョンはバージニア。

https://console.aws.amazon.com/ecs/home?region=us-east-1#/firstRun


ステップ 1: コンテナとタスク

なにも変更せずに「次」へ。


ステップ 2: サービスを定義する

デフォルトからの変更点。

・ロードバランサーの種類

・ロードバランサーリスナーポート:80

・ロードバランサーリスナープロトコル:HTTP


ステップ 3: クラスターの設定

クラスター名:sample-cluster


ステップ 4: 確認

「作成」


ステップ 5: リソースの起動と表示

image.png

「サービスの表示」

image.png


ステップ 6: サンプルアプリケーションを開く

Amazon ECS->クラスター->sample-cluster を選択

ロードバランシング->ターゲットグループ名 を選択

EC2 Management Consoleが開く

ELB DNS 名をコピーします

image.png

EC2Co-EcsEl-AZ2WF2E6DLKB-1219461024.us-east-1.elb.amazonaws.com

Amazonさんが用意してくれているサンプルアプリケーションsample-appの画面が表示された。

サンプルアプリケーションの代わりにJenkinsを動かすのが本来の目標(忘れないように。。)

image.png


ステップ 7: リソースを削除する

このチュートリアルでは以下のリソースを使ったので、順番に削除。

・Amazon ECS クラスター、

・Amazon EC2 インスタンス

・ロードバランサー


ECSのクラスタ削除

クラスター名 (sample-cluster) 選択->更新

アクティブなタスクを実行中のサービスを誤って削除しないよう、タスクを停止。

タスクの数:0に設定し、「次のステップ」「サービスの更新」

当たり前だが、この時点で先ほどのURLにはアクセスできなくなる。

image.png

安心してクラスタを削除

丁寧に、「もし0にスケールダウンしてない場合は、削除前にスケールダウンするよ」と表示されたので、もしかしてタスクを止める処理は要らなかったかも。

image.png


EC2 インスタンス削除

あれインスタンスが見つからない。自動で削除されるようになった、と思うことにしよう。

作成の途中で明示的にEC2の設定はしていないので、自動削除なら親切だと思う。

image.png


ロードバランサー

選択して、削除

image.png

ターゲットグループは残ってしまうんだが、これはよいのだろうか?


次回予告

ありもののアプリを動かすだけのチュートリアルだったので、自分がやりたいこととはだいぶ違った気がするが、自前のDockerfileからAWS上でDocker動かすことを試す。

ステップ 1: コンテナとタスクのところを変更するればできるはず。