教材
前提
https://qiita.com/sanajima/items/cfbac6635b48890a1ba9
の通りローカルでDockerコンテナ作成しておきHelloWorldできるようにしておく
完成形
作業(ローカル)
①Windows10のターミナルを開きUbuntuのウィンドウを開きます
②作業ディレクトリを作成してDockerFileを作成します
mkdir ecs_test
cd ecs_test
code Dockerfile(VSCodeを使用している場合)
FROM nginx:latest
COPY ./src /usr/share/nginx/html
③htmlファイルを作成します
mkdir src
code src/index.html
Hello world from ECS nginx!!!
④Dockerファイルのあるディレクトリで
docker build . -t hello-world-from-ecs
⑤docker images
としてイメージが出来ていることを確認する
⑥ docker run --rm -d -p 80:80 hello-world-from-ecs
としてブラウザ表示してみる
または、Docker For Windowsのアプリから「OPEN IN BROWSER}してみる
作業(AWSマネジメントコンソール→ECR)
⑦ECRを開く(←間違えないように!!)
⑧リポジトリを作成する「hello-world-from-ecs」というリポジトリ名で。
Linuxを参考にする。
参考サイトにあるように、「docker build -t hello-world-from-ecs .」は飛ばす
(ローカルで実施ずみだから)
★aws ecr get-login-password ~が失敗するときは
ホームディレクトリの.awsフォルダの中の認証情報のファイルを見直す
vi credentials
作業(VPCその他を作成)
⑪VPCを作成する
⑫サブネットを作成する
⑬インターネットゲートウェイを作成する→先ほど作ったVPCにアタッチする
⑭ルートテーブルを作成する→きほど作ったサブネットを紐づける
⑮ルートテーブルのルートの設定で「0.0.0.0/0」を先ほど作ったインターネットゲートウェイを指定する
作業(AWSマネジメントコンソール→ECS)
⑯ECSを開く←間違えない
⑰今すぐ始める→クラスターの作成→ネットワーキングのみ(FARGATEを使用)→名前を付ける
⑱タスク定義→新しいタスク定義の作成→Fargate→名前を付ける・コンテナを指定する(先ほど作ったECR)
大事!!
「タスクロール : なし」
「タスク実行IAMロール : 新しいロールの作成」
「ポートマッピング コンテナポート:80 , プロトコル:tcp」
を指定または選びます。
⑲もう一度クラスター → サービス→ 作成 →起動タイプ「Fargate」
→名前を付ける、タスクの数1とかにする
→ネットワークの設定で、先ほど作ったVPCやサブネットを指定する
→「パブリックIPの割当て ENABLED」
でサービスを作成し、PublicIPをブラウザに入れると、HelloWorldできます。
-
所感
AWSの画面が変更されているので読み替えながら、実施しました