[AWS] ECR: pull ๋ฐฉ์‹ gitops ์ ์šฉ

Build์™€ Deploy์˜ ์ฑ…์ž„์„ ๋ถ„๋ฆฌํ• ์ง€ ๋ง์ง€๋Š” ๋ณ„๊ฑฐ ์•„๋‹Œ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ด์ง€๋งŒ Devops์™€ ๋ณด์•ˆ ๊ด€์ ์—์„œ๋Š” ๊ฝค ๊นŠ์ด์žˆ๊ฒŒ ๋‹ค๋ค„์ง€๋Š” ๊ฒƒ ๊ฐ™๋‹ค.

k8s์—์„œ ํ”ํžˆ ๋งํ•˜๋Š” pull ๋ฐฉ์‹์˜ gitops์—์„œ๋Š” build์™€ deploy๋ฅผ ์•„์˜ˆ ๋ถ„๋ฆฌํ•ด์„œ ๊ด€๋ฆฌํ•˜๋Š” ๊ฒƒ์„ ๊ถŒ์žฅํ•˜๋Š” ๋ชจ์–‘์ƒˆ๋‹ค. Build ์ฑ…์ž„์ž๊ฐ€ ๋นŒ๋“œ๋ฅผ ์ˆ˜ํ–‰ํ•ด์„œ ์ด๋ฏธ์ง€ ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ์— ์ด๋ฏธ์ง€๋ฅผ pushํ•˜๋ฉด, Deploy ์ฑ…์ž„์ž๊ฐ€ ์ด๋ฏธ์ง€ push๋ฅผ ๊ฐ์ง€ํ•˜๊ณ  ๋ฐฐํฌ๋ฅผ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

์ž์„ธํ•œ ๋‚ด์šฉ์€ ๋ณ„๋„ ํฌ์ŠคํŠธ๋ฅผ ์ฐธ์กฐํ•œ๋‹ค.
https://blog.naver.com/sssang97/223122991133

AWS์—์„œ๋„ ์›ํ•œ๋‹ค๋ฉด ์ด๋Ÿฌํ•œ ์ „๋žต์„ ์ทจํ•  ์ˆ˜ ์žˆ๋‹ค.
Cloudwatch Event๋งŒ ์‚ฌ์šฉํ•ด๋„ ์–ด๋ ต์ง€ ์•Š๊ฒŒ ์›Œํฌํ”Œ๋กœ๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

๋จผ์ € Event ๊ทœ์น™ ์ƒ์„ฑํŽ˜์ด์ง€๋กœ ์ด๋™ํ•ด์„œ

์ด๋ฒคํŠธ ํŒจํ„ด์ด ์žˆ๋Š” ๊ทœ์น™ ์„ ํƒ


์ด๋ฒคํŠธ ํŒจํ„ด์€ ๋Œ€๋žต ์œ„์™€ ๊ฐ™์€ ํ˜•ํƒœ๋กœ ๊ตฌ์„ฑํ•˜๋ฉด ๋œ๋‹ค.
์ €๋Ÿฌ๋ฉด ECR์— ์ด๋ฏธ์ง€๊ฐ€ ์„ฑ๊ณต์ ์œผ๋กœ push๋ ๋•Œ๋งˆ๋‹ค ํŠธ๋ฆฌ๊ฑฐ๋ฅผ ๊ฑธ ์ˆ˜ ์žˆ๋‹ค.
์ €๊ธฐ์„œ๋Š” ๋ ˆํฌ์ง€ํ† ๋ฆฌ ์ง€์ •์„ ํ•˜์ง€ ์•Š์•˜์ง€๋งŒ, ํŠน์ •ํ•˜๋Š” ๊ฒƒ๋„ ๊ฐ€๋Šฅํ•˜๋‹ค.


๋Œ€์ƒ์œผ๋กœ๋Š” ์›ํ•˜๋Š” ํŠธ๋ฆฌ๊ฑฐ ๋Œ€์ƒ์„ ๊ณ ๋ฅด๋ฉด ๋œ๋‹ค.
AWS์˜ CodeStack์œผ๋กœ๋งŒ ๋ฐฐํฌ๋ฅผ ์ œ์–ดํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด Code Pipeline์„, ์•„๋‹ˆ๋ฉด ๊ทธ ์™ธ์˜ ์ˆ˜๋‹จ์œผ๋กœ ์ œ์–ด๋ฅผ ํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด Lambda ๊ฐ™์€ ๊ฑธ๋กœ ์ค‘๊ฐœ์ž๋ฅผ ๋„์šฐ๊ณ  ์‹ ํ˜ธ๋ฅผ ๋ณด๋‚ด๊ฒŒ๋” ํ•  ์ˆ˜๋„ ์žˆ๊ฒ ๋‹ค.

์ด๋ฒคํŠธ ํŽ˜์ด๋กœ๋“œ๋Š” ์ด๋Ÿฐ ์‹์œผ๋กœ ๋‚˜์˜จ๋‹ค.

{
  "account": "123456789012",
  "detail": {
    "action-type": "PUSH",
    "image-digest": "sha256:f98d67af8e53a536502bfc600de3266556b06ed635a32d60aa7a5fe6d7e609d7",
    "image-tag": "latest",
    "repository-name": "ubuntu",
    "result": "SUCCESS",
    "manifest-media-type": "application/vnd.oci.image.manifest.v1+json",
    "artifact-media-type": "application/vnd.oci.image.config.v1+json"
  },
  "detail-type": "ECR Image Action",
  "id": "4f5ec4d5-4de4-7aad-a046-56d5cfe1df0e",
  "region": "us-east-1",
  "resources": [],
  "source": "aws.ecr",
  "time": "2019-08-06T00:58:09Z",
  "version": "0"
}

detail์—์„œ ๊บผ๋‚ด์“ฐ๋ฉด ๋œ๋‹ค.



์ฐธ์กฐ
https://stackoverflow.com/questions/58464687/aws-trigger-a-pipeline-on-ecr-push-action