AWSのAmazon ECRとは?使い方や特徴・機能をわかりやすく解説
thumb_awsecr_01
AWSのAmazon ECRとは?使い方や特徴・機能をわかりやすく解説
アンドエンジニア編集部
2024.04.30
この記事でわかること
Amazon ECRとは、AWSでコンテナイメージを簡単に保存し、デプロイ・共有するサービスです
フルマネージドサービスのため、簡単にコンテナイメージをプッシュできます
Amazon ECRは簡単で、Dockerの操作に慣れていれば効率的にイメージを扱うことができます

AWSのAmazon ECRとは

img_awsecr_01

Amazon ECR(Amazon Elastic Container Registry)とは、AWSでコンテナソフトウェアイメージを簡単に保存し、デプロイ・共有するためのクラウドサービスを指します。フルマネージドのコンテナレジストリで、アプリケーションイメージとアーティファクトをデプロイすることができます。

ここでは、Amazon ECRの特徴や機能、使い方を解説します。

【参考】:Amazon Elastic Container Registry

Amazon ECRの特徴

Amazon ECRの特徴は、フルマネージドサービスのためインフラのインストール作業なしにコンテナイメージをプッシュできる点が挙げられます。好きな管理ツールを用いてイメージをプルし、利用します。

Amazon ECRは、Amazon ECS(Amazon Elastic Container Service)およびAmazon EKS(Amazon Elastic Kubernetes Service)と統合されています。そのことから、どちらのオーケストレーターサービスからでも、コンテナイメージの保存や実行が可能です。

操作は、Docker CLIコマンドによるコマンドライン操作やウェブアクセスなど、好みのDockerツールが使用できます。

【参考】:Amazon Elastic Container Registry の特徴

Amazon ECRの機能

Amazon ECRは、コンテナイメージを使うために必要な機能を提供します。コンテナイメージをライフサイクル管理し、不要なイメージをクリーンアップして保全します。この他にも、プルするイメージのキャッシュを管理したり、リージョンやアカウントを超えてイメージを作成したりすることもできます。

【参考】:AWS Docs: Amazon Elastic Container Registry とは

Amazon ECRの構成要素

Amazon ECRの構成要素は、いくつかのコンポーネントにわかれて提供されます。具体的には、次のコンポーネントに分かれます。

レジストリ サインインしたAWSアカウントに、それぞれ1つのプライベートレジストリが割り当てられます。このレジストリにDockerイメージやOCI(Open Container Initiative)イメージなどを格納します。

認証トークン クライアントが、イメージをプッシュあるいはプルする際に必要な認証手続きを行います。

リポジトリ DockerイメージやOCI(Open Container Initiative)イメージなどの集合体です。

リポジトリポリシー リポジトリの管理ポリシーに基づいて、リポジトリやコンテンツのアクセス制御を行います。

【参考】:AWS Docs: Amazon Elastic Container Registry とは

Dockerとは?使いどころやメリット・デメリットについて解説!

Amazon ECRとECSの違い

Amazon ECSは、Dockerコンテナの実行や停止などを管理するサービスです。コンテナのオーケストレーションサービスを提供します。Amazon ECRは、管理するコンテナイメージを保存するレジストリを提供します。Docker Hubのようなイメージ共有サービスを提供します。

Amazon ECRとECSの違いは、Amazon ECRがデプロイするコンテナイメージを格納し、Amazon ECSがコンテナの管理を担当する運用サービスという位置付けになります。

AWSの提供するECS(Amazon ECS)とは?概要からコンテナの管理まで解説!
AWSのコンテナについて初心者にも分かりやすく解説!

Amazon ECRの料金体系

Amazon ECRの料金は、プライベートおよびパブリックのリポジトリの保存データ、ならびにインターネットのデータ転送量で決まります。

無料枠が設定されており、最初の1年間は月当たり500MBのストレージがプライベートリポジトリ向けに無料で利用できます。パブリックリポジトリは、月当たり500GBのデータが新規・既存問わず無料で利用できます。

パブリックリポジトリからインターネットに転送する際も、月当たり5TBが無料で提供されます。

【参考】:Amazon Elastic Container Registry の料金

Amazon ECRの使い方

img_awsecr_02

Amazon ECRを使うには、AWSアカウントにサインインして使用します。すでにAmazon ECSあるいはAmazon EKSを使用している場合は、すぐに利用可能です。作業は、管理ユーザにサインインして進めていきます。

【参考】:Amazon Elastic Container Registry の開始方法 【参考】:AWS Docs: Amazon Elastic Container Registry とは

Amazon ECRのコマンドライン使用

Amazon ECRを使うには、コマンドラインインターフェースのAWS CLIが必要です。コマンドラインでコマンドを用いて、Amazon ECRやAWSのタスクを実行します。AWS CLIは、LinuxやmacOS、Windows版が提供されます。

Linux版は、次のようにインストールします。

curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
unzip awscliv2.zip
sudo ./aws/install

Windows版は、次のようにダウンロード・インストールします。

msiexec.exe /i https://awscli.amazonaws.com/AWSCLIV2.msi

インストール済みのユーザは、手順にしたがってバージョンアップグレードを行います。

【参考】:AWS Docs: AWS CLI での Amazon ECR の使用 【参考】:AWS Docs: AWS CLIの最新バージョンのインストールまたは更新

Dockerのインストール

Amazon ECRを使うには、Dockerが必要です。Docker Desktopは、Linux、macOS、WindowsがDockerでサポートされています。Docker Engineのインストールは、サポートされるLinuxプラットフォームに対して行います。

すでにAmazon EC2を使用中の場合は、Amazon Linux 2023 AMIを使用してインスタンスのインストールパッケージとパッケージキャッシュを更新し、Docker(Docker Community Edition)をインストールします。手順は次の通りです。

sudo yum update -y
sudo yum install docker

インストールが完了したら、Dockerサービスを開始しておきます。

【参考】:AWS Docs: AWS CLI での Amazon ECR の使用 【参考】:Docker Docs: Install Docker Engine

【Dockerインストール】Windows・Linux・MacOS

Dockerイメージを作成する

Dockerイメージを作成するには、Dockerfileと呼ばれるファイルを用意します。内容はテキストベースで、基本イメージと実行手順を記述します。Dockerfileの作成が完了したら、Dockerイメージを、”docker buid”コマンドで作成します。

作成されたDockerイメージは、”docker run”コマンドで、実行できます。

【参考】:AWS Docs: AWS CLI での Amazon ECR の使用 【参考】:Docker Docs: Dockerfile reference

Amazon ECRでDockerイメージを使用する

ここまでの作業で、AWS CLIのインストールとDockerのインストールからイメージ作成まで完了しています。

Amazon ECRでDockerイメージを使用するには、Dockerを認証する必要があります。認証するために、”get-login-password”コマンドを使用します。生成された認証トークンをDockerの”docker login”コマンドに渡します。具体的には、次のように使用します。

aws ecr get-login-password --region region | docker login --username AWS --password-stdin aws_account_id.dkr.ecr.region.amazonaws.com

regionはリージョン、usernameはAWS、URIはAmazon ECRの認証されたレジストリを指定します。

【参考】:AWS Docs: AWS CLI での Amazon ECR の使用

Dockerイメージとコンテナの違いとは?作成の流れ入門

Amazon ECRでイメージを使用する

Dockerイメージが準備できたら、Amazon ECRでイメージを使用します。最初にイメージを保存するためのリポジトリを次のように作成します。

aws ecr create-repository --repository-name img-repository --region region

repository-nameはリポジトリ名でここでは”img-repository”、regionはリージョンを指定します。タグをつけるには、”docker tag”で、”latest”などを付記し、リポジトリにイメージをプッシュします。

docker tag img-repository:latest \
aws_account_id.dkr.ecr.region.amazonaws.com/img-repository
 
docker push aws_account_id.dkr.ecr.region.amazonaws.com/img-repository

Amazon ECRからイメージをプルするには、Dockerはバージョン1.7以降が必要です。認証トークンが”docker login”で設定されており、リポジトリからプルするアクセス許可を得ておきます。プルの手順は次の通りです。

docker pull aws_account_id.dkr.ecr.region.amazonaws.com/img-repository:latest

【参考】:AWS Docs: AWS CLI での Amazon ECR の使用

Amazon ECRの使い方はDockerに慣れることから始めよう

img_awsecr_03

Amazon ECRは、Dockerなどのコンテナイメージを簡単にAWSで扱うためのサービスです。AWSでの統合運用に適しており、操作は簡単です。Dockerの操作が前提となりますので、あらかじめDockerに慣れておくと効率的なコンテナイメージ活用が可能となるでしょう。

気になる人のXをフォローしよう!
アンドエンジニア公式LINEでは
新着記事やエンジニアに役立つ情報をお届け!
日々のキャッチアップをお手伝いします!
マイナビITエージェント

編集部オススメコンテンツ

Sponsored
【年収±診断】6つの質問に答えて、真の市場価値をチェック!
マイナビITエージェント
Sponsored

アンドエンジニアへの取材依頼、情報提供などはこちらから

お問い合わせ・情報提供
はじめて転職される方へ
SE・システムエンジニア(IT/通信/インターネット) 求人一覧

編集部おすすめコンテンツ

Sponsored
【年収±診断】6つの質問に答えて、真の市場価値をチェック!
マイナビITエージェント
Sponsored

アンドエンジニアへの取材依頼、情報提供などはこちらから

Powered by マイナビ AGENT