๊ด€๋ฆฌ ๋ฉ”๋‰ด

Hey Tech

[AWS ECR] Docker Push EOF ์—๋Ÿฌ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ• ๋ณธ๋ฌธ

SW ๊ฐœ๋ฐœ/Amazon Web Service

[AWS ECR] Docker Push EOF ์—๋Ÿฌ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•

Tony Park (ํ† ๋‹ˆ) 2024. 2. 4. 17:45
728x90
๋ฐ˜์‘ํ˜•

๐Ÿ“š ๋ชฉ์ฐจ

1. ๊ฐœ์š”
2. ์—๋Ÿฌ ๋ฉ”์‹œ์ง€
3. ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•
4. ๋ฌธ์ œ ํ•ด๊ฒฐ

๐Ÿ‘จ‍๐Ÿ’ป 1.  ๊ฐœ์š”

๋ณธ ํฌ์ŠคํŒ…์—์„œ๋Š” ๋กœ์ปฌ ํ™˜๊ฒฝ์˜ ๋„์ปค(Docker) ์ด๋ฏธ์ง€๋ฅผ AWS Elastic Container Registry (ECR) ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์— push ์‹œ ๋ฐœ์ƒํ•˜๋Š” EOF ์˜ค๋ฅ˜ ํ•ด๊ฒฐ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ๋‹ค๋ฃน๋‹ˆ๋‹ค.

 

โœ… ์ฐธ๊ณ  : Docker Image ๋นŒ๋“œ ํ›„ AWS ECR ์—…๋กœ๋“œํ•˜๋Š” ๋ฐฉ๋ฒ•

https://heytech.tistory.com/415

 

AWS Lambda์™€ Docker๋ฅผ ํ™œ์šฉํ•œ ํŒŒ์ผ ์—…๋กœ๋“œ/์ฝ๊ธฐ ์‹œ์Šคํ…œ ๊ตฌํ˜„

๐Ÿ“š ๋ชฉ์ฐจ 1. ๊ฐœ์š” 2. AWS ๊ธฐ๋ณธ ์„ธํŒ… 3. React ๊ธฐ๋ฐ˜ ์›น ํŽ˜์ด์ง€ ๊ตฌํ˜„ 4. AWS ECR ์ƒ์„ฑ 5. AWS IAM Role ์ƒ์„ฑ 6. ํ”„๋กœ์ ํŠธ ํŒŒ์ผ ๋ฐ›๊ธฐ 7. Docker ์„ค์น˜ 8. AWS CLI ์„ค์น˜ 9. Docker ์ด๋ฏธ์ง€ ๋นŒ๋“œ 10. AWS ECR ๋กœ๊ทธ์ธ 11. ๋„์ปค ์ด๋ฏธ์ง€

heytech.tistory.com

๐Ÿค– 2.  ์—๋Ÿฌ ๋ฉ”์‹œ์ง€

์•„๋ž˜์˜ (๊ทธ๋ฆผ 1)๊ณผ ๊ฐ™์ด, CLI ํ†ตํ•ด AWS ECR ๋กœ๊ทธ์ธ ๋ฐ ๋„์ปค ์ด๋ฏธ์ง€ ๋นŒ๋“œ ํƒœ๊น…๊นŒ์ง€ ์™„๋ฃŒํ•˜์˜€์Šต๋‹ˆ๋‹ค.

๊ทธ๋ฆผ 1. AWS ECR ๋กœ๊ทธ์ธ ๋ฐ ํƒœ๊น… ์™„๋ฃŒ

 

ํ—Œ๋ฐ ๋„์ปค ์ด๋ฏธ์ง€ ํ‘ธ์‹œํ•  ๋•Œ ์•„๋ž˜์˜ (๊ทธ๋ฆผ 2)์™€ ๊ฐ™์ด EOF ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•˜์˜€์Šต๋‹ˆ๋‹ค.

๊ทธ๋ฆผ 2. Docker ์ด๋ฏธ์ง€ push ์‹œ EOF ์—๋Ÿฌ ๋ฐœ์ƒ

โœ… 3.  ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•

ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์€ ์‹ฌํ”Œํ•ฉ๋‹ˆ๋‹ค.

Step 1.  ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ๊ถŒํ•œ ํŽธ์ง‘ ํŽ˜์ด์ง€ ์ ‘๊ทผ

์•„๋ž˜์˜ (๊ทธ๋ฆผ 3)๊ณผ ๊ฐ™์ด AWS ECR Repository ์ฝ˜์†” ๋‚ด '์ž‘์—…' > '๊ถŒํ•œ' ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜์—ฌ ๊ถŒํ•œ ์ˆ˜์ • ํŽ˜์ด์ง€๋กœ ์ด๋™ํ•ด ์ค๋‹ˆ๋‹ค.

๊ทธ๋ฆผ 3. AWS ECR ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ๊ถŒํ•œ ํŽธ์ง‘ ํŽ˜์ด์ง€ ์ ‘๊ทผ

Step 2.  ๋ณด์•ˆ ์ฃผ์ฒด ํŽธ์ง‘

ํ•˜๋‹จ ๊ทธ๋ฆผ 4์™€ ๊ฐ™์ด '๊ณ ๊ธ‰' ํด๋ฆญ ํ›„ '๋ชจ๋“  ์‚ฌ๋žŒ(*)'์„ ์ฒดํฌํ•ฉ๋‹ˆ๋‹ค (์˜๋ฌธ : principal:*).

๊ทธ๋ฆผ 4. ๋ณด์•ˆ ์ฃผ์ฒด ํŽธ์ง‘

Step 3.  Action ์ถ”๊ฐ€

์•„๋ž˜ ๊ทธ๋ฆผ 5์™€ ๊ฐ™์ด, "๋‹ค๋ฅธ ์˜ต์…˜ ์ถ”๊ฐ€" ์ž…๋ ฅ์ฐฝ์— ๊ฐ action ์ด๋ฆ„์„ ์ž…๋ ฅํ•˜์—ฌ ์ถ”๊ฐ€ํ•˜๊ณ  ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.

ecr:BatchGetImage
ecr:BatchCheckLayerAvailability
ecr:CompleteLayerUpload
ecr:GetDownloadUrlForLayer
ecr:InitiateLayerUpload
ecr:PutImage
ecr:UploadLayerPart

 

๊ทธ๋ฆผ 5. action ์ถ”๊ฐ€

๐ŸŒˆ 4.  ๋ฌธ์ œ ํ•ด๊ฒฐ

์œ„์˜ ECR ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ๊ถŒํ•œ ํŽธ์ง‘ ํ›„ ๋‹ค์‹œ docker ์ด๋ฏธ์ง€ push ํ•˜๋ฉด ์•„๋ž˜ ๊ทธ๋ฆผ 6๊ณผ ๊ฐ™์ด ์ •์ƒ์ ์œผ๋กœ ์—…๋กœ๋“œ๋˜๋Š” ๊ฒƒ์„ ํ™•์ธํ•˜์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋ฆผ 6. ๋„์ปค ์ด๋ฏธ์ง€ ์ •์ƒ push ์™„๋ฃŒ


๐Ÿ“Œ ์ฐธ๊ณ ํ•  ๋งŒํ•œ ํฌ์ŠคํŒ…

1. AWS ๊ธฐ๋ฐ˜ ํŒŒ์ผ ์—…๋กœ๋“œ ์›น ํŽ˜์ด์ง€ ๊ตฌ์ถ•
    1)  ํŒŒ์ผ ์—…๋กœ๋“œ ์›น ํŽ˜์ด์ง€ ๊ตฌ์ถ•: (1) React ๊ธฐ๋ฐ˜ Frontend ๊ฐœ๋ฐœ
    2)  ํŒŒ์ผ ์—…๋กœ๋“œ ์›น ํŽ˜์ด์ง€ ๊ตฌ์ถ•: (2) AWS IAM ์—ญํ•  ์ƒ์„ฑ
    3)  ํŒŒ์ผ ์—…๋กœ๋“œ ์›น ํŽ˜์ด์ง€ ๊ตฌ์ถ•: (3) AWS Lambda ์ƒ์„ฑ
    4)  ํŒŒ์ผ ์—…๋กœ๋“œ ์›น ํŽ˜์ด์ง€ ๊ตฌ์ถ•: (4) AWS S3 ์ƒ์„ฑ
    5)  ํŒŒ์ผ ์—…๋กœ๋“œ ์›น ํŽ˜์ด์ง€ ๊ตฌ์ถ•: (5) AWS API Gateway ์ƒ์„ฑ
    6)  ํŒŒ์ผ ์—…๋กœ๋“œ ์›น ํŽ˜์ด์ง€ ๊ตฌ์ถ•: (6) AWS Lambda ํ•จ์ˆ˜ ์ž‘์„ฑ
    7)  ํŒŒ์ผ ์—…๋กœ๋“œ ์›น ํŽ˜์ด์ง€ ๊ตฌ์ถ•: (7) Axios ๊ธฐ๋ฐ˜ API Call
    8)  ํŒŒ์ผ ์—…๋กœ๋“œ ์›น ํŽ˜์ด์ง€ ๊ตฌ์ถ•: (8) ํŒŒ์ผ ์—…๋กœ๋“œ ํ…Œ์ŠคํŠธ
    9) ํŒŒ์ผ ์—…๋กœ๋“œ ์›น ํŽ˜์ด์ง€ ๊ตฌ์ถ•: (9) AWS S3 ๊ธฐ๋ฐ˜ ์›น ํ˜ธ์ŠคํŒ…

2. AWS ํ™œ์šฉ ํฌ์ŠคํŒ…
    1) AWS Lambda์™€ Docker๋ฅผ ํ™œ์šฉํ•œ ํŒŒ์ผ ์—…๋กœ๋“œ/์ฝ๊ธฐ ์‹œ์Šคํ…œ ๊ตฌํ˜„
    2) AWS Lambda์—์„œ AWS S3 ํŒŒ์ผ ์ฝ์–ด์˜ค๋Š” ๋ฐฉ๋ฒ•
    3) AWS DynamoDB ๊ฐœ๋… ๋ฐ ํ…Œ์ด๋ธ” ์ƒ์„ฑ ์ ˆ์ฐจ(ํŒŒํ‹ฐ์…˜ ํ‚ค, ์ •๋ ฌ ํ‚ค ๊ฐœ๋…)
    4) AWS Lambda๋ฅผ ํ™œ์šฉํ•œ DyanamoDB ํ…Œ์ด๋ธ” ๋ฐ์ดํ„ฐ ์‚ฝ์ž…/์กฐํšŒ ๋ฐฉ๋ฒ•
    5) [AWS ECR] Docker Push EOF ์—๋Ÿฌ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•


์˜ค๋Š˜์€ ๋„์ปค ์ด๋ฏธ์ง€๋ฅผ AWS ECR์— push ์‹œ ๋ฐœ์ƒํ•˜๋Š” EOF ์˜ค๋ฅ˜ ํ•ด๊ฒฐ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ๋‹ค๋ฃจ์—ˆ์Šต๋‹ˆ๋‹ค.
ํฌ์ŠคํŒ… ๋‚ด์šฉ์— ์˜ค๋ฅ˜๊ฐ€ ์žˆ๊ฑฐ๋‚˜ ๋ณด์™„ํ•  ์ ์ด ์žˆ๋‹ค๋ฉด ์•„๋ž˜์— ๋Œ“๊ธ€ ๋‚จ๊ฒจ์ฃผ์‹œ๋ฉด ๊ฐ์‚ฌ๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค.
๊ทธ๋Ÿผ ์˜ค๋Š˜๋„ ์ฆ๊ฒ๊ณ  ๊ฑด๊ฐ•ํ•œ ํ•˜๋ฃจ ๋ณด๋‚ด์‹œ๊ธธ ๋ฐ”๋ž๋‹ˆ๋‹ค :)
๊ณ ๋ง™์Šต๋‹ˆ๋‹ค๐Ÿ˜Š

728x90
๋ฐ˜์‘ํ˜•