AWS ECR@AWSリソース¶
はじめに¶
本サイトにつきまして、以下をご認識のほど宜しくお願いいたします。
01. AWS ECR¶
AWS ECRとは¶
コンテナイメージやhelmチャートを管理できる。
02. セットアップ¶
コンソール画面の場合¶
▼ 設定項目と説明¶
設定項目 | 説明 | 補足 |
---|---|---|
可視性 | イメージリポジトリをパブリックあるいはプライベートにするかを設定する。 | 様々なベンダーがパブリックリポジトリでAWS ECRイメージを提供している。 ・https://gallery.ecr.aws/ |
タグのイミュータビリティ | 同じタグ名でイメージがプッシュされた場合、バージョンタグを上書きできる/できないかを設定できる。 | - |
プッシュ時にスキャン | イメージがプッシュされた時に、コンテナイメージにインストールされているパッケージの脆弱性を検証し、一覧表示する。 | ・https://docs.aws.amazon.com/AmazonECR/latest/userguide/image-scanning.html |
暗号化設定 | - | - |
イメージのプッシュ¶
▼ コンテナイメージの場合¶
(1)
-
AWS ECRにログインする。
$ aws ecr get-login-password --region ap-northeast-1 | \
docker login --username AWS --password-stdin <イメージリポジトリURL>
Login Succeeded
(2)
-
イメージにタグを付与する。
# docker tag foo:latest <AWSアカウントID>.dkr.ecr.ap-northeast-1.amazonaws.com/foo-repository:latest
$ docker tag <イメージID> <イメージリポジトリURL>:<バージョンタグ>
(3)
-
AWS ECRにコンテナイメージをプッシュする。
# docker push <AWSアカウントID>.dkr.ecr.ap-northeast-1.amazonaws.com/foo-repository:latest
$ docker push <イメージリポジトリURL>:<バージョンタグ>
▼ helmチャートの場合¶
調査中...
ライフサイクル¶
▼ ライフサイクルポリシー¶
AWS ECRのコンテナイメージの有効期間を定義できる。
設定項目 | 説明 | 補足 |
---|---|---|
ルールの優先順位 | 数字で、ルールの優先度を設定できる。 | 数字が小さいほど、優先度は高くなる。数字は連続している必要はなく、例えば、10 、20 、90 、のように設定しても良い。 |
イメージのステータス | ルールを適用するイメージの条件として、タグの有無や文字列を設定できる。 | |
一致条件 | イメージの有効期間として、同条件に当てはまるイメージが削除される閾値を設定できる。 | 個数、プッシュされてからの期間などを閾値として設定できる。 |
バージョンタグ¶
▼ タグ名のベストプラクティス¶
Dockerのベストプラクティスに則り、タグ名にlatest
を使用しないようにする。
代わりに、コンテナイメージのバージョンごとに異なるタグ名になるようハッシュ値 (例:GitHubのコミットID) を使用する。
プルスルーキャッシュリポジトリ¶
特に、DockerHubはレートリミットがあるため、DockerHub上のリポジトリをプライベートリポジトリで管理しておく方が良い。
この時、プルスルーキャッシュリポジトリはコピーをプライベートリポジトリに自動的にプルしてくれる。