🙆

AWS ECRリポジトリ作成

2024/08/30に公開

AWS ECRとは?

AWS ECR(Elastic Container Registry)は、Amazon Web Servicesが提供するフルマネージドのコンテナイメージレジストリサービスです。ECRを利用すると、Dockerコンテナイメージを安全に保存、管理、およびデプロイすることができます。AWS ECS(Elastic Container Service)やAWS Fargateなどの他のAWSサービスとの連携がスムーズに行えるため、クラウドネイティブなアプリケーションのデプロイメントに最適なプラットフォームです。

AWS ECRの特徴

  • フルマネージド: ECRは、インフラストラクチャの管理を必要としないフルマネージドサービスです。ユーザーはイメージの管理に集中でき、ECRはバックグラウンドでスケーラブルで高可用性なレジストリ環境を提供します。

  • セキュリティ: ECRは、イメージの保存と取得に対して、AWS IAM(Identity and Access Management)を使用して詳細なアクセス制御を設定できます。また、イメージの自動スキャン機能により、セキュリティ脆弱性を検出して、コンプライアンスを維持するのに役立ちます。

  • シームレスな統合: ECRは、AWSの他のサービスとシームレスに統合されており、ECSやFargateを使用したコンテナのデプロイメントが容易です。また、CI/CDパイプラインに簡単に統合できるため、DevOpsプロセスの効率を向上させます。

  • コスト効率: ECRは使用量に基づいて課金されるため、使用した分だけ支払うことができます。保存されるデータに対しては柔軟なストレージオプションが提供され、無駄なコストを削減できます。

AWS ECR使用の準備

AWS ECSを使用するための準備手順は以下の通りです。

  • AWSアカウントの作成: AWS ECSを利用するには、まずAWSアカウントを作成します。公式サイトで登録を行い、必要な情報を入力してアカウントを取得します。

  • IAMユーザーの設定: AWSリソースにアクセスするためのIAMユーザーを作成し、必要な権限を付与します。ECSには少なくともAmazonEC2ContainerServiceFullAccessポリシーが必要です。

  • CLIの設定: AWS CLIをインストールし、認証情報を設定します。CLIを使用すると、ECSの管理がコマンドラインから簡単に行えます。AWS CLIの導入

ローカルでコンテナイメージの確認

% docker images
REPOSITORY         TAG       IMAGE ID       CREATED         SIZE
backend            latest    1d8cb0b46688   2 weeks ago     1.27GB

上記ローカルの backend:latest をECRへプッシュする作業に進みます、

ECRプライベートリポジトリ作成

AWS > ECR > リポジトリ にアクセスし、「リポジトリの作成」をクリックします。
可視性設定は「プライベート」を選択し、リポジトリを作成します。
「プッシュコマンドの表示」を押下し、ローカルからプッシュするためのコマンドを表示します。

認証トークンを取得しレジストリに対して Docker クライアントを認証。 AWS CLI を使用。

% aws ecr get-login-password --region ap-northeast-1 | docker login --username AWS --password-stdin 000000000000.dkr.ecr.ap-northeast-1.amazonaws.com
Login Succeeded //成功の場合

リポジトリ名とタグの付与

% docker tag backend:latest 000000000000.dkr.ecr.ap-northeast-1.amazonaws.com/ecs-backend:latest

プッシュ実行

% docker push 000000000000.dkr.ecr.ap-northeast-1.amazonaws.com/ecs-backend:latest

プッシュが完了するとECR上でコンテナが確認できます。

AWS ECRのベストプラクティス

  • イメージのバージョン管理: イメージには明確なバージョンを付与し、変更履歴を管理します。これにより、リリースやロールバックが容易になります。

  • セキュリティスキャンの実施: ECRの自動スキャン機能を活用し、イメージに含まれる脆弱性を定期的にチェックします。セキュリティリスクを最小限に抑えるため、定期的なスキャンが推奨されます。

  • ライフサイクルポリシーの設定: 不要になったイメージを自動で削除するライフサイクルポリシーを設定し、ストレージの効率を最適化します。

  • アクセス制御の強化: IAMポリシーを適切に設定し、リポジトリへのアクセスを制限することで、セキュリティを強化します。不要なアクセス権限を持たせないことが重要です。

まとめ

AWS ECRは、コンテナイメージの管理を安全かつ効率的に行うための強力なツールです。AWSの他のサービスと緊密に統合されており、CI/CDパイプラインの一部として利用することで、アプリケーションのデプロイメントを自動化し、迅速かつセキュアな運用が可能です。ECRを活用することで、コンテナ管理の複雑さを軽減し、アプリケーションのライフサイクル全体を通じて効率的に運用できます。

次回はGitHub Actionsと連携し、CI/CDを構築します。

株式会社KOMPEITO テックブログ

Discussion