Aws-cli: CI/CD ์‹œ๋‚˜๋ฆฌ์˜ค์—์„œ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•œ AWS CLI๊ฐ€ ์žˆ๋Š” ๊ณต์‹ Docker ์ด๋ฏธ์ง€

์— ๋งŒ๋“  2018๋…„ 09์›” 09์ผ  ยท  121์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: aws/aws-cli

๋‚˜๋Š” Issue #3529์™€ #3291์„ ์ฝ๊ณ  ๊ทธ๊ฒƒ์ด '๊ทธ๋ ‡๊ฒŒ ๋ณต์žกํ•˜์ง€ ์•Š๋‹ค'๋Š” ๊ฒƒ์„ ์•”์‹œํ•˜๋Š” ์œ ์ผํ•œ ๋ฐ˜์‘๊ณผ ํ•จ๊ป˜ ๊ทธ๊ฒƒ๋“ค์ด ํ์‡„๋œ ๊ฒƒ์„ ๋ณด์•˜์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ด ์˜๊ฒฌ์€ ์Šค์Šค๋กœ ์ด ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋ฉด ๊ตฌ์‹์ด ๋  ์œ„ํ—˜์ด ์žˆ๋‹ค๋Š” ์ ๋„ ์ธ์ •ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ •ํ™•ํžˆ ๊ทธ ์ ์„ ์ œ์™ธํ•˜๊ณ , ์ €๋Š” ์ƒ์—…์  ์‚ฌ์šฉ์ž์˜ ๊ฒฝ์šฐ ๊ณต์‹ Amazon ์ด๋ฏธ์ง€๋ฅผ ๊ฐ–๋Š” ๊ฒƒ์ด "/aws- cli:latest "๋ณด๋‹ค ํ›จ์”ฌ ์šฐ์„ ์ ์ด๋ผ๋Š” ์ ์„ ์ง€์ ํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

์ œ ๊ฒฝ์šฐ์—๋Š” AWS CodeBuild๋ณด๋‹ค ํ›จ์”ฌ ์šฐ์ˆ˜ํ•˜๊ธฐ ๋•Œ๋ฌธ์— Google Cloud Build์—์„œ ์ด๊ฒƒ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

feature-request

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

@matti ๋ฐ @nscavell , ์ด ์ฃผ์ œ์— ๋Œ€ํ•œ ํ›„์† ์กฐ์น˜์— ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค. ์ด ๊ธฐ๋Šฅ ์š”์ฒญ์— ๊ด€์‹ฌ์ด ์žˆ์–ด ๊ณ„์† ์—ด์–ด ๋‘๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ๋Š” AWS CLI์˜ ๊ณต์‹ Docker ์ด๋ฏธ์ง€๋ฅผ ์ถ”์ ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ๊ด€์‹ฌ์„ ํ‘œ์‹œํ•˜๊ณ  ์šฐ์„  ์ˆœ์œ„๋ฅผ ์ •ํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋˜๋„๋ก +1ํ•˜์„ธ์š”.

๊ฐ์‚ฌ ํ•ด์š”.

๋ชจ๋“  121 ๋Œ“๊ธ€

์ €๋„ CI/CD ํ™˜๊ฒฝ์—์„œ ์‚ฌ์šฉํ•  ๊ณต์‹ aws-cli ๋„์ปค ์ด๋ฏธ์ง€๋ฅผ ์ฐพ๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์—ฌ๊ธฐ ์žˆ์Šต๋‹ˆ๋‹ค. ๋Œ€์‹  ์›๋ž˜ ํŒŒ์ดํ”„๋ผ์ธ์—์„œ ๊ณต์‹ ํŒŒ์ผ์„ ์ฐธ์กฐํ•  ์ˆ˜ ์žˆ์„ ๋•Œ aws cli๋ฅผ ํฌํ•จํ•˜๋Š” ๋„์ปค ์ด๋ฏธ์ง€๋ฅผ ๋นŒ๋“œํ•˜๊ธฐ ์œ„ํ•ด ์ด์ œ ๋‹ค๋ฅธ ํŒŒ์ดํ”„๋ผ์ธ์„ ๋งŒ๋“ค ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋˜ํ•œ ... ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋„ https://hub.docker.com/r/google/cloud-sdk๋ฅผ ์–ป์Šต๋‹ˆ๋‹ค

@matti ๋ฐ @nscavell , ์ด ์ฃผ์ œ์— ๋Œ€ํ•œ ํ›„์† ์กฐ์น˜์— ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค. ์ด ๊ธฐ๋Šฅ ์š”์ฒญ์— ๊ด€์‹ฌ์ด ์žˆ์–ด ๊ณ„์† ์—ด์–ด ๋‘๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ๋Š” AWS CLI์˜ ๊ณต์‹ Docker ์ด๋ฏธ์ง€๋ฅผ ์ถ”์ ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ๊ด€์‹ฌ์„ ํ‘œ์‹œํ•˜๊ณ  ์šฐ์„  ์ˆœ์œ„๋ฅผ ์ •ํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋˜๋„๋ก +1ํ•˜์„ธ์š”.

๊ฐ์‚ฌ ํ•ด์š”.

+1์€ ์œ ํ•ดํ•œ ๊ฒƒ์œผ๋กœ ๊ฐ„์ฃผ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค ;)

์–ด์จŒ๋“  ์ด๊ฒƒ์€ ์ด๊ฒƒ์— ๋Œ€ํ•ด ์ƒ์„ฑ ๋œ ์„ธ ๋ฒˆ์งธ (?) ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค ...

๐Ÿ‘ ๋‚ด +1 ์ถ”๊ฐ€

๋‚ด CI์— awsCLI๋งŒ ํฌํ•จํ•˜๋ ค๋ฉด ๊ณ ์œ ํ•œ ๋„์ปค ์ด๋ฏธ์ง€๋ฅผ ๋งŒ๋“ค์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋‚˜๋Š” ๊ณต์‹ ๊ฒƒ์„ ์„ ํ˜ธํ•œ๋‹ค.

+1

+1

+1

+1

+1

+1

+1

+1

+1

+1

Heres๋Š” ๋‹ค๋ฅธ ์‚ฌ๋žŒ์ด ๊ทธ ๋™์•ˆ์˜ ์ตœ์‹  ๋ฒ„์ „์„ ์ฐพ๊ณ ์— ๋Œ€ํ•œ ์„ค์น˜ ๊ฐ€์žฅ ์ตœ๊ทผ์˜ CLI์™€ ๊ณ ์‚ฐ (๊ฒŒ์‹œ๋ฌผ ์ˆ˜์ •) ์ด๋ฏธ์ง€.

@์ €์ŠคํŠธ๋„Œ์Šค ์ถฉ๋ถ„ํ•ด?

+1

+1

+1

+1

๋˜ ๋‹ค๋ฅธ ์ด์œ ๋Š” ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ๊ฐ€ ์—†๋Š” coreOS์™€ ๊ฐ™์€ OS๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ๊ด€์šฉ์ ์ธ ์‹คํ–‰ ๋ฐฉ์‹์ด ์ปจํ…Œ์ด๋„ˆ๋ฅผ ํ†ตํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋‚˜๋Š” ์ด๊ฒƒ์— ๋Œ€ํ•œ ํ•„์š”์„ฑ์ด ์˜์‹ฌ๋˜๋Š” ๊ฒƒ์— ๋†€๋ž์Šต๋‹ˆ๋‹ค. ๋ช…๋ฐฑํ•œ ๋ˆ„๋ฝ์ž…๋‹ˆ๋‹ค. ๐Ÿ‘

+1

:+1:

+1

+1

+1

+1

+1

#3291(3๊ฐœ์˜ ์ธ์šฉ๋œ ๋ฌธ์ œ ์ค‘ ๊ฐ€์žฅ ์ด๋ฅธ ๊ฒƒ)์˜ ์‹œ์ž‘์ž๋กœ์„œ, ์ด ๋ฌธ์ œ๊ฐ€ ๋งˆ์นจ๋‚ด ์ฃผ๋ชฉ์„ ๋ฐ›๊ณ  ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ฒŒ ๋˜์–ด ๊ธฐ์ฉ๋‹ˆ๋‹ค. ๋ฏธ๋ž˜์˜ ๋ชจ๋“  ์‘๋‹ต์ž์—๊ฒŒ @justnance ๊ฐ€ "๊ด€์‹ฌ์„ ๋‚˜ํƒ€๋‚ด๋ ค๋ฉด +1์„ ํ•ด์ฃผ์„ธ์š”"๋ผ๊ณ  ๋งํ•˜๋ฉด ์ฒซ ๋ฒˆ์งธ ๋Œ“๊ธ€์— ์ข‹์•„์š”๋ฅผ ์ถ”๊ฐ€ํ•œ๋‹ค๋Š” ์˜๋ฏธ์ž…๋‹ˆ๋‹ค. ์ด๋Š” GitHub์—์„œ +1ํ•˜๋Š” ์ ์ ˆํ•œ ๋ฐฉ๋ฒ•์ด๋ฏ€๋กœ ๊ด€๋ฆฌ์ž์˜ ์‚ฌ์„œํ•จ์— ์ŠคํŒธ์„ ๋ณด๋‚ด์ง€ ์•Š๋„๋ก ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. .

๋ฆฌํฌ์ง€ํ† ๋ฆฌ ์†Œ์œ ์ž์—๊ฒŒ ์•Œ๋ฆผ์„ ์œ ์ง€ํ•˜๋ ค๋ฉด +1

+1

+1 ๋ฌธ์ œ ๋ผ๊ณ  ํ•˜๋ฉด ๐Ÿ‘ ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด

@davidham - ๋ช…ํ™•ํžˆ ํ•ด ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•˜๊ณ  ์‘๋‹ตํ•ด

2์ผ ์ „์—๋„ ๋˜‘๊ฐ™์€ ๋ง์„ ํ–ˆ์ง€๋งŒ ํ— ์šฐ๋ฆฌ๋Š” ๋‹ค ๊ฐ™์€ ํŽธ์ด๋‹ค ๐Ÿ™ƒ

+1

+1

+1

+1

+1

+1

+1

+1์„ ๋ฉˆ์ถœ ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? +1ํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด ์ƒ๋‹จ์—์„œ ํ•˜์„ธ์š”.

๊ท€์ค‘ํ•œ ์—”์ง€๋‹ˆ์–ด ์‹œ๊ฐ„์„ ๋‚ญ๋น„ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ์ด ๋ฌธ์ œ๋ฅผ ๊ตฌ๋…ํ–ˆ์Šต๋‹ˆ๋‹ค...

์ €๋Š” 2๋…„ ๋„˜๊ฒŒ aws-cli ์ด๋ฏธ์ง€๋ฅผ ์œ ์ง€ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ํ•„์š”ํ•œ ๊ฒฝ์šฐ ์ž์œ ๋กญ๊ฒŒ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค(์ €๋Š” ํ•˜๋ฃจ์— ์—ฌ๋Ÿฌ ๋ฒˆ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค). (IFTT๋ฅผ ํ†ตํ•ด) ์ƒˆ ๋ฒ„์ „ ๋ฆด๋ฆฌ์Šค์— ๋Œ€ํ•œ ์—…๋ฐ์ดํŠธ๋ฅผ ์ˆ˜์‹ ํ•˜๊ณ  ์—…๋ฐ์ดํŠธ๋ฅผ ์ƒ๋‹นํžˆ ๋น ๋ฅด๊ฒŒ ํ‘ธ์‹œํ•ฉ๋‹ˆ๋‹ค. ๋‚ด ์ž์‹ ์˜ ์ด๋ฏธ์ง€๋ฅผ ์šด์˜ํ•˜๋Š” ๋ช…์„ฑ๊ณผ ์˜๊ด‘์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ (ํ•˜!) ๊ณต์‹ ์ด๋ฏธ์ง€๋ฅผ ์‚ฌ์šฉํ•˜๋„๋ก ์‚ฌ๋žŒ๋“ค์„ _๊ธฐ์˜๊ฒŒ_ ์—ฐ๊ธฐํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์˜ค๋žซ๋™์•ˆ ์ œ ์ด๋ฏธ์ง€๋ฅผ ์‚ฌ์šฉํ•œ ํ›„, ๊ณต์‹ ์ด๋ฏธ์ง€์— jq (API๊ฐ€ JSON์ด ๋ฌด๊ฒ๊ธฐ ๋•Œ๋ฌธ์—)๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์œผ๋ฉด _๋งค์šฐ_ ๋„์›€์ด ๋œ๋‹ค๊ณ  ๋ง์”€๋“œ๋ฆฌ๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ๋‹จ์ผ CI/CD ํŒŒ์ดํ”„๋ผ์ธ ๋‹จ๊ณ„์—์„œ "์ตœ์‹  ECS ์ž‘์—… ์ •์˜ ๊ฐ€์ ธ์˜ค๊ธฐ, ๋ณ€๊ฒฝ ๋ฐ ํ‘ธ์‹œ๋ฐฑ"๊ณผ ๊ฐ™์€ ์ž‘์—…์„ ๋ชจ๋‘ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ฒƒ์ด ๋งค์šฐ ํŽธ๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

๋ฌธ์ œ์— ๋Œ€ํ•œ ๋˜ ๋‹ค๋ฅธ ๋Œ€์•ˆ ์†”๋ฃจ์…˜: https://hub.docker.com/r/somedeveloper/aws-cli/

์‚ฌ์šฉ ์ด์œ :

  • ๊ฐ„๋‹จํ•˜๊ฒŒ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค.
  • ๊ณต์‹ python3.7-stretch๋ฅผ ๊ธฐ๋ณธ ์ด๋ฏธ์ง€๋กœ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
  • AWS ๊ถŒ์žฅ ์„ค์น˜ ์ „๋žต์ธ python + pip๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค .
  • ์„œ๋ฒ„๋ฆฌ์Šค ์‚ฌ์šฉ์ž๋ฅผ ์œ„ํ•œ aws-sam-cli ํฌํ•จ 8-).
  • ๊ณต๊ฐœ๋˜์–ด ์žˆ์œผ๋ฉฐ ๋กœ๊ทธ์ธ์ด ํ•„์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • CI/CD ํŒŒ์ดํ”„๋ผ์ธ์— ์ ํ•ฉ -- ๋‹ค๋ฅธ ์šฉ๋„๋กœ ์‚ฌ์šฉํ•˜์ง€ ์•Š์•˜์œผ๋ฏ€๋กœ ์ฐฌ๋ฐ˜ ์–‘๋ก ์„ ์ €์šธ์งˆํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

์—ฌ์ „ํžˆ ๊ณต์‹ ์ด๋ฏธ์ง€๋ฅผ ๊ธฐ๋Œ€ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ง€๊ธˆ ์‚ฌ๋žŒ๋“ค์„ ์ƒ๊ฐํ•ด๋ด

https://hub.docker.com/r/google/cloud-sdk/ . ์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค. AWS์™€ ๊ฐ™์€ ๊ฑฐ๋ฌผ์—๊ฒŒ ํ•˜๊ธฐ ํž˜๋“  ์ž‘์—…์ž…๋‹ˆ๋‹ค.

+1

+1์€ ์œ ํ•ดํ•œ ๊ฒƒ์œผ๋กœ ๊ฐ„์ฃผ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค ;)

์–ด์จŒ๋“  ์ด๊ฒƒ์€ ์ด๊ฒƒ์— ๋Œ€ํ•ด ์ƒ์„ฑ ๋œ ์„ธ ๋ฒˆ์งธ (?) ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค ...

๋„ท์งธ, https://github.com/aws/amazon-linux-docker-images/issues/10 ์„ ๊ณ ๋ คํ•œ๋‹ค๋ฉด

CircleCI์— ๋„ฃ๊ณ  ๋๋‚ด๋ฉด ์•ˆ๋˜๋‚˜์š”? Dockerfile ๋˜๋Š” ํŒŒ์ดํ”„๋ผ์ธ์„ ๋„์™€๋“œ๋ฆฝ๋‹ˆ๋‹ค.

๊ฐœ๋ฐœ์ž๊ฐ€ ์ด ๊ฒ‰๋ณด๊ธฐ์— ์‚ฌ์†Œํ•ด ๋ณด์ด๋Š” ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜์ง€ ๋ชปํ•˜๊ฒŒ ํ•˜๋Š” ๋‚ด๋ถ€ ์ œํ•œ ์‚ฌํ•ญ ๋ฐ/๋˜๋Š” Amazon ๋‚ด๋ถ€ ๋ฌธ์„œ ์ž‘์—…์ด ์žˆ๋Š”์ง€ ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค...

ํฌ ๋กค

"๊ณต์‹" ์ด๋ฏธ์ง€์— ์žˆ์œผ๋ฉด ์ข‹์„ ๋ช‡ ๊ฐ€์ง€ ๋ณ€ํ˜•์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์ €๋Š” ํ˜„์žฌ aws cli ๋ฐ curl(IAM ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ์—”๋“œํฌ์ธํŠธ ํ™•์ธ์šฉ)์ด ์žˆ๋Š” ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๊ฐ€์ ธ์˜ค๋ ค๊ณ  ํ•˜๊ณ  ์žˆ์œผ๋ฉฐ k8s ๋ฐฐํฌ์— ๋ฐ”๋กœ ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ๋Š” ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ฐพ๋Š” ๊ฒƒ์ด ์ •๋ง ํŽธ๋ฆฌํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๊ณต์‹ ์ด๋ฏธ์ง€๋ฅผ ์ œ๊ณตํ•˜๋Š” ๋ฐ์—๋„ ๋ณด์•ˆ์ƒ์˜ ์ด์œ ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

์ผ๋ฐ˜์ ์œผ๋กœ ์‹œ์Šคํ…œ์— ๋Œ€ํ•œ ๋งŽ์€ ์•ก์„ธ์Šค๋ฅผ ์ œ๊ณตํ•˜๋Š” CI/CD ํŒŒ์ดํ”„๋ผ์ธ๊ณผ ๊ฐ™์€ ๊ณ ๊ฐ€์น˜ ๋Œ€์ƒ์— ์‚ฌ์šฉ๋˜๋Š” ์ด๋ฏธ์ง€๋ฅผ ์œ ์ง€ ๊ด€๋ฆฌํ•˜๋Š” "์ธํ„ฐ๋„ท ์ƒ์˜ ์ž„์˜์˜ ์‚ฌ๋žŒ"์— ๋Œ€ํ•œ ์ข…์†์„ฑ์„ ์ œ๊ฑฐํ•˜์—ฌ ์œ„ํ˜‘ ๋ชจ๋ธ์„ ๋” ๋‹จ์ˆœํ•˜๊ฒŒ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

docker:18 (ํ˜„์žฌ ์•ˆ์ •์ ์ธ) ์ด๋ฏธ์ง€(https://hub.docker.com/_/docker)๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๋Š” ๊ณต์‹ aws-cli docker ์ด๋ฏธ์ง€๋ฅผ ์›ํ•ฉ๋‹ˆ๋‹ค. aws-cli-docker-18์€ ํ˜„์žฌ docker:18 ์ด๋ฏธ์ง€๋ฅผ ์‚ฌ์šฉํ•˜๋Š” CI/CD ํ™˜๊ฒฝ์—์„œ ๋„์ปค ์ด๋ฏธ์ง€๋ฅผ ๋นŒ๋“œํ•˜๊ณ  AWS ECR์— ๊ฒŒ์‹œํ•˜๊ณ  ์‹ถ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

+1

+1

์‚ฌ๋žŒ๋“ค์ด ์ž์‹ ์˜ ๋…ผํ‰์ด ๋‹น๋ฉดํ•œ ๋ฌธ์ œ์— ๊ธฐ์—ฌํ•˜์ง€ ์•Š์„ ๋•Œ ๋…ผํ‰์„ ์ž์ œํ•œ๋‹ค๋ฉด ์ข‹์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. "+1"๊ณผ ๊ฐ™์€ ๋Œ“๊ธ€์€ ๊ตฌ๋…์ž์—๊ฒŒ ์ŠคํŒธ์„ ์ œ๊ณตํ•˜๊ณ  ๋ฌธ์ œ๋ฅผ ํ•„์š” ์ด์ƒ์œผ๋กœ ๊ธธ๊ฒŒ ๋งŒ๋“ญ๋‹ˆ๋‹ค. ๋Œ€์‹ , ๋ฌธ์ œ์˜ ์ฒซ ๋ฒˆ์งธ ๋Œ“๊ธ€์— ์—„์ง€์†๊ฐ€๋ฝ์„ ์น˜์ผœ๋“ญ๋‹ˆ๋‹ค.

์‚ฌ๋žŒ๋“ค์ด ์ž์‹ ์˜ ๋…ผํ‰์ด ๋‹น๋ฉดํ•œ ๋ฌธ์ œ์— ๊ธฐ์—ฌํ•˜์ง€ ์•Š์„ ๋•Œ ๋…ผํ‰์„ ์ž์ œํ•œ๋‹ค๋ฉด ์ข‹์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. "+1"๊ณผ ๊ฐ™์€ ๋Œ“๊ธ€์€ ๊ตฌ๋…์ž์—๊ฒŒ ์ŠคํŒธ์„ ์ œ๊ณตํ•˜๊ณ  ๋ฌธ์ œ๋ฅผ ํ•„์š” ์ด์ƒ์œผ๋กœ ๊ธธ๊ฒŒ ๋งŒ๋“ญ๋‹ˆ๋‹ค. ๋Œ€์‹ , ๋ฌธ์ œ์˜ ์ฒซ ๋ฒˆ์งธ ๋Œ“๊ธ€์— ์—„์ง€์†๊ฐ€๋ฝ์„ ์น˜์ผœ๋“ญ๋‹ˆ๋‹ค.

์ด ๋ฌธ์ œ๋Š” ์ž‘๋…„ 9์›”๋ถ€ํ„ฐ ๊ณต๊ฐœ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋ถ„๋ช…ํžˆ ๊ด€์‹ฌ์ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— AWS์— ์ด ๋ฌธ์ œ๋ฅผ ๋‹ค์‹œ ๊ฒ€ํ† ํ•ด ๋‹ฌ๋ผ๊ณ  ์š”์ฒญํ•ด์•ผ ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ์–ผ๋งˆ๋‚˜ ๋งŽ์€ ๊ด€์‹ฌ์ด "์ถฉ๋ถ„ํ•œ์ง€" ๋งํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋ถ„๋ช…ํžˆ ๊ด€์‹ฌ์ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์—

๊ด€์‹ฌ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๋” ๋งŽ์€ :+1: ๋ฐ˜์‘ ์ด ์žˆ๋Š” ์—ด๋ฆฐ ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค.

https://github.com/aws/aws-cli/issues?q=is%3Aissue+is%3Aopen+sort%3Areactions-%2B1-desc

2ํ˜ธ๋Š” 2014๋…„, 3ํ˜ธ๋Š” 2015๋…„์— ์—ด๋ ธ๊ณ , ์ด๋ฒˆ ํ˜ธ๋Š” 2018๋…„ 9์›”(1๋…„ ๋ฏธ๋งŒ) ์— ์—ด๋ ธ์Šต๋‹ˆ๋‹ค.

+1000

aws-cli๊ฐ€ ์ž‘๋™ํ•˜๋„๋ก ์˜ฌ๋ฐ”๋ฅธ ์ข…์†์„ฑ์„ ์„ค์ •ํ•˜๋Š” ๋ฐ ํ•ญ์ƒ ๋กœ์ปฌ ์ปดํ“จํ„ฐ์— ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ docker ๋‚ด๋ถ€์—์„œ aws-cli๋กœ ์ „ํ™˜ํ•˜๊ธฐ๋กœ ๊ฒฐ์ •ํ–ˆ์Šต๋‹ˆ๋‹ค. docker-hub์—์„œ ๊ณต๊ฐœ์ ์œผ๋กœ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์—ฌ๋Ÿฌ ์ด๋ฏธ์ง€๋ฅผ ์ฐพ์•˜์ง€๋งŒ ๊ณต์‹์ด ์•„๋‹ˆ๊ธฐ ๋•Œ๋ฌธ์— ๊ธฐ๋ณธ์ ์œผ๋กœ ์‹ ๋ขฐํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์—…๋ฐ์ดํŠธ๋œ ๋ฒ„์ „์ด ์žˆ์„ ๋•Œ๋งˆ๋‹ค ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๋Š” ์ด๋ฏธ์ง€๋ฅผ ๊ฒ€์ƒ‰ํ•˜๊ณ  ๋‹ค์‹œ ์ฐพ์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์‚ฌ์šฉํ•˜๊ธฐ์— ์•ˆ์ „ํ•ฉ๋‹ˆ๋‹ค. AWS์—์„œ ๋„์ปค ํ—ˆ๋ธŒ๋ฅผ ํ†ตํ•ด ์•ˆ์ „ํ•œ aws-cli ๋„์ปค ์ด๋ฏธ์ง€๋ฅผ ๊ตฌ์ถ•, ์œ ์ง€ ๊ด€๋ฆฌ ๋ฐ ์ œ๊ณตํ•˜์‹ญ์‹œ์˜ค. ๋ฏธ๋ฆฌ ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค

์ปค๋ฎค๋‹ˆํ‹ฐ์—์„œ ์ œ๊ณตํ•œ aws-cli ์ด๋ฏธ์ง€์˜ ๊ฑฐ๋Œ€ํ•œ ์กฐ๊ฐํ™”๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์•ž์„œ ์–ธ๊ธ‰ํ–ˆ๋“ฏ์ด ์‚ฌ๋žŒ๋“ค์€ ๊ณต์‹์ ์œผ๋กœ Amazon์—์„œ ์œ ์ง€ ๊ด€๋ฆฌํ•˜๊ณ  ์ง€์›ํ•˜๋Š” ๊ฒƒ์„ ์„ ํ˜ธํ•ฉ๋‹ˆ๋‹ค. ๋ช‡ ๊ฐ€์ง€ ์ด์œ :

1) ์˜ค๋ž˜๋˜์ง€ ์•Š์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ปค๋ฎค๋‹ˆํ‹ฐ ์ด๋ฏธ์ง€๋Š” ๊ฒฐ๊ตญ ์˜ค๋ž˜ ๊ฐ€์ง€ ์•Š๋Š” ๊ฒƒ์œผ๋กœ ์œ ๋ช…ํ•ฉ๋‹ˆ๋‹ค.
2) ๋” ์•ˆ์ „ํ•จ -- ์ปค๋ฎค๋‹ˆํ‹ฐ ๊ตฌ์„ฑ์›์ด ์•„๋ฌด๋ฆฌ ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๋”๋ผ๋„ ๊ณต์‹์ ์œผ๋กœ Amazon์„ ๋Œ€ํ‘œํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ "๋ชจ๋“  ๋ณด์ฆ์ด ๋ฌดํšจ"์ธ ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๋Š” ๋ฆฌ์†Œ์Šค์—์„œ ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค.
3) ๊ณต์‹ ์ง€์›์€ ๋ฒ„๊ทธ, ๋ฒ„์ „ ์ถฉ๋Œ, ํ•˜์œ„ ํ˜ธํ™˜์„ฑ ๋“ฑ์˜ ๊ฒฝ์šฐ ๊ณต์‹ ์ง€์›์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.
4) AWS๋Š” ๊ธฐ๋ก ํƒœ๊ทธ๋ฅผ ํฌํ•จํ•˜์—ฌ aws cli๋ฅผ ์—…๋ฐ์ดํŠธํ•  ๋•Œ ์ด๋ฏธ์ง€๋ฅผ ์—…๋ฐ์ดํŠธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

+1

+1 ์•„๋งˆ์กด์ด ์ด๊ฒƒ์„ ์ œ๊ณตํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์€ ์ •๋ง ์œ ๊ฐ์ž…๋‹ˆ๋‹ค

๊ทธ ์ดํ›„ ๋กœ ํŽธ๋ฆฌํ•œ ๋‹ค๋ฅธ ์ด๋ฏธ์ง€๋ฅผ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค. Docker์˜ Docker๋ฅผ AWS ๋ฐ SAM CLI์™€ ๊ฒฐํ•ฉํ•˜์—ฌ ์™„๋ฒฝํ•œ ECR ํ†ตํ•ฉ์„ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค.

dind-aws-cli

+1

๊ด€๋ฆฌ๊ฐ€ ์ž˜ ๋œ ๋น„๊ณต์‹ ์ด๋ฏธ์ง€๊ฐ€ ๋งŽ์ด ์žˆ์ง€๋งŒ ์–ธ์  ๊ฐ€๋Š” "์•„, ์ด๊ฑธ ๋” ์ด์ƒ ์—…๋ฐ์ดํŠธํ•ด์•ผ ํ•˜๋Š” ์ด์œ ๊ฐ€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ. ์ด๊ฒƒ์ด Amazon์˜ ์ผ์ž…๋‹ˆ๋‹ค!"๋ผ๊ณ  ๋งํ•˜๋Š” ๊ฒƒ์„ ๋ง‰์„ ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

+1

+1

์‚ฌ๋žŒ๋“ค์ด AWS๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ž‘์—…์„ ์ž๋™ํ™”ํ•˜๋„๋ก ๋•๋Š” ๊ฒƒ๊ณผ ๊ด€๋ จํ•˜์—ฌ Amazon์€ ํฐ ์‹คํŒจ๋ฅผ ๊ฒช๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ์šฐ๋ฆฌ๊ฐ€ Amazon์„ ๋– ๋‚˜๋ ค๊ณ  ์ƒ๊ฐํ•˜๋Š” ์ด์œ  ์ค‘ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค.

์ด๊ฒƒ์ด ์•„์ง ๋กœ๋“œ๋งต์— ์žˆ๋Š”์ง€ ์—ฌ๋ถ€์— ๋Œ€ํ•œ ์œ ์ง€ ๊ด€๋ฆฌ์ž์˜ ๊ณต์‹ ์‘๋‹ต์ด ์žˆ์Šต๋‹ˆ๊นŒ? ๋‹ค๋ฅธ ๋งŽ์€ ์‚ฌ๋žŒ๋“ค๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ๋‚˜๋„ ๊ณต์‹ ์ด๋ฏธ์ง€๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์„ ์„ ํ˜ธํ•ฉ๋‹ˆ๋‹ค...

+1

AWS CLI์— ๋Œ€ํ•œ ๊ณต์‹ ์ด๋ฏธ์ง€๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ ์Šคํฌ๋ž˜์น˜ ์ปจํ…Œ์ด๋„ˆ ๋‚ด๋ถ€์— ์žˆ๋Š” ์‹คํ–‰ ํŒŒ์ผ์ด ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ฐœ์ธ์—๊ฒŒ ๋งค์šฐ ์œ ์šฉํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ€์žฅ ์ข‹์€ ๋ฐฉ๋ฒ•์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • ๊ณต์‹ Python ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์†Œ์Šค์—์„œ CLI ๋นŒ๋“œ
  • ๊ฒฐ๊ณผ AWS CLI ๋ฐ”์ด๋„ˆ๋ฆฌ๋ฅผ busybox ๋˜๋Š” ์Šคํฌ๋ž˜์น˜ ์ปจํ…Œ์ด๋„ˆ์— ๋ณต์‚ฌํ•ฉ๋‹ˆ๋‹ค.

์—ฌ๊ธฐ์„œ ์ผ์–ด๋‚˜๋Š” ๋…ผ์Ÿ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  ๋” ๋งŽ์€ ๊ฒƒ์€ ๊ณผ์ž‰ ์—”์ง€๋‹ˆ์–ด๋ง ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

AWS๋Š” ๋ชจ๋“  ECR ๋ฐ CodeDeploy ์„œ๋น„์Šค๋ฅผ ์‹œ์—ฐํ•˜๋Š” ๊ฒƒ์„ ์ข‹์•„ํ•ฉ๋‹ˆ๋‹ค. ์™œ ๊ทธ๋“ค์€ ์ž์‹ ์˜ ์ปจํ…Œ์ด๋„ˆํ™”๋œ CLI์—์„œ ๋ชจ๋“  ํ™”๋ ฅ์„ ๊ฐ€๋ฆฌํ‚ค์ง€ ์•Š์Šต๋‹ˆ๊นŒ?

ํ…Œ์ด๋ธ”์— ์žˆ๋Š” ์ œ์•ˆ์€ ์ปค๋ฎค๋‹ˆํ‹ฐ์˜ ๋ˆ„๊ตฐ๊ฐ€๊ฐ€ ์ด๋ฅผ ์œ ์ง€ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ด๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

@balibebas ์ปค๋ฎค๋‹ˆํ‹ฐ์˜ ๋ˆ„๊ตฐ๊ฐ€๊ฐ€ ์ด๋ฏธ ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์—„์ฒญ๋‚œ ์–‘์˜ ์ด๋ฏธ์ง€๊ฐ€ ์žˆ์ง€๋งŒ ์—ฌ๊ธฐ์—์„œ ์š”์ ์€ AWS์—์„œ ์ œ๊ณตํ•˜๋Š” ์ด๋ฏธ์ง€๊ฐ€ ์žˆ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋ชจ๋“  ๋น„๋ฐ€์ด ์—ด๋ฆฐ ์ƒํƒœ๋กœ CI ํ™˜๊ฒฝ์—์„œ randomguy/aws-cli:canbechangedanytime ๋ฅผ ์‹คํ–‰ํ•˜๊ณ  ์‹ถ์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

๊ทธ๋ ‡๋‹ค๋ฉด F-Droid์— ๋Œ€ํ•ด ์–ด๋–ป๊ฒŒ ๋ง์”€ํ•˜์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?

์ด ๊ณ ์–‘์ด๋งŒํผ ์ด ๋ฌธ์ œ์™€ ๊ด€๋ จ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

๋‹น์‹ ์€ ์œ ๋ฃŒ ๊ณ ๊ฐ์ฒ˜๋Ÿผ ๋“ค๋ฆฝ๋‹ˆ๋‹ค.

๊ธ€์Ž„ ์•„๋งˆ๋„ ๊ทธ๊ฒƒ์€ _I_ _am_ ๋•Œ๋ฌธ์ผ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

ํ•ฉ์ฐฝ๋‹จ์— ์„ค๊ต. ์–ด์จŒ๋“  Brew ๊ณต์‹์€ ๋” ์˜ค๋ž˜ ํŠธ๋กค๋ง๋˜์—ˆ์ง€๋งŒ ์—ฌ์ „ํžˆ ์›€์ง์ž„์ด ์—†๊ธฐ ๋•Œ๋ฌธ์— ๋” ๋‚˜์€ ๊ธฐํšŒ๋ฅผ ์–ป์—ˆ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๊ณ ์–‘์ด ์‚ฌ์ง„์€ ์•ž์„œ ์ง€์ ํ–ˆ๋“ฏ์ด ์Šคํฌ๋ž˜์น˜๋‚˜ ๋ฐ”์œ ์ƒ์ž ์ปจํ…Œ์ด๋„ˆ ์™ธ๋ถ€์— ์ผ๋ฐ˜์ ์ธ ์‚ฌ์šฉ ์‚ฌ๋ก€๊ฐ€ ์—†์„ ๋•Œ ์ฆ‰์‹œ ์—ญํšจ๊ณผ๋ฅผ ๋‚ณ์Šต๋‹ˆ๋‹ค. ๋‹น์‹ ์˜ ๋””์ž์ธ ์ œ์•ˆ์€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

๋‚˜์™€ ๋‹ค๋ฅธ ๋งŽ์€ ์‚ฌ๋žŒ๋“ค์€ ํ˜„์žฌ "busybox ์ปจํ…Œ์ด๋„ˆ"๋ฅผ ์ˆ˜ํ–‰ํ•˜์—ฌ ECR ์ธ์ฆ ์ž๊ฒฉ ์ฆ๋ช…์„ ์–ป๊ธฐ ์œ„ํ•ด ๋„์ปค๋กœ ์‹คํ–‰ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. aws๊ฐ€ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” docker things์˜ ์ˆ˜๋ฅผ ๊ฐ์•ˆํ•  ๋•Œ ๊ณต์‹ ํŒจํ‚ค์ง•์ด ์กด์žฌํ•˜์ง€ ์•Š๋Š”๋‹ค๋Š” ๊ฒƒ์€ ๋ง์ด ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์–ด์ฉŒ๋ฉด ๊ทธ๋“ค์€ ๋‹ค๋ฅธ ๊ฒƒ์— ๊ด€์‹ฌ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ;)

์ด์ œ ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์–ด ๊ธฐ์ฉ๋‹ˆ๋‹ค. +1 ๋Œ“๊ธ€๋กœ ๋Œ์•„๊ฐ€๊ธฐ:

Dockerless์˜ ๊ฒฝ์šฐ +1

@matti @balibebas ํ˜„์žฌ ์ด ๋ฌธ์ œ์˜ ๋Œ€ํ™”์—๋งŒ 64๋ช…์ด ์žˆ์œผ๋ฉฐ ๋ชจ๋“  ์‘๋‹ต์€ ์ž ์žฌ์ ์œผ๋กœ ๊ตฌ๋… ์ค‘์ธ 64๋ช… ์ด์ƒ์˜ ๋ชจ๋“  ์‚ฌ๋žŒ์—๊ฒŒ ์ „์†ก๋  ๋„์›€์ด ๋˜์ง€ ์•Š๋Š” ์ด๋ฉ”์ผ ๋ฐ ์•Œ๋ฆผ์„ ํŠธ๋ฆฌ๊ฑฐํ•ฉ๋‹ˆ๋‹ค. ์ด ๋ฉ”์‹œ์ง€๋„ ๋งˆ์ฐฌ๊ฐ€์ง€์ด๋ฉฐ ์ด์— ๋Œ€ํ•ด ์‚ฌ๊ณผ๋“œ๋ฆฝ๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ ์ •๋ง๋กœ, ์ผ์„ ์ „๋ฌธ์ ์œผ๋กœ ์œ ์ง€ํ•˜์‹ญ์‹œ์˜ค. ๊ณ ์–‘์ด ์‚ฌ์ง„์€ ์ข‹์ง€๋งŒ ์ด ์‹ค์ด ๋ ˆ์ผ์—์„œ ๋ฉ€์–ด์งˆ์ˆ˜๋ก ๊ด€๋ฆฌ์ž๊ฐ€ ์‹ฌ๊ฐํ•˜๊ฒŒ ๋ฐ›์•„๋“ค์ด์ง€ ์•Š์„ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์•ˆํƒ€๊น๊ฒŒ๋„ ์ŠคํŒธ์€ ์ŠคํŒธ์ž…๋‹ˆ๋‹ค.

๋‚ด๊ฐ€ ๋ฐฉ๊ธˆ ํด๋ฆญํ•œ ๊ตฌ๋… ์ทจ์†Œ ๋ฒ„ํŠผ์ด ํ•˜๋Š” ์ผ์ž…๋‹ˆ๋‹ค.

๊ทธ๊ฒƒ์€ ์ข‹์€ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋‚˜๋Š” ์•„๋ฌด ์กฐ์น˜๋„ ์ทจํ•˜์ง€ ์•Š๊ฑฐ๋‚˜ ์ด๊ฒƒ์ด ์œ ์ง€๋˜๊ณ  ์žˆ๋‹ค๋Š” ์‚ฌ์‹ค์— ๋†€๋ž์Šต๋‹ˆ๋‹ค(NO๋ผ๊ณ  ๋งํ•˜๋Š” ๊ฒƒ์„ ํฌํ•จ).
์–ด์จŒ๋“  ์œ„์˜ ์‚ฌ๋žŒ๋“ค์€ ๊ณต์‹ aws cli ์ด๋ฏธ์ง€์˜ ์ค‘์š”์„ฑ์„ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์ง€์ ํ–ˆ์Šต๋‹ˆ๋‹ค.
๋‚˜๋Š” ์‚ฌ๋žŒ๋“ค์ด ์ด๋ฏธ ๊ฐœ์ธ์ ์œผ๋กœ ๋˜๋Š” ๋‹ค๋ฅธ ์‚ฌ๋žŒ์ด ๋งŒ๋“  ์ด๋ฏธ์ง€/ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ์ž ๊ฒฝ๋กœ ๋“ฑ์„ ํ†ตํ•ด ์ž์‹ ์˜ ๊ฒƒ์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.
๊ฐ™์€ ๊ฒƒ์— ๋Œ€ํ•œ ๋˜ ๋‹ค๋ฅธ ์˜ˆ์ œ ์Šคํฌ๋ฆฝํŠธ

๊ทธ๋Ÿฌ๋‚˜ ๊ฐ€์žฅ ๊ฐ„๋‹จํ•˜๊ณ  ํ”ผํ•  ์ˆ˜ ์—†๋Š” ๋ฌธ์ œ๋Š” ๊ทธ๋Œ€๋กœ์ž…๋‹ˆ๋‹ค.

  • ๊ฐœ๋ฐœ์ž๊ฐ€ ์ž์ฒด์ ์œผ๋กœ ํ†ตํ•ฉํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ ํ™‰ํ•‘๋˜๋Š” ์ข…์†์„ฑ ๋ฐ ๋ถˆํ™•์‹ค์„ฑ์˜ ๋์—†๋Š” ๋ชฉ๋ก์ž…๋‹ˆ๋‹ค. ์‚ฌ๋žŒ๋“ค์ด CI/CD ๋˜๋Š” ๊ฒฉ๋ฆฌ๋˜๊ณ  ๊นจ๋—ํ•œ ์ƒํƒœ์˜ ์œ ์‚ฌํ•œ ์ž‘์—…์˜ ๋ชฉ์ ์„ ๋ฌดํšจํ™”ํ•˜๋Š” ํ™˜๊ฒฝ ์˜ค์—ผ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•ด ํ•œ ๊ฐ€์ง€๋ฅผ ์„ค์น˜ํ•œ ๋‹ค์Œ ๋‹ค๋ฅธ ๊ฒƒ์„ ์„ค์น˜ํ•˜๊ธฐ ์‹œ์ž‘ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๊ฒฐ๊ตญ ์ €์žฅ์†Œ์—์„œ ๋” ๋งŽ์€ ๋ฌธ์ œ๋กœ ์ด์–ด์งˆ ๊ฒƒ์ž…๋‹ˆ๋‹ค.
  • ๊ท€ํ•˜์˜ ์ž‘์—…์— ๋Œ€ํ•ด ๋‹ค๋ฅธ ์‚ฌ๋žŒ์˜ ๋„์ปค ์ด๋ฏธ์ง€๋ฅผ ๊ตฌํ˜„ํ•˜๊ณ  ์ถ”์ ํ•˜๋Š” ๊ฒƒ์„ ์‹ ๋ขฐํ•˜๊ธฐ ์–ด๋ ต์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์ƒˆ๋กœ์šด awscli ์ด๋ฏธ์ง€์— ๋Œ€ํ•œ ๋„์ปค ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ์— ๋‹ค๋ฅธ ํŒŒ์ดํ”„๋ผ์ธ ๋ฐ ํ•ญ๋ชฉ ์ถ”๊ฐ€, ์ฆ‰ ์œ ์ง€ํ•ด์•ผ ํ•  ๋˜ ๋‹ค๋ฅธ ์ €์žฅ์†Œ๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค.
  • CI/CD์—์„œ ๋‚ด๊ฐ€ ์„ ํ˜ธ ํ•˜๋Š” ๊ฒƒ์€ ์ด๋ฏธ์ง€(๋‚ด๋ถ€ ๋˜๋Š” ๊ณต์‹)๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ๊ฐ€๋Šฅํ•œ ํ•œ ๋งŽ์€ ๊ฒƒ์„ ์ถ”๊ฐ€ํ•˜๊ธฐ ์œ„ํ•ด ์Šคํฌ๋ฆฝํŒ… ๋ผ์ธ์„ ํ”ผํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
  • ๊ณต์‹ ์ด๋ฏธ์ง€๋กœ์„œ์˜ ๋นŒ๋“œ ๋ฐ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋ฌธ์ œ๋Š” ์†Œ์Šค ๋ฆด๋ฆฌ์Šค ์ž์ฒด์—์„œ ์ฆ‰์‹œ ๋นŒ๋“œํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ์ž ๋ฐ ๊ทธ๋ ‡์ง€ ์•Š์€ ๊ฒฝ์šฐ ๋™์  ์ข…์†์„ฑ์ด ์ ์Šต๋‹ˆ๋‹ค.

๋˜ ๋‹ค๋ฅธ
=> ๋ชจ๋‘๊ฐ€ ๊ฒฐ๊ตญ ์ž์‹ ์˜ ๊ฒƒ์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

์—ฌ๊ธฐ์—์„œ๋„ ๋งˆ์ฐฌ๊ฐ€์ง€์ž…๋‹ˆ๋‹ค. ํ˜„์žฌ ์ž์ฒด ๋นŒ๋“œ ์ด๋ฏธ์ง€๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์ง€๋งŒ ์•„๋ž˜์˜ ๊ณต์‹ ์ด๋ฏธ์ง€๋ฅผ ์„ ํ˜ธํ•ฉ๋‹ˆ๋‹ค.

๋„ค์ž„์ŠคํŽ˜์ด์Šค. ์ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋‹ค๋ฅธ ๋„์ปค ์ด๋ฏธ์ง€๋ฅผ ๋นŒ๋“œํ•˜๊ณ  ์ž๊ฒฉ ์ฆ๋ช…์„ ์–ป๊ธฐ ์œ„ํ•ด awscli๊ฐ€ ํ•„์š”ํ•œ ECR๋กœ ํ‘ธ์‹œํ•ฉ๋‹ˆ๋‹ค.

FROM docker:18.06

RUN apk update && \
apk -Uuv add python py-pip && \
pip install awscli && \
apk --purge -v del py-pip && \
rm /var/cache/apk/*

์ด๊ฒƒ์„ awscli ๋นŒ๋“œ ํŒŒ์ดํ”„๋ผ์ธ์— ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์€ ๊ทธ๋ฆฌ ํฐ ๋ฌธ์ œ๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค... :)

--

@mikesir87 ์ œ์•ˆ์— ๋”ฐ๋ผ Dockerfile์„ ์—…๋ฐ์ดํŠธํ–ˆ์Šต๋‹ˆ๋‹ค. (๊ทธ๊ฒƒ์ด ๊ฐ€์žฅ ์ž‘์€ ์ด๋ฏธ์ง€๋ฅผ ์–ป๊ธฐ ์œ„ํ•ด ์ปค๋ฎค๋‹ˆํ‹ฐ์˜ ๊ธฐ์—ฌ๊ฐ€ ์žˆ๋Š” ํ‘œ์ค€ ์ด๋ฏธ์ง€๋ฅผ ๊ฐ–๋Š” ๋˜ ๋‹ค๋ฅธ ์ด์œ ์ž…๋‹ˆ๋‹ค)

๋ชจ๋“  ์‚ฌ๋žŒ์—๊ฒŒ ์ŠคํŒธ์„ ๋ณด๋‚ด์„œ ์ฃ„์†กํ•˜์ง€๋งŒ (๋‹ค๋ฅธ ์‚ฌ๋žŒ์ด @jens-meiss์˜ ์Šค๋‹ˆํŽซ์„ ์‚ฌ์šฉํ•˜๋ ค๋Š” ๊ฒฝ์šฐ๋ฅผ ๋Œ€๋น„ํ•˜์—ฌ) ์„ธ ๊ฐœ์˜ RUN ๋ฌธ์„ ๋‹จ์ผ ๋ฌธ์œผ๋กœ ์—ฐ๊ฒฐํ•˜๋Š” ๊ฒƒ์„ _์ •๋ง__ ๊ณ ๋ คํ•ด์•ผ ํ•œ๋‹ค๋Š” ์ ์„ ์ง€์ ํ•˜๊ณ  ์‹ถ์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ์ตœ์ข… ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์•ก์„ธ์Šคํ•  ์ˆ˜ ์—†๋”๋ผ๋„ py-pip ๊ณผ ์ค‘๊ฐ„ ๊ณ„์ธต์˜ apk ์บ์‹œ๋ฅผ ๊ณ„์† ๋ฐฐ์†กํ•ฉ๋‹ˆ๋‹ค.

๋˜ ๋‹ค๋ฅธ ๋ฉ”๋ชจ์—์„œ ์ฃผ์„์€ ๋˜ ๋‹ค๋ฅธ ์œ ํšจํ•œ ์‚ฌ์šฉ ์‚ฌ๋ก€๋ฅผ ์ œ์‹œํ•ฉ๋‹ˆ๋‹ค... aws-cli๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ด๋ฏธ์ง€๋ฅผ ํ‘ธ์‹œํ•˜๊ธฐ ์œ„ํ•œ ECR์˜ ์ž๊ฒฉ ์ฆ๋ช…์„ ์–ป๋Š” ๊ฒฝ์šฐ์—๋งŒ ํ•ด๋‹น๋ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์ด๋ฏธ์ง€์— ECR ์ž๊ฒฉ ์ฆ๋ช… ๋„์šฐ๋ฏธ ๋ฅผ ํŒจํ‚ค์ง•ํ•ด์•ผ ํ•˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋“ค๋ฆฝ๋‹ˆ๋‹ค. ์ „์ฒด aws-cli ์—†์ด๋„ ์ด๋ฏธ์ง€๋ฅผ ์‰ฝ๊ฒŒ ๋นŒ๋“œํ•˜๊ณ  ํ‘ธ์‹œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์•ˆ๋…•ํ•˜์„ธ์š” ์—ฌ๋Ÿฌ๋ถ„, ์—ฌ๊ธฐ ๊ด€๋ฆฌ์ž์ž…๋‹ˆ๋‹ค. ๋ช…ํ™•ํžˆ ํ•˜๊ณ  ์‹ถ์—ˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ์ผ์–ด๋‚˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ์ด๊ฒƒ์„ ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

๋” ๋งŽ์€ ์œ ํ˜•์˜ ๋ฆด๋ฆฌ์Šค ์•„ํ‹ฐํŒฉํŠธ๋ฅผ ๋นŒ๋“œ/ํ…Œ์ŠคํŠธ/์ง€์›ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋” ๋‚˜์€ ๋ฆด๋ฆฌ์Šค ์ธํ”„๋ผ๋ฅผ ๋‚ด๋ถ€์ ์œผ๋กœ ๊ตฌ์ถ•ํ•˜๋Š” ์ค‘์ž…๋‹ˆ๋‹ค. ํŠนํžˆ cli v2์— ๋Œ€ํ•ด ๋” ๋งŽ์€ ๋ฆด๋ฆฌ์Šค ์•„ํ‹ฐํŒฉํŠธ๋ฅผ ์ถœ์‹œํ•  ์˜ˆ์ •์ด๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

ํ˜„์žฌ ์ •ํ™•ํ•œ ์ผ์ •์€ ์—†์ง€๋งŒ ์ง„ํ–‰ ์ค‘์ž…๋‹ˆ๋‹ค.

amazon devs ๋ฐ ๋‹ค๋ฅธ ๋งŽ์€ ์‚ฌ๋žŒ๋“ค์— ๋”ฐ๋ฅด๋ฉด ํ•˜๊ธฐ ์‰ฌ์šด ์ผ์ด์ง€๋งŒ 2๋…„์ด ์ง€๋‚œ ํ›„์—๋„ ์—ฌ์ „ํžˆ ๋Œ€๊ธฐ ์ค‘์ด๋ฉฐ ETA๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค ๐Ÿ˜‚

+1

๋‚ด๋ถ€ ์ถœ์‹œ ์ธํ”„๋ผ(2019๋…„ 4๋ถ„๊ธฐ)
๋ฒ•๋ฌดํŒ€ ํ‰๊ฐ€(2020๋…„ 1๋ถ„๊ธฐ)
aws/cli-dev-test์˜ ๊ณต๊ฐœ ๋ฒ ํƒ€(2020๋…„ 2๋ถ„๊ธฐ)
์ตœ์ข… ๋ฆด๋ฆฌ์Šค(2020๋…„ 3๋ถ„๊ธฐ)

์ด ๋‚™๊ด€์ ์ธ ์ผ์ •์—์„œ 10๊ฐœ์›” ์ด๋‚ด์— ์›ํ•˜๋Š” ๊ฒƒ์„ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๐Ÿฅ‡

์ œํ”„ ๋ฐ” ๋ธ”๋กœ๊ทธ ํฌ์ŠคํŠธ๋ฅผ ๊ธฐ๋‹ค๋ฆฝ๋‹ˆ๋‹ค

์  ์žฅ ๊ธฐ๋‹ค๋ฆฌ๊ณ  ์žˆ์–ด.

์ตœ์†Œํ•œ ๊ณต์‹ ๋ฐœํ‘œ๋‚˜ ์•ฝ์†์„ ๋ฐ›์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ์•„๋งˆ๋„ ๋Œ€์ƒ ๋ฆด๋ฆฌ์Šค ?

@bhmckendrick ์€ ์ด ๋Œ“๊ธ€์ด ๋‹น์‹ ๋ณด๋‹ค ํ›จ์”ฌ ๋†’์ง€ ์•Š์€ ๊ฒƒ๊ณผ ์ •ํ™•ํžˆ ์ผ์น˜ํ•˜์ง€ ์•Š๋Š” ์•ฝ์†์ž…๋‹ˆ๊นŒ?

https://github.com/aws/aws-cli/issues/3553#issuecomment -519280276

1๋…„์ด ๋„˜์—ˆ๋Š”๋ฐ ์—…๋ฐ์ดํŠธ๊ฐ€ ์—†์Šต๋‹ˆ๊นŒ? ์˜์ƒ?

@jamesls ๋‹˜ , ๊ณต์œ ํ•  ๋‚ด์šฉ์ด ์žˆ์„ ๋•Œ๊นŒ์ง€ ์ด ์Šค๋ ˆ๋“œ๋ฅผ ์ž ๊ทธ๋Š” ๊ฒƒ์„ ๊ณ ๋ คํ•˜์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?

์ฝ๊ธฐ๋ฅผ ์™„์ „ํžˆ ๊บผ๋ฆฌ๊ณ ( ํžŒํŠธ ํžŒํŠธ ) ๋Œ€์‹  70๋ช… ์ด์ƒ์˜ ๊ด€์ฐฐ์ž๋“ค์—๊ฒŒ ์ŠคํŒธ ๋ฉ”์ผ์„ ๋ณด๋‚ด ๊ทธ๋“ค์ด _๊ตฌ์ฒด์ ์œผ๋กœ_ ์งœ์ฆ๋‚˜๊ฒŒ ํ•˜๋Š” ๋ฐฉ์‹์„ ์„ ํƒํ•˜๋Š” ์‚ฌ๋žŒ๋“ค์˜ ์ˆ˜๋Š” ํ™•์‹ ํ•ฉ๋‹ˆ๋‹ค. ์ด ์Šค๋ ˆ๋“œ๋ฅผ ํŒ”๋กœ์šฐํ•˜๋Š” ๋ชจ๋“  ์‚ฌ๋žŒ๋“ค์˜ ๊ด€์‹ฌ์ด ํฌ๊ฒŒ ๊ฐ์†Œํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

๋˜ํ•œ ์ด๋Ÿฌํ•œ ์ผ์ด ์ผ์–ด๋‚˜๋„๋ก ๋…ธ๋ ฅํ•ด ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!

์ด ๋ฌธ์ œ์˜ ์›์ €์ž๋กœ์„œ(๊ธ€์Ž„์š”, ์ €๋Š” ์ด์ „์— ๋‹ซ์€ "wontfix" ํ•ญ๋ชฉ์„ ๋ณต์‚ฌ/๋ถ™์—ฌ๋„ฃ๊ธฐํ•  ๋งŒํผ ์ถฉ๋ถ„ํžˆ ์šฉ๊ฐํ–ˆ์Šต๋‹ˆ๋‹ค) ์—„์ฒญ๋‚œ +1 ์ŠคํŒธ๊ณผ ๊ณ ์–‘์ด ์‚ฌ์ง„๊ณผ์˜ ๊ฐ€๋” ์‹ธ์›€ ๋•Œ๋ฌธ์— ์ด๋ฏธ ์ด ๋ฌธ์ œ์˜ ๊ตฌ๋…์„ ์ทจ์†Œํ–ˆ์Šต๋‹ˆ๋‹ค(์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค) .

์ด ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋œ ๊ฒฝ์šฐ์—๋งŒ ์•Œ๋ฆผ์„ ๋ฐ›๋„๋ก ์•Œ๋ฆผ ์„ค์ •์„ ์กฐ์ •ํ•˜์„ธ์š”.

CI/CD๋ฅผ ์ œ์™ธํ•˜๊ณ  ์ผ๋ถ€ ๊ฐœ๋ฐœ์ž(@LongLiveCHIEF ์ฐธ์กฐ)๋Š” ๋„ํ‚น๋œ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์„ ์„ ํ˜ธํ•˜๋ฉฐ ๊ธฐ๋ณธ์ ์œผ๋กœ ์„ค์น˜ํ•˜๊ฑฐ๋‚˜ ํ›„์† ๋ฒ„์ „ ๊ด€๋ฆฌ์ž๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฒƒ์„ ์ข‹์•„ํ•˜์ง€ ์•Š๋Š”๋‹ค๋Š” ์ ์„ ์ง€์ ํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. cli ๋„๊ตฌ๊ฐ€ ํ•„์—ฐ์ ์œผ๋กœ ์˜์กดํ•˜๋Š” ๋ชจ๊ตญ์–ด.

๊ธฐ์กด ์„ค์น˜ ๋‹จ๊ณ„๋ณด๋‹ค docker pull aws-cli ๊ฒƒ์ด ๋” ์‰ฝ์Šต๋‹ˆ๋‹ค... python ๊ฐœ๋ฐœ์ž๊ฐ€ ์•„๋‹Œ ๊ฒฝ์šฐ ์‚ฌ์šฉ์ž๋ฅผ ์œ„ํ•ด ์ข‹์€ python ๋ฒ„์ „๊ณผ ํ™˜๊ฒฝ์„ ์„ค์ •ํ•˜๋Š” ์˜ค๋ฒ„ํ—ค๋“œ๊ฐ€ ์žˆ๊ฑฐ๋‚˜ ์•„๋งˆ๋„ ์‹ฌ์ง€์–ด ๊ฐ ํ”„๋กœ์ ํŠธ.

๊ฐœ๋ฐœ์ž๊ฐ€ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ชจ๋“  ๋‹ค์–‘ํ•œ ๋„๊ตฌ(๋ฃจ๋น„ ๊ธฐ๋ฐ˜ cli, ๋…ธ๋“œ ๊ธฐ๋ฐ˜ cli)๋กœ ํ™•์žฅํ•˜๊ณ  ์ฝ”๋”ฉํ•˜์ง€ ์•Š์€ ์–ธ์–ด์— ๋Œ€ํ•œ ํ™˜๊ฒฝ ์„ค์ •์„ ๋ฐฐ์›Œ์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋‚ด๊ฐ€ ์—ฌ๊ธฐ์„œ ๋งํ•˜๊ณ  ์žˆ๋Š” ์š”์ ์€ ๋„์ปค ์‹คํ–‰์ด ์œ ๋น„์ฟผํ„ฐ์Šค์ด๋ฉฐ ๋ชจ๋“  ๋ชจ๊ตญ์–ด ์„ค์ •/๊ตฌ์„ฑ์„ ์ œ๊ฑฐํ•˜๊ณ  ์‚ฌ์šฉ์ž๊ฐ€ ์ž‘์—…์„ ์‰ฝ๊ฒŒ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์‚ฌ์šฉ์ž๊ฐ€ ์ž์‹ ์˜ ๋„์ปค ์ด๋ฏธ์ง€๋ฅผ ๋นŒ๋“œํ•˜๋”๋ผ๋„ ์—ฌ์ „ํžˆ ์ด๋Ÿฌํ•œ ์„ค์ • ์ž‘์—…๊ณผ ์”จ๋ฆ„ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ €๋Š” ํŒŒ์ด์ฌ์œผ๋กœ ์ฝ”๋”ฉํ•˜์ง€ ์•Š์ง€๋งŒ, ์ˆœ์ˆ˜ํ•˜๊ฒŒ ๋„๊ตฌ ๊ณต๊ธ‰์ž๊ฐ€ ๊ทธ๊ฒƒ์„ "์‚ฌ์†Œํ•œ" ๊ฒƒ์œผ๋กœ ๊ฐ„์ฃผํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋‹ค์–‘ํ•œ ๋ฒ„์ „์˜ ํŒŒ์ด์ฌ์—์„œ ๊ฐ€์ƒ ํ™˜๊ฒฝ์˜ ๋‚ด์šฉ๊ณผ ๋ชจ๋ฒ” ์‚ฌ๋ก€๋ฅผ ๋ฐฐ์šฐ์ง€ ์•Š์„ ์ˆ˜ ์—†์—ˆ์Šต๋‹ˆ๋‹ค.

๋ชจ๋“  ๊ฐœ๋ฐœ์ž๊ฐ€ ๋„๊ตฌ๋ฅผ ๋งŒ๋“  ์‚ฌ๋žŒ๊ณผ ๋™์ผํ•œ ๋ฐฐ๊ฒฝ์„ ๊ฐ€์ง„ ๊ฒƒ์€ ์•„๋‹ˆ๋ฉฐ ๋„์ปค ์ด๋ฏธ์ง€๋ฅผ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ์€ ์กด๊ฒฝ์˜ ํ‘œ์‹œ์ž…๋‹ˆ๋‹ค. ๋„๊ตฌ ์ œ๊ณต์—…์ฒด๋Š” ๋ชจ๊ตญ์–ด ํŠน์ • ํ™˜๊ฒฝ ๋ฌธ์ œ์˜ ์˜ค๋ฒ„ํ—ค๋“œ๋ฅผ ๋งค์šฐ ๋น ๋ฅด๊ณ  ์‰ฝ๊ฒŒ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ์ฑ„ํƒ์ž๋Š” ์ œํ’ˆ ๊ฐœ๋ฐœ์˜ ๋‹ค์–‘ํ•œ ๋ผ์ดํ”„์‚ฌ์ดํด ๋‹จ๊ณ„๋ฅผ ํ†ตํ•ด ์ด ์˜ค๋ฒ„ํ—ค๋“œ๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ๋ฐ ํ›จ์”ฌ ๋” ๋งŽ์€ ์‹œ๊ฐ„์„ ์†Œ๋น„ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋ž˜๋„ ์Œ์‹.

@jamesls ์—ฌ๊ธฐ์—์„œ ์ปค๋ฎค๋‹ˆํ‹ฐ ํ”ผ๋“œ๋ฐฑ์„ ๋“ค์–ด์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ๊ณต์‹ ํ˜ธ์ŠคํŒ… ๋„์ปค ์ด๋ฏธ์ง€๋ฅผ ๊ธฐ๋‹ค๋ฆฌ๋Š” ๋™์•ˆ ์œ ์šฉํ•œ ์ค‘๊ฐ„ ๋‹จ๊ณ„๋Š” ์—ฌ๊ธฐ์— ๋ช‡ ๊ฐ€์ง€ ์ธ๊ธฐ ์žˆ๋Š” ๊ธฐ๋ณธ ๋„์ปค ์ด๋ฏธ์ง€(์˜ˆ: node, alpine, ubuntu, amazon2, python)์— ๋Œ€ํ•œ ์„ค์น˜ ๊ถŒ์žฅ ์‚ฌํ•ญ์„ ๊ฒŒ์‹œํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์šฐ๋ฆฌ์—๊ฒŒ ์ฆ‰์‹œ ๊ฐ€์น˜๊ฐ€ ์žˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ œ๊ฐ€ ๋Œ€๊ธฐ์—…์—์„œ ์ผํ•˜๋ฉด์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.
https://github.com/aws/aws-codebuild-docker-images
https://hub.docker.com/r/amazon/aws-codebuild-local

์ž˜ ๊ด€๋ฆฌ๋œ ๊ฒƒ ๊ฐ™์ง€๋Š” ์•Š์ง€๋งŒ ์—ฌ๊ธฐ์— ํ•˜๋‚˜ ๋” ์žˆ์Šต๋‹ˆ๋‹ค.

https://hub.docker.com/r/amazon/lambda-build-node10.x

๋‚˜๋Š” ์ด๊ฒƒ์„ ์•ผ์ƒ์—์„œ ๋ฐœ๊ฒฌํ–ˆ์Šต๋‹ˆ๋‹ค: https://hub.docker.com/r/amazon/aws-cli

๋“œ๋””์–ด ์˜จ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค :)

@pablosjv ๊ณต์‹ ๋˜๋Š” ์ธ์ฆ๋œ ์ด๋ฏธ์ง€๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค. ์•Œ์•„๋‘์„ธ์š”.

@anjakammer ๋„์ปค์—์„œ ๊ณต๊ฐœํ•œ ๊ณต์‹ ์ด๋ฏธ์ง€ ๋Š” ์•„๋‹ˆ์ง€๋งŒ ์•„๋งˆ์กด ๊ณต์‹ ์ด๋ฏธ์ง€ ์ธ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

๊ทธ๋“ค์ด ์•„์ง ์ด ๋ฌธ์ œ์— ๋Œ€ํ•ด ์•„๋ฌด ๋ง๋„ ํ•˜์ง€ ์•Š์•˜๊ธฐ ๋•Œ๋ฌธ์— ํž˜๋“  ์ƒ์‚ฐ ์ค€๋น„๊ฐ€ ๋˜์—ˆ๋Š”์ง€ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค.

์ด AWS ์ด๋ฏธ์ง€๊ฐ€ 98.42MB์ธ ๋ฐ˜๋ฉด ๋‹ค๋ฅธ ์ด๋ฏธ์ง€(์˜ˆ: atlassian/pipelines-awscli )๋Š” ํ›จ์”ฌ ์ž‘์€์ง€

CLI ํŒ€์›์ด ์—ฌ๊ธฐ์— ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ, AWS CLI v2์šฉ Docker ์ด๋ฏธ์ง€๋ฅผ ๊ณต์‹์ ์œผ๋กœ ์ถœ์‹œํ–ˆ์Œ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค! ๋‹ค์Œ์„ ์ฝ๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

์ด ๋ฌธ์ œ๋ฅผ ๋งˆ๋ฌด๋ฆฌํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ์ด๋ฏธ์ง€์— ๋Œ€ํ•œ ํ”ผ๋“œ๋ฐฑ์ด๋‚˜ ์งˆ๋ฌธ์ด ์žˆ๋Š” ๊ฒฝ์šฐ ์ด ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์—์„œ ๋‹ค๋ฅธ GitHub ๋ฌธ์ œ๋ฅผ ์—ฌ์‹ญ์‹œ์˜ค.

์›ํ˜ธ #3291์˜ ๊ฐœ๋ง‰์ž‘์ธ ๋ช‡ ๋…„ ์ „, ๋‚ด ๊ณ ๋ฏผ์ด ๋งˆ์นจ๋‚ด ํ™•์ธ๋˜๊ณ  ์ด์ œ ๊ณต์‹ Docker ์ด๋ฏธ์ง€๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋œ ๊ฒƒ์„ ๋ณด๋Š” ๊ธฐ์จ์œผ๋กœ ๊ฐ€์Šด์ด ๋ญ‰ํดํ•ฉ๋‹ˆ๋‹ค. ์ด ์ด๋ฏธ์ง€๋ฅผ ๋งŒ๋“œ๋Š” ๋ฐ ์‹œ๊ฐ„์ด ์–ผ๋งˆ๋‚˜ ๊ฑธ๋ ธ๋Š”์ง€์— ๋Œ€ํ•œ ํฌํŠธ ์ƒท, ๋‚˜๋Š” ์ด๊ฒƒ์ด ๋ง๋ณด๋‹ค ํ›จ์”ฌ ์‰ฌ์› ์„ ๊ฒƒ์ด๋ผ๊ณ  ํ™•์‹ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์ด๊ฒƒ์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•œ Amazon ๊ฐœ๋ฐœ์ž๋“ค์—๊ฒŒ ํฐ ๊ฐ์‚ฌ๋ฅผ ๋“œ๋ฆฝ๋‹ˆ๋‹ค. ์—ฌ๋Ÿฌ๋ถ„ ๋ชจ๋‘ ํ›Œ๋ฅญํ•œ ์ผ์„ ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๐Ÿ‘๐ŸŽ‰๐Ÿ‘

_์•Œ๋ ‰์‚ฌ, ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ์ด์ œ ๊ฐ€์กฑ์„ ๋ณด๋‚ด์ฃผ์„ธ์š”._

Dockerfile ์–ด๋””์„œ๋‚˜ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

@zerkms Aha, v2 ์ง€์ ์—์„œ ์ฐพ์•˜์Šต๋‹ˆ๋‹ค.
https://github.com/aws/aws-cli/blob/v2/docker/Dockerfile

๋‚˜๋Š” ๊ทธ๋“ค์ด ๋งˆ์นจ๋‚ด ๊ทธ๊ฒƒ์„ํ•˜๊ณ  ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•˜์ง€๋งŒ Gitlab CI https://hub.docker.com/r/amazon/aws-cli ์—์„œ ์‹คํ–‰ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

๋Œ€์‹  Gitlab์˜ AWS CLI ๋„์ปค ์ด๋ฏธ์ง€๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์œผ๋ฉฐ ์™„๋ฒฝํ•˜๊ฒŒ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ƒฅ ์‚ฌ์šฉ

image: registry.gitlab.com/gitlab-org/cloud-deploy:latest

์—…๋ฐ์ดํŠธ:

์œ„์˜ ์ด๋ฏธ์ง€๋Š” ๋” ์ด์ƒ ์‚ฌ์šฉ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋Œ€์‹  ์ƒˆ ์ด๋ฏธ์ง€๋ฅผ ์‚ฌ์šฉํ•˜์„ธ์š”.

image: registry.gitlab.com/gitlab-org/cloud-deploy/aws-base:latest

GitLab CI์—์„œ ์ด๋ฏธ์ง€๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋ฉด amazon/aws-cli ์ด๋ฏธ์ง€๊ฐ€ ์ง„์ž…์ ์„ /usr/local/bin/aws ๋กœ ์„ค์ •ํ•˜๋ฏ€๋กœ ์ˆ˜๋™์œผ๋กœ ๋นˆ ์ง„์ž…์ ์„ ์„ค์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ...

image:
    name: amazon/aws-cli
    entrypoint: [""]

@mikesir87 ์™œ ๊ทธ๋ž˜?

@pSnehanshu docker run --rm amazon/aws-cli <<command>> ์ฒ˜๋Ÿผ docker run --rm amazon/aws-cli aws <<command>> ๋Œ€์‹  aws <<command>> cli๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๊ฒƒ๊ณผ ์œ ์‚ฌํ•œ cli ์ž์ฒด์ธ ๊ฒƒ์ฒ˜๋Ÿผ ์ด๋ฏธ์ง€๋ฅผ ์‹คํ–‰ํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค docker run --rm amazon/aws-cli <<command>> . ์„ ํ˜ธํ•˜๋Š” ๊ฒƒ๊ณผ ์ด๋ฏธ์ง€๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๋ฐฉ์‹์— ๋”ฐ๋ผ ๊ฐ ์ ‘๊ทผ ๋ฐฉ์‹์—๋Š” ์žฅ๋‹จ์ ์ด ์žˆ์ง€๋งŒ ์–ด์จŒ๋“  ์ง„์ž…์ ์„ ์žฌ์ •์˜ํ•˜๋ฉด ํŠธ๋ฆญ์„ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

@lucasbasquerotto ์–ด์จŒ๋“  Gitlab์˜ ์ด๋ฏธ์ง€๋กœ ์ •์ฐฉํ–ˆ์Šต๋‹ˆ๋‹ค. ์–ด์จŒ๋“  ์„ค๋ช… ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

Alpine Linux์—์„œ AWS CLI v2๊ฐ€ ์ž‘๋™ํ•˜๋„๋ก ํ•˜๋Š” ๋ฐ ์—ฌ์ „ํžˆ ๊ด€์‹ฌ์ด ์žˆ๋Š” ์‚ฌ๋žŒ์ด ์žˆ๋Š” ๊ฒฝ์šฐ Dockerfile์˜ ์˜ˆ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

FROM alpine:3.11 AS builder

ENV GLIBC_VER=2.31-r0

# install glibc compatibility for alpine
RUN apk add --no-cache --virtual .build-deps \
        binutils \
        curl
RUN curl -sL https://alpine-pkgs.sgerrand.com/sgerrand.rsa.pub -o /etc/apk/keys/sgerrand.rsa.pub
RUN curl -sLO https://github.com/sgerrand/alpine-pkg-glibc/releases/download/${GLIBC_VER}/glibc-${GLIBC_VER}.apk
RUN curl -sLO https://github.com/sgerrand/alpine-pkg-glibc/releases/download/${GLIBC_VER}/glibc-bin-${GLIBC_VER}.apk
RUN apk add --no-cache \
        glibc-${GLIBC_VER}.apk \
        glibc-bin-${GLIBC_VER}.apk

# install AWS CLI
RUN curl -sL https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip -o awscliv2.zip
RUN unzip awscliv2.zip
RUN aws/install

FROM alpine:3.11
MAINTAINER Barry Lagerweij
RUN apk --update --no-cache --virtual .build-deps add \
    groff \
    && rm -rf /var/cache/apk/*
COPY --from=builder /usr/local/aws-cli/ /usr/local/aws-cli/
COPY --from=builder /usr/local/bin/ /usr/local/bin/
COPY --from=builder /usr/lib/ /usr/lib/
COPY --from=builder /lib64 /lib64
COPY --from=builder /usr/glibc-compat/ /usr/glibc-compat/
COPY --from=builder /lib/ld-linux-x86-64.so.2 /lib/

๋ฌธ์ œ๋Š” AWS CLI v2๋Š” GLIBC๋ฅผ ์‚ฌ์šฉํ•˜์ง€๋งŒ Alpine Linux๋Š” GLIBC ์ง€์›์ด ์ œํ•œ์ ์ด๋ผ๋Š” ์ ์ž…๋‹ˆ๋‹ค(๊ฒฝ๋Ÿ‰ ๋Œ€์•ˆ์ธ 'musl' ์‚ฌ์šฉ). ์œ„์˜ Dockerfile์€ ๋ˆ„๋ฝ๋œ glibc ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์„ค์น˜ํ•˜๊ณ  ๋‹ค๋‹จ๊ณ„ Dockerfile์„ ์‚ฌ์šฉํ•˜์—ฌ ์ตœ์ข… ์ด๋ฏธ์ง€๋ฅผ ์ž‘๊ฒŒ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค. ์•ฝ๊ฐ„์˜ ๋…ธ๋ ฅ์œผ๋กœ /usr/lib์—์„œ ์‹ค์ œ๋กœ ํ•„์š”ํ•œ ํŒŒ์ผ๋งŒ ํฌํ•จํ•˜์—ฌ ์ด๋ฏธ์ง€ ํฌ๊ธฐ๋ฅผ ํ›จ์”ฌ ๋” ์ค„์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ช‡ ๊ฐ€์ง€ ๋ฆฌํŒฉํ† ๋ง์„ ์ˆ˜ํ–‰ํ•œ ํ›„ ์ด๋ฏธ์ง€ ํฌ๊ธฐ๋ฅผ ๋” ์ค„์ผ ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

FROM alpine:3.11

ENV GLIBC_VER=2.31-r0

# install glibc compatibility for alpine
RUN apk --no-cache add \
        binutils \
        curl \
    && curl -sL https://alpine-pkgs.sgerrand.com/sgerrand.rsa.pub -o /etc/apk/keys/sgerrand.rsa.pub \
    && curl -sLO https://github.com/sgerrand/alpine-pkg-glibc/releases/download/${GLIBC_VER}/glibc-${GLIBC_VER}.apk \
    && curl -sLO https://github.com/sgerrand/alpine-pkg-glibc/releases/download/${GLIBC_VER}/glibc-bin-${GLIBC_VER}.apk \
    && apk add --no-cache \
        glibc-${GLIBC_VER}.apk \
        glibc-bin-${GLIBC_VER}.apk \
    && curl -sL https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip -o awscliv2.zip \
    && unzip awscliv2.zip \
    && aws/install \
    && rm -rf \
        awscliv2.zip \
        aws \
        /usr/local/aws-cli/v2/*/dist/aws_completer \
        /usr/local/aws-cli/v2/*/dist/awscli/data/ac.index \
        /usr/local/aws-cli/v2/*/dist/awscli/examples \
    && apk --no-cache del \
        binutils \
        curl \
    && rm glibc-${GLIBC_VER}.apk \
    && rm glibc-bin-${GLIBC_VER}.apk \
    && rm -rf /var/cache/apk/*

์ž๋™ ์™„์„ฑ ์ƒ‰์ธ ๋ฐ ์˜ˆ์ œ ํŒŒ์ผ์ด ์ œ๊ฑฐ๋˜๊ณ  'groff'๋„ ์ œ๊ฑฐ๋ฉ๋‹ˆ๋‹ค(์‚ฌ๋žŒ๋“ค์ด Docker ์ด๋ฏธ์ง€์—์„œ ๋„์›€๋ง ํŽ˜์ด์ง€๊ฐ€ ํ•„์š”ํ•˜์ง€ ์•Š๋‹ค๊ณ  ๊ฐ€์ •ํ•จ)

์ด๊ฒƒ์€ ๋งค์šฐ ๊ฐ„๋‹จํ•ฉ๋‹ˆ๋‹ค. https://github.com/flaccid/docker-awscli/blob/master/Dockerfile ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜์ง€๋งŒ ์ด๋ฏธ์ง€์— ๋‹ค๋ฅธ ๊ฒƒ์ด ํ•„์š”ํ•œ ๊ฒฝ์šฐ(์œ ํšจํ•œ ์‚ฌ์šฉ ์‚ฌ๋ก€) github ๋ฌธ์ œ๋ฅผ ํ†ตํ•ด ์•Œ๋ ค์ฃผ์‹ญ์‹œ์˜ค.

์ด๊ฒƒ์€ ๋งค์šฐ ๊ฐ„๋‹จํ•ฉ๋‹ˆ๋‹ค. https://github.com/flaccid/docker-awscli/blob/master/Dockerfile ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜์ง€๋งŒ ์ด๋ฏธ์ง€์— ๋‹ค๋ฅธ ๊ฒƒ์ด ํ•„์š”ํ•œ ๊ฒฝ์šฐ(์œ ํšจํ•œ ์‚ฌ์šฉ ์‚ฌ๋ก€) github ๋ฌธ์ œ๋ฅผ ํ†ตํ•ด ์•Œ๋ ค์ฃผ์‹ญ์‹œ์˜ค.

์œ„์˜ APK๋Š” v2 CLI๊ฐ€ ์•„๋‹Œ AWS-CLI 1.18 ๊ธฐ๋ฐ˜์ž…๋‹ˆ๋‹ค.

Amazon์ด CLI ๋ฒ„์ „ 1๋กœ ์ด๋ฏธ์ง€ ์ƒ์„ฑ์„ ๊ณ ๋ คํ•  ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ์Šต๋‹ˆ๊นŒ?

@keeganwitt ํ•ด๋‹น ์š”์ฒญ์— ๋Œ€ํ•œ ์ƒˆ ๋ฌธ์ œ๋ฅผ ์—ด์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. :+1:

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰