こんにちは!エンジニアの落合です。
今回は初めてECRとECSを触ったので、備忘録として書いていきます。
目次
1. ECRリポジトリ作成
まずはECRのリポジトリを作成していきます。
ECRのコンソールを開き、リポジトリの作成から「作成」をクリックします。
リポジトリ名を入力して、イメージのスキャン設定のみ変更しておきます。
「作成」を押して、プライベートリポジトリの一覧に表示されたら作成完了です。
2. Dockerイメージをプッシュ
ECRリポジトリができたので、リポジトリにDockerイメージをプッシュします。
リポジトリを選択して「プッシュコマンドを表示」をクリックすると、必要なコマンドを出してくれます!便利!
今回はWindows環境でコマンドを実行します。
!エラー① Dockerクライアント認証ができない
1つ目のコマンドを実行したところエラーが出てしまいました。
1 |
(Get-ECRLoginCommand).Password | docker login --username AWS --password-stdin 432226266672.dkr.ecr.ap-northeast-1.amazonaws.com |
調べてみたら、モジュールのインストールが必要みたいです。
以下のコマンドでインストールします。
1 2 |
Import-Module AWS.Tools.Installer Install-AWSToolsModule AWS.Tools.ECR -CleanUp |
スクリプトの実行が無効になっているのでインストールができないようです。
以下のコマンドで一時的にスクリプトの実行を有効にして、もう一度インストールコマンドを試してみます。
1 |
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser |
インストールできました!
気を取り直して、もう一度Dockerクライアント認証のコマンドを実行します。
1 |
(Get-ECRLoginCommand).Password | docker login --username AWS --password-stdin 432226266672.dkr.ecr.ap-northeast-1.amazonaws.com |
成功しました!
続いてDocker イメージの構築、タグ付け、イメージのプッシュのコマンドも実行します。
イメージは以前作成したものを使いました。
1 2 3 |
docker build -t repo-test . docker tag repo-test:latest 432226266672.dkr.ecr.ap-northeast-1.amazonaws.com/repo-test:latest docker push 432226266672.dkr.ecr.ap-northeast-1.amazonaws.com/repo-test:latest |
コンソールに戻ってリポジトリを確認すると、無事にイメージがプッシュできていました!
3. ECSクラスター作成
続いてECSクラスターを作成します。
ECSコンソールを表示して、「クラスターの作成」をクリックします。
今回はFargateを利用します。
!エラー② ECSクラスター作成ができない
エラーが発生しました。権限が不足してるみたいです。
ECSクラスターを作成するためのロールを作成して、もう一度作成してみます。
今度は無事に作成できました!
続いて、クラスターで実行するためのタスク定義を作成します。
先ほど作成したクラスターを選択し、タスクタブの「新しいタスクの実行」をクリックします。
「タスク定義」リンクをクリックして、先にタスク定義ファミリーを作成します。
タスク定義ファミリー名と起動タイプ、タスクサイズ、コンテナの設定して「作成」をクリックします。
今回は試しに起動してみるだけなので、タスクサイズは最小にしました。
コンテナのURIはECRリポジトリのイメージURIを入力します。
元のタブに戻り、作成したタスク定義ファミリーを選択して「作成」をクリックします。
http://<タスクのIPアドレス>/helloにアクセスができるようになっていました!
おわりに
ECRとECSについてはAWS試験の勉強で学びましたが、実際に触ってみると結構苦戦しました。
慣れてしまえば環境構築が素早くできそうで便利そうです。
今度はもう少し設定をいじってみたいと思います!
- ECR + ECS環境を構築してみた - 2025-07-31
- CodeCommitからGithubへのソース移行 - 2024-12-18
- これからエンジニアとして頑張ろうとしている方へ - 2023-12-22
【採用情報】一緒に働く仲間を募集しています
