Webサイト制作コースのお申し込みはこちら Webサイト制作コースのお申し込みはこちら

AWSのECR(Dockerイメージの保存・取得サービス)についてまとめています。

AWSのECRは、コンテナソフトウェアの保存、共有、デプロイ

AWSのECR(Elastic Container Registry)は、コンテナイメージの登録に使えるレジストリサービス。AWSサービスで使用するコンテナイメージを保存しておくと、GitHubやGitLabなどの外部のレジストリサービスを利用するよりも連携が簡単になります。

【関連記事】
GitHubとGitLabの違い ユーザ数規模や特徴、価格やサーバ環境を比較

Elastic Container Registryに登録されたコンテナは、Amazon Elastic Container Service (Amazon ECS) か、Amazon Elastic Kubernetes Service (Amazon EKS) での保存や実行が可能です。

【関連記事】
AWSのdocker実行はAmazon ECS コンテナアプリケーションをAWS環境で起動

コンテナイメージの操作には、OCI(Open Container Initiative)標準と、Docker Regsitry HTTP API V2をサポートしています。使い慣れたdockerのCLIコマンド(push、pull、list、tagなど)を利用可能です。

Elastic Container Registryでは、自作したコンテナイメージのほかに、公開されているパブリックコンテナイメージやアーティファクトギャラリーからコンテナソフトウェアのイメージを利用可能。また、AWS Market Placeで購入したソフトウエアを利用することができます。

Elastic Container Registryのコンテナイメージとアーティファクトは、Amazon S3に保存され、99.999999999% のデータの耐久性を実現するよう設計されています。

【関連記事】
AWS S3ってどんなサービス?初心者向けに機能紹介

Elastic Container Registryに保存されたコンテナイメージは、IAMによってアクセス制御の管理・監視が可能です。外部のリポジトリを利用する場合に比べて、AWS内でコンテナイメージへのアクセス権限の管理ができる点もメリットと言えるでしょう。

【関連記事】
AWSのIAMは、AWSサービスとリソースへのアクセス管理とアクセス分析が可能

AWS ECRの使い方

AWSのECRは、AWSマネジメントコンソールから管理画面を呼び出すことができます。

【関連記事】
AWSを集中管理したい!AWS マネジメントコンソールを使いこなそう!

AWSマネジメントコンソールの検索窓に「ECR」と入力し、「レジストリ Elastic Container Registstryの機能」をクリックします。

Amazon Elastic Container Registtryの使い方が表示されるので、「リポジトリの作成」をクリックします。

「リポジトリを作成」画面が表示されます。プライベート(非公開で使用)、パブリック(公開して使用)の設定、リポジトリ名、タグのイミュータビリティ(コンテナイメージにつけたタグが同一の場合に上書きするか、別ファイルとして保存するか)、イメージスキャン、暗号化の設定をおこないます。

画面を下にスクロールさせ、「リポジトリの作成」をクリックします。

リポジトリが作成されます。作成済みのリポジトリは、Amazon Container Servicesの「Repositories」にて確認できます。ここでは、プライベートリポジトリで「myrepo」を作成しました。Private、Public、リポジトリ名、URL、各種設定が表示されています。

リポジトリ名をクリックすると、リポジトリに登録されているコンテナイメージが表示されます。

コンテナイメージは、AWS CLI(Linux、Mac OS)か、PowerShellムケAWS Tools(Windows)を使ってプッシュすることでリポジトリへの登録が可能です。具体的なコマンドは「プッシュコマンドの表示」をクリックすると表示されます。

【関連記事】
AWS CLIのインストール方法 AWSアクセスキーの登録と疎通確認

例えば、Linux向けにAWS CLIのコマンド+dockerコマンドでイメージをプッシュするには、以下のコマンドを実行します。

aws ecr get-login-password --region us-east-1 | docker login --username AWS --password-stdin 252883271295.dkr.ecr.us-east-1.amazonaws.com

docker build -t myrepo .

docker tag myrepo:latest 252883271295.dkr.ecr.us-east-1.amazonaws.com/myrepo:latest

docker push 252883271295.dkr.ecr.us-east-1.amazonaws.com/myrepo:latest

Windows向けにPowerShellのAWS Tools+dockerでプッシュを行なう場合は、以下のようになります。

(Get-ECRLoginCommand).Password | docker login --username AWS --password-stdin 252883271295.dkr.ecr.us-east-1.amazonaws.com

docker build -t myrepo .

docker tag myrepo:latest 252883271295.dkr.ecr.us-east-1.amazonaws.com/myrepo:latest

docker push 252883271295.dkr.ecr.us-east-1.amazonaws.com/myrepo:latest

AWS ECRの料金

Elastic Container Registryの利用料金は、リージョンが米国東部(オハイオ)の場合、ストレージ料金が1GBあたり0.1ドル、AWSサービス内でコンテナイメージを使う(データ受信)場合はデータ転送費用は0円です。具体的には、AWS Pricing Calculatorで、ストレージ設定とデータ転送(受信、送信)のデータ量を指定すると見積もりを取得できまs.

【関連記事】
AWSの見積もりは、AWS Pricing Calculatorで自動計算 ユースケースから流用も可能

関連)AWS Pricing Calculator

ストレージ容量10GBのレジストリを利用した場合の利用料金は、以下のようになります。

データ送信には、リージョン外のデータ転送には、月に1GB以上の転送の際に0.09USD/GBの料金がかかります。オンプレミスサイトやクロスリージョンでAWS ECRのコンテナを利用するような場合は、転送量によっては費用が発生することになります。

AWS ECRのまとめ

ポテパンダの一言メモ
  • AWSのECR(Elastic Container Registry)は、AWSのコンテナイメージのリポジトリサービス
  • コンテナイメージ実体は高可用性のAmazon S3に保存され、IAMにてアクセス権限の管理が可能
  • 利用料金はストレージが1GBあたり0.1ドル、同一リージョンのAWS内でコンテナを使う場合は無料

エンジニアになりたい人に選ばれるプログラミングスクール「ポテパンキャンプ 」

ポテパンキャンプは卒業生の多くがWebエンジニアとして活躍している実践型プログラミングスクールです。 1000名以上が受講しており、その多くが上場企業、ベンチャー企業のWebエンジニアとして活躍しています。

基礎的な学習だけで満足せず、実際にプログラミングを覚えて実践で使えるレベルまで学習したいという方に人気です。 プログラミングを学習し実践で使うには様々な要素が必要です。

それがマルっと詰まっているポテパンキャンプでプログラミングを学習してみませんか?

卒業生の多くがWebエンジニアとして活躍

卒業生の多くがWeb企業で活躍しております。
実践的なカリキュラムをこなしているからこそ現場でも戦力となっております。
活躍する卒業生のインタビューもございますので是非御覧ください。

経験豊富なエンジニア陣が直接指導

実践的なカリキュラムと経験豊富なエンジニアが直接指導にあたります。
有名企業のエンジニアも多数在籍し品質高いWebアプリケーションを作れるようサポートします。

満足度高くコスパの高いプログラミングスクール「ポテパンキャンプ」

運営する株式会社ポテパンは10,000人以上のエンジニアのキャリアサポートを行ってきております。
そのノウハウを活かして実践的なカリキュラムを随時アップデートしております。

代表の宮崎もプログラミングを覚えサイトを作りポテパンを創業しました。
本気でプログラミングを身につけたいという方にコスパ良く受講していただきたいと思っておりますので、気になる方はぜひスクール詳細をのぞいてくださいませ。