๐Ÿšจ AWS 128: Amazon ECR ์„ค์ • ๋ฐ Docker ์ด๋ฏธ์ง€ ํ‘ธ์‹œ

๋ฐœํ–‰: (2026๋…„ 1์›” 8์ผ ์˜คํ›„ 01:23 GMT+9)
4 min read
์›๋ฌธ: Dev.to

Source: Dev.to

Hey Cloud Builders ๐Ÿ‘‹
#100DaysOfCloud ์ฑŒ๋ฆฐ์ง€์˜ Dayโ€ฏ28์— ์˜ค์‹  ๊ฒƒ์„ ํ™˜์˜ํ•ฉ๋‹ˆ๋‹ค! ์ด๋ฒˆ ํฌ์ŠคํŠธ์—์„œ๋Š” ํ”„๋ผ์ด๋น— Amazon Elastic Container Registry (ECR) ์ €์žฅ์†Œ๋ฅผ ๋งŒ๋“ค๊ณ , ์ปค์Šคํ…€ Python ์•ฑ Docker ์ด๋ฏธ์ง€๋ฅผ ๋นŒ๋“œํ•œ ๋’ค, ํ•ด๋‹น ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ์— ํ‘ธ์‹œํ•˜๋Š” ๊ณผ์ •์„ ๋‹ค๋ฃน๋‹ˆ๋‹ค.

Overview

Amazon ECR์€ ์™„์ „ ๊ด€๋ฆฌํ˜• Docker ์ปจํ…Œ์ด๋„ˆ ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ๋กœ, ๊ฐœ๋ฐœ์ž๊ฐ€ ์ปจํ…Œ์ด๋„ˆ ์ด๋ฏธ์ง€๋ฅผ ์•ˆ์ „ํ•˜๊ฒŒ ์ €์žฅยท๊ด€๋ฆฌยท๋ฐฐํฌํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค๋‹ˆ๋‹ค. ํ”„๋ผ์ด๋น— ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์•„ํ‹ฐํŒฉํŠธ๋ฅผ ๊ณต๊ฐœ๋กœ๋ถ€ํ„ฐ ์ˆจ๊ธธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Stepโ€‘byโ€‘Step Workflow

๋‹ค์Œ ๋‹จ๊ณ„ ์ˆœ์„œ๋Œ€๋กœ ์ง„ํ–‰ํ•ฉ๋‹ˆ๋‹ค:

  1. ์ €์žฅ์†Œ ์ƒ์„ฑ
  2. Docker ์ด๋ฏธ์ง€ ๋นŒ๋“œ
  3. Docker์™€ ECR ์ธ์ฆ
  4. ์ด๋ฏธ์ง€ ํƒœ๊ทธ ์ง€์ • ๋ฐ ํ‘ธ์‹œ
  5. ์—…๋กœ๋“œ ํ™•์ธ

Create the Repository

aws ecr create-repository \
    --repository-name devops-ecr \
    --region us-east-1

Note: ECR ์ €์žฅ์†Œ๋Š” ๋ฆฌ์ „๋ณ„๋กœ ์กด์žฌํ•ฉ๋‹ˆ๋‹ค. ์ €์žฅ์†Œ๋ฅผ ๋งŒ๋“ค๊ณ ์ž ํ•˜๋Š” ๋ฆฌ์ „๊ณผ ๋™์ผํ•˜๊ฒŒ AWS CLI๊ฐ€ ์„ค์ •๋˜์–ด ์žˆ๋Š”์ง€ ํ™•์ธํ•˜์„ธ์š”.

์ƒ์„ฑ ํ›„์—๋Š” Repository URI๋ฅผ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ํ˜•ํƒœ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค:

.dkr.ecr..amazonaws.com/devops-ecr

Build the Docker Image

cd /root/pyapp          # Directory containing the Dockerfile
docker build -t pyapp .   # Build a local image named "pyapp"

Authenticate Docker with ECR

12์‹œ๊ฐ„ ์œ ํšจํ•œ ๋กœ๊ทธ์ธ ํ† ํฐ์„ ์ƒ์„ฑํ•˜๊ณ  Docker์— ํŒŒ์ดํ”„ํ•ฉ๋‹ˆ๋‹ค:

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

Tag and Push the Image

# Tag the local image with the full ECR URI
docker tag pyapp:latest .dkr.ecr..amazonaws.com/devops-ecr:latest

# Push the image to the repository
docker push .dkr.ecr..amazonaws.com/devops-ecr:latest

Verify the Upload

  1. ECR ์ฝ˜์†”์„ ์—ฝ๋‹ˆ๋‹ค.
  2. devops-ecr ์ €์žฅ์†Œ๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.
  3. latest ํƒœ๊ทธ๊ฐ€ ๋ถ™์€ ์ด๋ฏธ์ง€๊ฐ€ ํ‘œ์‹œ๋˜๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

๋‹ค๋ฅธ ๋จธ์‹ ์—์„œ ์ด๋ฏธ์ง€๋ฅผ ํ’€๋งํ•ด ๋ณด๋Š” ๊ฒƒ๋„ ์ข‹์Šต๋‹ˆ๋‹ค(์ธ์ฆ ํ›„):

docker pull .dkr.ecr..amazonaws.com/devops-ecr:latest

Common Issues & Tips

IssueResolution
Incorrect region์ €์žฅ์†Œ URI๊ฐ€ CLI์— ์„ค์ •๋œ ๋ฆฌ์ „๊ณผ ์ผ์น˜ํ•˜๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.
Access deniedIAM ์‚ฌ์šฉ์ž์—๊ฒŒ AmazonEC2ContainerRegistryFullAccess ์ •์ฑ…์ด ๋ถ€์—ฌ๋˜์–ด ์žˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.
Missing tagํ‘ธ์‹œํ•˜๊ธฐ ์ „์— ๋กœ์ปฌ ์ด๋ฏธ์ง€์— ์ „์ฒด ECR URI๋ฅผ ์‚ฌ์šฉํ•ด ํƒœ๊ทธ๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.
Login expiryDocker ๋กœ๊ทธ์ธ ์„ธ์…˜์€ 12์‹œ๊ฐ„ ํ›„ ๋งŒ๋ฃŒ๋ฉ๋‹ˆ๋‹ค. ํ•„์š” ์‹œ ๋กœ๊ทธ์ธ ๋ช…๋ น์„ ๋‹ค์‹œ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

Next Steps

์ด๋ฏธ์ง€๊ฐ€ ECR์— ์ €์žฅ๋˜๋ฉด ECS, EKS, Lambda ๋“ฑ ์„œ๋น„์Šค์— ๋ฐฐํฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. CI/CD ํŒŒ์ดํ”„๋ผ์ธ์„ ๊ตฌ์ถ•ํ•ด ๋นŒ๋“œยทํ‘ธ์‹œ ๊ณผ์ •์„ ์ž๋™ํ™”ํ•˜๋Š” ๊ฒƒ์ด ์ž์—ฐ์Šค๋Ÿฌ์šด ๋‹ค์Œ ๋‹จ๊ณ„์ž…๋‹ˆ๋‹ค.

Resources

  • KodeKloud Engineer โ€“ Practice Labs โ€“ ์‹ค์ œ AWS ํ™˜๊ฒฝ์—์„œ ์ด ์ž‘์—…๋“ค์„ ์ง์ ‘ ํ•ด๋ณด์„ธ์š”.
  • LinkedIn: Hritik Raj
  • GitHub: 100 Days of Cloud (โญ ์—ฌ์ •์„ ์ง€์›ํ•ด ์ฃผ์„ธ์š”)
Back to Blog

๊ด€๋ จ ๊ธ€

๋” ๋ณด๊ธฐ ยป

๐Ÿš€ AWS์—์„œ ๋ฉ€ํ‹ฐ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ CI/CD (ํ”„๋กœ๋•์…˜ ์Šคํƒ€์ผ)

ํ”„๋กœ์ ํŠธ ๋ชฉํ‘œ - ๊ฐœ๋ฐœ์ž๋Š” ์ฝ”๋“œ๋ฅผ GitHub์— ํ‘ธ์‹œํ•œ๋‹ค. - GitHub Actions๊ฐ€ ์ž๋™์œผ๋กœ: - ์ฝ”๋“œ ํ…Œ์ŠคํŠธ - Docker ์ด๋ฏธ์ง€ ๋นŒ๋“œ - ์ด๋ฏธ์ง€๋ฅผ AWS ECR์— ํ‘ธ์‹œ - AWS์— ๋ฐฐํฌ

AWS EC2 ์ธ์Šคํ„ด์Šค ์‹œ์ž‘

์†Œ๊ฐœ ์ด ๊ฐ€์ด๋“œ๋Š” AWS EC2 ์ธ์Šคํ„ด์Šค๋ฅผ ์‹œ์ž‘ํ•˜๊ณ  Docker๋ฅผ ์„ค์น˜ํ•˜๋ฉฐ Docker ์ปจํ…Œ์ด๋„ˆ ์•ˆ์—์„œ NGINX๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๊ณผ์ •์„ ๋‹จ๊ณ„๋ณ„๋กœ ์•ˆ๋‚ดํ•ฉ๋‹ˆ๋‹ค. ๋๊นŒ์ง€ ์ง„ํ–‰ํ•˜๋ฉด โ€ฆ

ํŠœํ† ๋ฆฌ์–ผ ์ง€์˜ฅ์„ ๊ทธ๋งŒ๋‘์„ธ์š”: ๊ถ๊ทน์˜ ๋ฌด๋ฃŒ DevOps ํ•™์Šต ๊ฒฝ๋กœ (์ œ๋กœ์—์„œ ํ”„๋กœ๋•์…˜๊นŒ์ง€) ๐Ÿš€

!Stop Tutorial Hell ์ปค๋ฒ„ ์ด๋ฏธ์ง€: ๊ถ๊ทน์˜ ๋ฌด๋ฃŒ DevOps ํ•™์Šต ๊ฒฝ๋กœ Zero to Production ๊ตฌ์ถ• ๐Ÿš€https://media2.dev.to/dynamic/image/width=1000,height=4...

AWS ELASTIC BEANSTALK ๋ฐฐํฌ ๋ฐฉ๋ฒ•

๊ฐœ์š”: AWS Elastic Beanstalk๋Š” ๊ด€๋ฆฌํ˜• ํด๋ผ์šฐ๋“œ ์„œ๋น„์Šค๋กœ, ๊ธฐ๋ณธ ์ธํ”„๋ผ์ŠคํŠธ๋Ÿญ์ฒ˜์— ๋Œ€ํ•ด ์‹ ๊ฒฝ ์“ฐ์ง€ ์•Š๊ณ  ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋ฐฐํฌํ•˜๊ณ  ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค๋‹ˆ๋‹ค.