Amazon ECS2021年12月27日 | |
はじめにAWS で Docker コンテナを利用する Elastic Container Service (ECS) を使ってみる。 リポジトリの作成ECS で Docker コンテナを利用するために、Amazon Elastic Container Repository (ECR) でリポジトリを作る。
EC2 インスタンスで Docker を利用するEC2 インスタンス (ここでは Amazon Linux 2) で Docker イメージを用意する。そのために、Docker のセットアップをする。 docker のインストールとサービスの開始。 $ sudo amazon-linux-extras install docker $ sudo service docker start sudo を不要になるように設定する。 $ sudo usermod -a -G docker ec2-user 一旦ログアウトして、接続しなおす。確認。 $ docker info Docker イメージを取得するなり、作成するなりする。 イメージの登録用意した Docker イメージを ECR のリポジトリに登録する。 ECR でリポジトリを選択して、[プッシュコマンドの表示]。以下のようなコマンドが表示される。 $ aws ecr get-login-password --region ap-northeast-1 | docker login --username AWS --password-stdin xxxxx.dkr.ecr.ap-northeast-1.amazonaws.com 前段 ("|" まで) は AWS CLI のコマンドなので、AWS CLI の設定を済ませておく必要がある。あるいは、ここでやっていることはパスワードの文字列を取得しているだけなので、CloudShell でやってしまってもよい。たとえば CloudShell で次のようにする。 $ aws ecr get-login-password --region ap-northeast-1 出てきた文字列をコピーする。EC2 インスタンスのほうで、エディタを開き、コピーした文字列を貼り付ける。たとえば "docker_pass" というファイル名で保存する。そして次のようにする。 $ cat docker_pass | docker login --username AWS --password-stdin xxxxx.dkr.ecr.ap-northeast-1.amazonaws.com これでリポジトリにログインしたことになる。イメージをリポジトリにアップロード (プッシュ) する。まず、タグ付けする。 $ docker tag <イメージ名>:latest xxxxx.dkr.ecr.ap-northeast-1.amazonaws.com/<リポジトリ名>:latest プッシュする。 $ docker push xxxxx.dkr.ecr.ap-northeast-1.amazonaws.com/<リポジトリ名>:latest ECR の画面でプッシュしたイメージの情報が出てくるはずである。 クラスターの作成ECS で「クラスター」を作成する。クラスターは「タスク」の形で Docker コンテナを管理する。
タスクの作成クラスターで Docker コンテナを実行するために、タスクを作成する。
タスクの実行ECS のクラスターでタスク (Docker コンテナ) を実行する。
EC2 タイプの場合、キーペアを設定しておけば Docker コンテナを実行しているインスタンスに SSH で入ることができる。タスクの「コンテナインスタンス」を選んで、パブリック DNS を調べればよい。入れたら Docker コンテナが動いているのを確認できる。 $ docker ps -a | |
| PENGUINITIS | |