モチベーション
もともとローカルで動かすのが目的だったが、せっかくなので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: リソースの起動と表示
ステップ 6: サンプルアプリケーションを開く
Amazon ECS->クラスター->sample-cluster を選択
ロードバランシング->ターゲットグループ名 を選択
EC2 Management Consoleが開く
EC2Co-EcsEl-AZ2WF2E6DLKB-1219461024.us-east-1.elb.amazonaws.com
Amazonさんが用意してくれているサンプルアプリケーションsample-appの画面が表示された。
サンプルアプリケーションの代わりにJenkinsを動かすのが本来の目標(忘れないように。。)
ステップ 7: リソースを削除する
このチュートリアルでは以下のリソースを使ったので、順番に削除。
・Amazon ECS クラスター、
・Amazon EC2 インスタンス
・ロードバランサー
ECSのクラスタ削除
クラスター名 (sample-cluster) 選択->更新
アクティブなタスクを実行中のサービスを誤って削除しないよう、タスクを停止。
タスクの数:0に設定し、「次のステップ」「サービスの更新」
当たり前だが、この時点で先ほどのURLにはアクセスできなくなる。
安心してクラスタを削除
丁寧に、「もし0にスケールダウンしてない場合は、削除前にスケールダウンするよ」と表示されたので、もしかしてタスクを止める処理は要らなかったかも。
EC2 インスタンス削除
あれインスタンスが見つからない。自動で削除されるようになった、と思うことにしよう。
作成の途中で明示的にEC2の設定はしていないので、自動削除なら親切だと思う。
ロードバランサー
選択して、削除
ターゲットグループは残ってしまうんだが、これはよいのだろうか?
次回予告
ありもののアプリを動かすだけのチュートリアルだったので、自分がやりたいこととはだいぶ違った気がするが、自前のDockerfileからAWS上でDocker動かすことを試す。
ステップ 1: コンテナとタスクのところを変更するればできるはず。