[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