Cloud & IT Cert Prep · Pelajaran

ECR: Menyimpan dan Menarik Imej Bekas

Tolak imej Docker ke Amazon ECR, gunakan dasar kitar hayat untuk membuang imej lama, dan tarik imej dengan selamat ke dalam tugasan ECS.

Pelajaran 3 daripada 413 langkah

ECR: Menyimpan dan Menarik Imej Bekas ialah pelajaran Cloud & IT Cert Prep percuma di CoddyKit. Ini ialah pelajaran 3 daripada 4. Anda boleh membaca keseluruhan pelajaran di bawah secara percuma — kemudian berlatih secara praktikal dalam pelayar menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran Cloud & IT Cert Prep, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Cloud & IT Cert Prep merangkumi sejumlah 4 pelajaran.

Apakah Amazon ECR?

Amazon Elastic Container Registry (ECR) ialah pendaftaran imej kontena serasi Docker yang diurus sepenuhnya. Ia menyimpan, mengurus dan menggunakan imej kontena dengan selamat dalam AWS. ECR menghapuskan keperluan untuk mengendalikan infrastruktur pendaftaran sendiri dan disepadukan secara natif dengan ECS, EKS, Lambda (imej kontena) dan CodeBuild. Imej yang disimpan dalam ECR direplikasi untuk ketersediaan tinggi dan boleh diimbas secara automatik bagi mengesan kerentanan keselamatan.

Repositori ECR Persendirian berbanding Awam

ECR menyokong dua jenis repositori: Repositori persendirian dalam Amazon ECR memerlukan pengesahan AWS untuk menarik imej—sesuai untuk imej aplikasi proprietari. Akses dikawal oleh dasar IAM dan dasar sumber repositori. Repositori awam dalam ECR Public Gallery (public.ecr.aws) membenarkan penarikan tanpa pengesahan dari mana-mana tempat di internet—sesuai untuk imej asas sumber terbuka, alat awam dan imej yang disediakan AWS (imej asas Lambda, imej AMI yang dioptimumkan untuk ECS). Repositori awam mempunyai peruntukan penarikan percuma dengan had kadar untuk permintaan tanpa pengesahan.

# Create a private ECR repository
aws ecr create-repository \
  --repository-name 'myapp/backend' \
  --image-scanning-configuration scanOnPush=true \
  --image-tag-mutability IMMUTABLE

Mengesahkan Docker kepada ECR

Untuk menolak atau menarik imej ECR persendirian, Docker mesti membuat pengesahan menggunakan kelayakan AWS. Gunakan aws ecr get-login-password untuk mendapatkan token pengesahan sementara dan salurkannya kepada docker login. Token tersebut sah selama 12 jam. Dalam saluran paip CI/CD, segarkan token sebelum setiap penolakan. Ejen tugas ECS, Lambda dan nod pekerja EKS membuat pengesahan kepada ECR secara automatik menggunakan peranan IAM masing-masing—tiada log masuk manual diperlukan untuk penarikan semasa masa jalan dalam persekitaran AWS.

# Authenticate Docker CLI to ECR
aws ecr get-login-password --region us-east-1 | \
  docker login \
    --username AWS \
    --password-stdin \
    123456789012.dkr.ecr.us-east-1.amazonaws.com

Menolak Imej ke ECR

Aliran kerja standard untuk menolak imej ke ECR: (1) Bina imej Docker secara setempat; (2) Tag imej dengan URI repositori ECR (format: account.dkr.ecr.region.amazonaws.com/repo-name:tag); (3) Tolak imej yang telah ditag. ECR menyimpan setiap lapisan imej secara berasingan dan menghapus duplikasi lapisan yang sama antara imej, sekali gus mengurangkan kos storan. Menggunakan tag tidak boleh ubah menghalang penggantian tag, memastikan versi imej yang digunakan kekal stabil dan boleh diaudit.

# Build, tag, and push
docker build -t myapp/backend .
docker tag myapp/backend \
  123456789012.dkr.ecr.us-east-1.amazonaws.com/myapp/backend:v1.2.3
docker push \
  123456789012.dkr.ecr.us-east-1.amazonaws.com/myapp/backend:v1.2.3

Kebolehubahan Tag Imej

Tag IMMUTABLE menghalang tag daripada digantikan dengan imej yang berbeza. Apabila kebolehubahan tag ialah IMMUTABLE, penolakan imej baharu kepada tag sedia ada akan gagal—you mesti menggunakan tag baharu. Ini ialah amalan terbaik untuk pengeluaran: ia memastikan :v1.2.3 sentiasa merujuk kepada digest imej yang sama tepat, sekali gus membolehkan pemulihan versi terdahulu dan pengauditan yang boleh dipercayai. Gunakan tag MUTABLE hanya untuk cabang pembangunan atau tag kemudahan :latest dalam persekitaran bukan pengeluaran.

Pengimbasan Imej untuk Mengesan Kerentanan

Dayakan pengimbasan semasa penolakan untuk mengimbas imej secara automatik bagi CVE yang diketahui apabila imej ditolak. ECR menggunakan penyepaduan Amazon Inspector (pengimbasan dipertingkat) atau Pengimbasan Asas terbina dalam yang dikuasakan oleh pengimbas sumber terbuka Clair. Pengimbasan dipertingkat menyediakan pengimbasan berterusan (bukan hanya semasa penolakan) dan meliputi pakej OS serta pakej khusus bahasa (Node.js, Python, Java). Semak penemuan imbasan dalam konsol ECR atau melalui pemberitahuan EventBridge kepada pasukan keselamatan anda.

# Enable enhanced scanning for a registry
aws ecr put-registry-scanning-configuration \
  --scan-type ENHANCED \
  --rules '[{"repositoryFilters": [{"filter": "*", "filterType": "WILDCARD"}], "scanFrequency": "CONTINUOUS_SCAN"}]'

Dasar Kitar Hayat untuk Mengurus Kos Imej

ECR mengenakan caj storan bagi setiap GB sebulan. Tanpa pengurusan, imej lama akan terkumpul tanpa had dan meningkatkan kos. Dasar kitar hayat tamat tempoh dan memadam imej secara automatik berdasarkan peraturan: contohnya, simpan hanya 10 keluaran bertag yang terkini atau padam imej tanpa tag yang berusia lebih daripada 7 hari. Dasar kitar hayat dijalankan setiap hari. Ini amat penting dalam saluran paip CI/CD yang menolak imej baharu pada setiap serahan, kerana ratusan imej boleh terkumpul setiap minggu.

aws ecr put-lifecycle-policy \
  --repository-name 'myapp/backend' \
  --lifecycle-policy-text '{
    "rules": [
      {
        "rulePriority": 1,
        "description": "Keep last 10 tagged images",
        "selection": {"tagStatus": "tagged", "tagPrefixList": ["v"], "countType": "imageCountMoreThan", "countNumber": 10},
        "action": {"type": "expire"}
      },
      {
        "rulePriority": 2,
        "description": "Delete untagged images after 7 days",
        "selection": {"tagStatus": "untagged", "countType": "sinceImagePushed", "countUnit": "days", "countNumber": 7},
        "action": {"type": "expire"}
      }
    ]
  }'

Akses Imej Merentas Akaun

Untuk menarik imej daripada repositori ECR dalam Akaun A ke ECS/EKS/Lambda dalam Akaun B, konfigurasikan dasar repositori (dasar berasaskan sumber) pada repositori ECR dalam Akaun A supaya memberikan prinsipal IAM daripada Akaun B keizinan untuk memanggil ecr:GetDownloadUrlForLayer, ecr:BatchGetImage dan ecr:BatchCheckLayerAvailability. Ini menghapuskan keperluan menyalin imej antara akaun dan membolehkan pengurusan imej berpusat dengan penggunaan teragih.

Replikasi ECR untuk Penggunaan Berbilang Wilayah

Replikasi ECR menyalin imej secara automatik daripada pendaftaran utama anda kepada pendaftaran di Wilayah AWS yang lain (dan secara pilihan kepada akaun lain). Apabila tugas ECS di Wilayah lain menarik imej, imej tersebut ditarik daripada pendaftaran wilayah setempat—lalu mengurangkan kos pemindahan data dan kependaman penarikan imej. Konfigurasikan peraturan replikasi pada peringkat pendaftaran dengan menentukan repositori yang hendak direplikasi serta wilayah dan akaun destinasi. Replikasi berlaku secara tak segerak dan hampir masa nyata.

aws ecr put-replication-configuration \
  --replication-configuration '{
    "rules": [{
      "destinations": [
        {"region": "eu-west-1", "registryId": "123456789012"},
        {"region": "ap-southeast-1", "registryId": "123456789012"}
      ],
      "repositoryFilters": [{"filter": "prod/*", "filterType": "PREFIX_MATCH"}]
    }]
  }'

Penyulitan ECR

ECR menyulitkan imej semasa rehat menggunakan penyulitan sisi pelayan. Secara lalai, ia menggunakan kunci terurus AWS (AWS_MANAGED_KEY). Untuk kawalan dan kebolehauditan tambahan, konfigurasikan kunci KMS terurus pelanggan (CMK). Dengan CMK, anda mengawal putaran kunci, boleh membatalkan akses dengan menyahdayakan kunci dan boleh mengaudit semua operasi penyahsulitan dalam CloudTrail. Dayakan penyulitan KMS apabila pematuhan kawal selia (PCI-DSS, HIPAA, FedRAMP) memerlukan kunci penyulitan yang dikawal pelanggan.

Menggunakan ECR dengan ECS dalam Saluran Paip CI/CD

Saluran paip CI/CD lengkap untuk ECS dengan ECR: (1) Pembangun menolak kod ke Git; (2) CodeBuild membina imej Docker dan menolaknya ke ECR dengan tag SHA serahan; (3) CodePipeline mengemas kini takrifan tugas ECS dengan URI imej baharu; (4) ECS melaksanakan kemas kini berperingkat bagi perkhidmatan dengan menarik imej baharu daripada ECR. Tugas ECS menggunakan Peranan Pelaksanaan Tugas untuk membuat pengesahan kepada ECR secara automatik—tiada kelayakan perlu diuruskan dalam saluran paip bagi penarikan semasa masa jalan.

Semakan Pantas

Uji pemahaman anda tentang konsep AWS Solutions Architect (SAA-C03) daripada pelajaran ini.

Rumusan Pelajaran

Dalam pelajaran ini anda telah mempelajari bahawa: repositori persendirian ECR menyimpan imej kontena dengan akses yang dikawal IAM, tag tidak boleh ubah untuk kestabilan pengeluaran dan pengimbasan kerentanan automatik dengan Inspector; Dasar Kitar Hayat menamatkan tempoh imej lama dan tanpa tag secara automatik untuk mengawal kos storan dalam persekitaran CI/CD yang aktif; manakala Replikasi ECR menyalin imej ke wilayah dan akaun lain bagi penggunaan berbilang wilayah dengan kependaman penarikan yang lebih rendah. Seterusnya kita akan meneroka Penskalaan Auto Perkhidmatan ECS dan penyepaduan pengimbangan beban.

Percuma untuk bermula

Pelajari Cloud & IT Cert Prep dengan tutor kecerdasan buatan — percuma

Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.

Kursus
150
Pelajaran
600

Soalan Lazim

Adakah pelajaran “ECR: Menyimpan dan Menarik Imej Bekas” percuma?

Ya — teks penuh “ECR: Menyimpan dan Menarik Imej Bekas” boleh dibaca secara percuma di web ini. Untuk berlatih secara interaktif menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7, serta membuka kunci baki kursus Cloud & IT Cert Prep, tingkat taraf kepada CoddyKit PRO. Kursus Cloud & IT Cert Prep merangkumi sejumlah 4 pelajaran.

Apakah yang akan saya pelajari dalam “ECR: Menyimpan dan Menarik Imej Bekas”?

Tolak imej Docker ke Amazon ECR, gunakan dasar kitar hayat untuk membuang imej lama, dan tarik imej dengan selamat ke dalam tugasan ECS. Anda berlatih Cloud & IT Cert Prep menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.

Adakah saya memerlukan pengalaman untuk memulakan Cloud & IT Cert Prep?

Tiada pengalaman terdahulu diperlukan. Pembelajaran Cloud & IT Cert Prep di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 3 daripada 4.

Berapa lamakah pelajaran “ECR: Menyimpan dan Menarik Imej Bekas” diambil?

Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.

Bolehkah saya menulis dan menjalankan kod dalam pelajaran Cloud & IT Cert Prep ini?

Ya. Setiap pelajaran Cloud & IT Cert Prep menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.

Semua pelajaran dalam kursus ini

  1. Kluster ECS, Takrif Tugas dan Perkhidmatan
  2. Jenis Pelancaran EC2 berbanding Fargate
  3. ECR: Menyimpan dan Menarik Imej Bekas
  4. Penskalaan Automatik dan Pengimbangan Beban Perkhidmatan ECS
← Kembali ke Cloud & IT Cert Prep