์ด์ ๊ธ์ธ [ํธ๋ฌ๋ธ ๋นต์ผ] 6๊ฐ์ ๋์ ์ฆ๊ฑฐ์ ๋ค.. ์๊ฐ๊ณ ๋ค์ ๋ณด์ง ๋ง์! - 504 Gateway Timeout (์ด์ ํธ) ์์ ์ด์ด์ง๋๋ค! ๊ณฐ๊ณฐ์ด ์๊ฐํด๋ดค์ต๋๋ค. 504 Gateway Timeout ... ๊ฒฐ๊ตญ ์ด๋์ ๊ฐ Response ๋ฅผ ๋ฐ์์ผ ํ๋๋ฐ ๋ฐ์ง ๋ชปํด์ ์๊ธฐ๋ ์ด์ ์ ๋๋ค. ์ด๋์ Response ์ ๋ฐ์ง ๋ชปํ์๊น์? ์ ์ํคํ ์ฒ๋ง ๋ดค์๋, ๋ ์ด์ ๋์ ํ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค. ๊ทธ๋์ ์ ์ด๋ฏธ์ง๋ณด๋ค ์กฐ๊ธ ๋ ์ํคํ ์ฒ๋ฅผ ๊ตฌ์ฒดํ์์ผ๋ดค์ต๋๋ค. AWS ALB ๋ Target Group ์ ๋ฑ๋ก๋ ๋ ธ๋์๊ฒ ํธ๋ํฝ์ ๋ผ์ฐํ ํด์ฃผ๋๋ฐ, Karpenter ๋ก ์์ฑ๋๋ ๋ ธ๋๋ค์ ๋ชจ๋ ๋์ผํ Target Group ์ ๋ฑ๋ก๋ฉ๋๋ค. (๋์๋กญ์ง ์๊ฒ ๋์ผํ Target Group ์ ๋ฑ๋ก๋๊ฒ๋ ๊ตฌ์ฑํ์ฃ ) ์ฌ๊ธฐ์..
์์ ์์ฑํ๋ ํธ๋ฌ๋ธ ์ํ ๊ด๋ จ ๊ธ ์ค์ ํ ๊ธ์ ์ ๋ชฉ์ด "ํ๋ ธ์ค๋ ์ด๋ฐ ๋๋์ผ๊น?" ๋ผ๊ณ ์ง์์ ๋งํผ ๊ฝค๋ ํ๋ค์๋ ์๋ฌ์์ฃ . ๊ทผ๋ฐ ์ด๋ฒ์ ๊ฒช์ ์ด์๋ ์์ ๊ธ ์ ๋ชฉ์ ํ๋ ธ์ค ๋ผ๊ณ ๋ถ์ด๊ธฐ ๋ฏผ๋งํ ์ ๋๋ก ์์ธ์ ์ฐพ๊ธฐ๊ฐ ํ๋ค์๊ณ , ๋ํ ์ด์๊ฐ 6๊ฐ์์ด๋ ์ง์๋ ์ ๋๋ก ๋ง์ ์ํ ๋ ํธ๋ฌ๋ธ ์ํ ์ด์์ต๋๋ค. ๋ค์ด๊ฐ๊ธฐ ์์ ๊ฐ๋ตํ๊ฒ ํ๊ฒฝ์ ๋ค์๊ณผ ๊ฐ์์. ์ฟ ๋ฒ๋คํฐ์ค๋ AWS EKS(v1.28) ๋ฅผ ์ด์ฉํ๊ณ ์์ผ๋ฉฐ, ์๋น์ค๋ฉ์ ์๋น์ค์ธ ์ด์คํฐ์ค(v1.18)์ ์ธ๊ทธ๋ ์ค ๊ฒ์ดํธ์จ์ด์ AWS ALB ๋ฅผ ๋งตํํ์ฌ ํด๋ฌ์คํฐ ์ธ๋ถ์์ ํด๋ฌ์คํฐ ๋ด๋ถ ์๋น์ค์ ์ ๊ทผ์ด ๊ฐ๋ฅํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ฌ๊ธฐ์ ์ฌ์ฉํ ๋ด๋ถ ์๋น์ค๋ ArgoCD(v2.5) ์ ๋๋ค. ์ด์๋ ME! ๊ฐ ArgoCD ์ ์ ๊ทผ์ ํ์๋ ๋ถํน์ ํ๊ฒ 504 Gateway ..
EKS ์ ๋ฐฐํฌ๋ ํ๋๋ค์ AWS ์ ์ ๊ทผํ๊ธฐ ์ํ ๋ฐฉ๋ฒ์ผ๋ก๋ ํฌ๊ฒ 2๊ฐ์ง๊ฐ ์์ต๋๋ค. EC2 Instance Profile IAM Role for Service Account EC2 Instance Profile ์ ์์ปค ๋ ธ๋์๊ฒ AWS ์ ์ ๊ทผํ ์ ์๋ ์๊ฒฉ ์ฆ๋ช ์ ํด์ฃผ์ฃ . ์ ํด์ง EC2 ์ธ์คํด์ค์ ์ ํด์ง ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ฐฐํฌํ๋ค๋ฉด ์ ๋ฐฉ๋ฒ์ ์์ฃผ ์ข์ ๋ฐฉ๋ฒ์ด์์. ํ์ง๋ง, ์ฟ ๋ฒ๋คํฐ์ค ํ๊ฒฝ์ ๋ฐฐํฌ๋๋ ํ๋๋ค์ ํ๋์ ํน์ ํ ๋ ธ๋์ ๋ฐฐํฌ๋์ง ์์์. NodeAffinity ์ Label ์ ํตํด์ ๋ ธ๋๋ฅผ ์ ํํ๊ธด ํ์ง๋ง ๋์จํ๊ฒ ๊ทธ๋ฃนํ์ ํ์ฃ . ๋ง์ฝ ์ฟ ๋ฒ๋คํฐ์ค ํ๊ฒฝ์์ App ์ด Replica 3 ๊ฐ๋ก ๋ฐฐํฌ๋๊ณ , Hard PodAffinity ๋ฅผ ์ฃผ์ด ํ๋๋ฅผ ์ ๋ถ ๋ค๋ฅธ ๋ ธ๋์ ๋ฐฐํฌ๋๊ฒ๋ ํ๋ค๋ฉด, ๋ ๋ค..
์ฟ ๋ฒ๋คํฐ์ค ํ๊ฒฝ์์ Action Controller Runner (์ดํ ARC) ๋ฅผ ์ด์ฉํด์ ํ๋๋ฅผ Self Hosted Runner ๋ก ์ฌ์ฉํ ์ ์์ต๋๋ค. ARC ๊ตฌ์กฐ๋ ์์ ๊ฐ์ต๋๋ค. Self Hosted Runner ๋ก ์ฌ์ฉํ ํ๋๋ฅผ RunnerDeployment ๋๋ RunnerSet ์ผ๋ก ๋ฐฐํฌํ ์ ์์ฃ . RunnerDeployment ๋ ์ฟ ๋ฒ๋คํฐ์ค์์ Deployment ์ ๋์ผํ๊ฒ ๋์ํ๊ณ , RunnerSet ์ StatefulSet ๊ณผ ๋์ผํ๊ฒ ๋์ํฉ๋๋ค. ๋ํ ๋ฐฐํฌํ๊ฒ ๋๋ฉด ํ๋ ์์ 2๊ฐ์ง ์ปจํ ์ด๋ ๋์ํ๊ฒ ๋๋๋ฐ, ํ๋๋ Github Action Job ์ ์ฒ๋ฆฌํ๋ Runner ์ปจํ ์ด๋, ๋ ํ๋๋ Docker ๊ด๋ จ ์ผ์ ์ฒ๋ฆฌํ๋ Docker ์ปจํ ์ด๋์ ๋๋ค. ์ต์ ์ ํตํด Runner..
Nginx ๊ธฐ๋ฐ์ Pod ๋ด์์ S3 ์ Mount ํ๊ธฐ ์ํด goofys ๋ฅผ ์ฌ์ฉํ๋ ์ ์ด ์์ต๋๋ค. (goofys ๋ง๊ณ EBS ๋ EFS ๋ ์์๋ฆฌ์คํธ์ ์์์ง๋ง, goofys ๊ฐ ๊ฐ์ฅ ์ ํฉํ๋ค๊ณ ํ๋จํ์ฌ goofys ๋ฅผ ์ฌ์ฉํ๊ฒ ๋์์ต๋๋ค) ๊ทธ๋ฆผ์ผ๋ก ํํํ์๋ฉด ์๋์ ๊ฐ์ฃ . Nginx ๊ฐ provisioning ๋ ๋ ConfigMap ์ผ๋ก init.sh ๋ฅผ ์ฃผ์ด goofys ๋ฅผ ๋ง์ดํธ ํ ํ ์คํ๋๋๋ก ํ์ต๋๋ค. ์ด๋ฐ์์ผ๋ก ๋ง์ด์ฃ . #!/usr/bin/env sh set -eu wget https://github.com/kahing/goofys/releases/latest/download/goofys chmod +x goofys /goofys /var/nginx ... nginx -g 'daemo..
ํ ๋ผํผ์ Code ๋ก ์ธํ๋ผ๋ฅผ ๊ตฌ์ถํ ์ ์๊ฒ ๋์์ฃผ๋ IaC Tool ์ ๋๋ค. ํนํ AWS ์ธํ๋ผ๋ฅผ ๊ตฌ์ถํ ๋ ์ฐธ ์ ์ฉํ๊ฒ ์ฌ์ฉํ ์ ์์ฃ . module ์ ์ ๊ณตํด์ฃผ๊ธฐ ๋๋ฌธ์ ์ด๋ ต์ง ์๊ฒ VPC, EKS, ELB ๋ฅผ ์์ฑํ๊ณ ์ฝ๋๋ฅผ ๊ด๋ฆฌ ํ ์ ์์ต๋๋ค. ์ด๋ฒ ๊ธ์์๋ ํ ๋ผํผ์ ์ด์ฉํด EKS ๋ฅผ ๊ตฌ์ถํ๋ ๊ณผ์ ์์ ๊ฒช์ ๋ฌธ์ ์ ๊ณผ ์ด๋ฅผ ํด๊ฒฐํ๋ ๋ฐฉ๋ฒ์ ๋ํด ์ด์ผ๊ธฐ ํด๋ณผ๊น ํฉ๋๋ค. ์ฐ์ Apply!! terraform-aws-eks ์ ๊ฐ๋ณด๋ฉด ์์ฃผ ์น์ ํ๊ฒ ํ ๋ผํผ์ ์ด์ฉํด EKS ๋ฅผ ๊ตฌ์ถํ ์ ์๋ ๋ฐฉ๋ฒ์ ๋ํด ์๋ ค์ค๋๋ค. ๋ฌด์์ eks ๋ชจ๋์ import ํ๊ณ example ๊ณผ EKS Best Practices Guides ์ฐธ๊ณ ํ์ฌ ํ ๋ผํผ ์ฝ๋๋ฅผ ์์ฑํ์ต๋๋ค. provider "kubernetes" { h..