๋กœ์ผ“๐Ÿพ
article thumbnail

 

 

์•ž์„œ ์ž‘์„ฑํ–ˆ๋˜ ํŠธ๋Ÿฌ๋ธ” ์ŠˆํŒ… ๊ด€๋ จ ๊ธ€ ์ค‘์— ํ•œ ๊ธ€์€ ์ œ๋ชฉ์ด "ํƒ€๋…ธ์Šค๋Š” ์ด๋Ÿฐ ๋Š๋‚Œ์ผ๊นŒ?" ๋ผ๊ณ  ์ง€์—ˆ์„ ๋งŒํผ ๊ฝค๋‚˜ ํž˜๋“ค์—ˆ๋˜ ์—๋Ÿฌ์˜€์ฃ .

 

๊ทผ๋ฐ ์ด๋ฒˆ์— ๊ฒช์€ ์ด์Šˆ๋Š” ์•ž์„  ๊ธ€ ์ œ๋ชฉ์— ํƒ€๋…ธ์Šค ๋ผ๊ณ  ๋ถ™์ด๊ธฐ ๋ฏผ๋งํ•  ์ •๋„๋กœ ์›์ธ์„ ์ฐพ๊ธฐ๊ฐ€ ํž˜๋“ค์—ˆ๊ณ , ๋˜ํ•œ ์ด์Šˆ๊ฐ€ 6๊ฐœ์›”์ด๋‚˜ ์ง€์†๋  ์ •๋„๋กœ ๋งˆ์Œ ์•„ํŒ ๋˜ ํŠธ๋Ÿฌ๋ธ” ์ŠˆํŒ…์ด์˜€์Šต๋‹ˆ๋‹ค. 

 

๋“ค์–ด๊ฐ€๊ธฐ ์•ž์„œ ๊ฐ„๋žตํ•˜๊ฒŒ ํ™˜๊ฒฝ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์•„์š”.

ํ˜„์žฌ ํ™˜๊ฒฝ

 

์ฟ ๋ฒ„๋„คํ‹ฐ์Šค๋Š” AWS EKS(v1.28) ๋ฅผ ์ด์šฉํ•˜๊ณ  ์žˆ์œผ๋ฉฐ, ์„œ๋น„์Šค๋ฉ”์‹œ ์„œ๋น„์Šค์ธ ์ด์Šคํ‹ฐ์˜ค(v1.18)์˜ ์ธ๊ทธ๋ ˆ์Šค ๊ฒŒ์ดํŠธ์›จ์ด์™€ AWS ALB ๋ฅผ ๋งตํ•‘ํ•˜์—ฌ ํด๋Ÿฌ์Šคํ„ฐ ์™ธ๋ถ€์—์„œ ํด๋Ÿฌ์Šคํ„ฐ ๋‚ด๋ถ€ ์„œ๋น„์Šค์— ์ ‘๊ทผ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์—ฌ๊ธฐ์„œ ์‚ฌ์šฉํ•  ๋‚ด๋ถ€ ์„œ๋น„์Šค๋Š” ArgoCD(v2.5) ์ž…๋‹ˆ๋‹ค.

 

์ด์Šˆ๋Š” ME! ๊ฐ€ ArgoCD ์— ์ ‘๊ทผ์„ ํ–ˆ์„๋•Œ ๋ถˆํŠน์ •ํ•˜๊ฒŒ 504 Gateway Timeout ์ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

์–ด๋”˜์ง„ ๋ชจ๋ฅด๊ฒ ์ง€๋งŒ 504 Gateway Timeout ์ด ๋ฐœ์ƒ

 

๊ทผ๋ฐ ์ •๋ง ๋ฏธ์Šคํ…Œ๋ฆฌํ•œ ๊ฑด, ArgoCD ์„œ๋น„์Šค ์ „์ฒด์— ๋Œ€ํ•œ 504 Gateway Timeout ์ด ๋ฐœ์ƒํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ๋žœ๋คํ•˜๊ฒŒ ํŠน์ • ๋ฆฌ์†Œ์Šค๋งŒ ๋ฐœ์ƒํ•œ๋‹ค๋Š” ๊ฒƒ์ด์˜€์ฃ !

ArgoCD ์— ๊ตญํ•œ๋œ ๊ฒƒ์€ ์•„๋‹ˆ๊ณ , EKS ์ƒ์— ์žˆ๋Š” ๋ชจ๋“œ ์„œ๋น„์Šค์—์„œ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. 

 

 

์ด๊ฒŒ ๋ฌด์Šจ ๋ง์ด๋ƒ, ์•„๋ž˜ ์ด๋ฏธ์ง€์ฒ˜๋Ÿผ ๊ฐœ๋ฐœ์ž ๋„๊ตฌ๋ฅผ ์ผฐ์„ ๋•Œ js, css ๋“ฑ ์ƒ๊ด€์—†์ด ๋žœ๋ค์œผ๋กœ ํ•˜๋‚˜์˜ ๋ฆฌ์†Œ์Šค๋งŒ pending ์ƒํƒœ์— ๋น ์ง€๊ณ  ๊ฒฐ๊ตญ ์„ค์ •๋œ AWS ์— ์„ค์ •๋œ Idle Timeout ์ด ์ง€๋‚˜๋„๋ก pending ์ด ์ง€์†๋˜์–ด ๊ฒฐ๊ตญ ์ปค๋„ฅ์…˜์„ ๋Š์–ด๋ฒ„๋ ค 504 Gateway Timeout ์ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

๋žœ๋คํ•œ ๋ฆฌ์†Œ์Šค ํ•˜๋‚˜๊ฐ€ pending ์ƒํƒœ์— ๋น ์ง€๋‹ค 504 gateway timeout ์ด ๋ฐœ์ƒ
Idle Timeout ์ด ์ดˆ๊ณผ๋˜์–ด ์—๋Ÿฌ ๋ฐœ์ƒ (1m == 1 minutes)

 

504 Gateway Timeout ์€ ์–ด๋ ต์ง€ ์•Š๊ฒŒ ๋ณผ ์ˆ˜ ์žˆ๋Š” ์—๋Ÿฌ์˜€๊ธฐ ๋•Œ๋ฌธ์— ๊ด€๋ จ๋œ ํ•ด๊ฒฐ์ฑ…์ด ๋งŽ์„ ๊ฑฐ๋ผ ์ƒ๊ฐํ–ˆ์Šต๋‹ˆ๋‹ค. ์–ธ์ œ๋‚˜์ฒ˜๋Ÿผ ์šฐ์„  ์ด์Šคํ‹ฐ์˜ค ๊ณต์‹ ๋ ˆํฌ์— ๊ฐ€์„œ ๊ฐ™์€ ๋ฌธ์ œ๋ฅผ ๊ฒช์—ˆ๋˜ ์‚ฌ๋žŒ์ด ์žˆ๋Š”์ง€ ์ฐพ์•„๋ดค์Šต๋‹ˆ๋‹ค.

https://github.com/istio/istio/issues/12417

 

์ƒํ™ฉ์€ ๋น„์Šทํ•œ๋ฐ ๋ช…ํ™•ํ•œ ํ•ด๊ฒฐ์ฑ…์ด ์ž‘์„ฑ๋˜์–ด ์žˆ์ง„ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ์ด์™ธ์—๋„ ๊ด€๋ จ๋œ ์ด์Šˆ๊ฐ€ ์žˆ๋Š”์ง€ ์ฐพ์•„๋ดค์ง€๋งŒ ์ด๋ ‡๋‹คํ•œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์ด ์—†์—ˆ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ง์ ‘ ์›์ธ์„ ์ฐพ์•„ ๋‚˜์„œ์•ผ ํ–ˆ์ฃ .

 

์˜์‹ฌ๋˜๋Š” ๋ถ€๋ถ„์€ ํŠธ๋ž˜ํ”ฝ์„ ๋ผ์šฐํŒ…ํ•˜๋Š” AWS ALB ์™€ Istio ๊ทธ๋ฆฌ๊ณ  ๋‚ด๋ถ€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ž์ฒด(ArgoCD ์™€ ๊ฐ™์€) ์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿผ ๋ˆ„๊ฐ€ ๋ฒ”์ธ์ธ์ง€ ์กฐ์‚ฌ๋ฅผ ํ•œ๋ฒˆ ์‹œ์ž‘ํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค!

 

๋ ›์ธ ๋‘๋”์ฝ”๋“œ!

 

 

 

์ฒซ๋ฒˆ์งธ ์šฉ์˜์ž, AWS ALB


 

๊ฐ€์žฅ ์•ž๋‹จ์ธ ALB ๋ถ€ํ„ฐ ์กฐ์‚ฌ๋ฅผ ํ–ˆ์Šต๋‹ˆ๋‹ค.

ALB ๋ถ€ํ„ฐ ์กฐ์‚ฌ

 

 

ํ˜„์žฌ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š” AWS ALB ์˜ ๋ชจ๋‹ˆํ„ฐ๋ง ์ž…๋‹ˆ๋‹ค. ์ด๋ฏธ์ง€ 3๊ฐœ๋งŒ ๊ฐ€์ ธ์™”๋Š”๋ฐ, ํ™•์‹คํžˆ ์ŠคํŒŒํฌ๊ฐ€ ํŠ€๋Š” ๋ถ€๋ถ„์ด ์กด์žฌํ•ฉ๋‹ˆ๋‹ค. ELB 5XXs ๋ถ€๋ถ„๋„ 0 ์ด ์•„๋‹Œ ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์ฃ .

 

๋กœ๋“œ๋ฐธ๋Ÿฐ์„œ ์ƒํƒœ

 

504 Gateway Timeout ์€ Idle Timeout ๊ณผ ์—ฐ๊ด€์ด ๊นŠ์Šต๋‹ˆ๋‹ค. Idle Timeout ์€ AWS ALB ์—์„œ๋„ ์ง€์ •ํ•  ์ˆ˜ ์žˆ๊ณ , ์ž๋ฐ”์™€ ๊ฐ™์€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ Timeout ์„ ์ง€์ •ํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ, ์—ฌ๊ธฐ์„œ ์กฐ์‹ฌํ•  ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

 

๊ณต์‹๋ฌธ์„œ์— ๋‚˜์™€์žˆ๋Š” AWS ALB 504 Gateway ์˜ ์›์ธ

 

ํ•˜๋‚˜์˜ API ์š”์ฒญ์— ๋Œ€ํ•ด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์‘๋‹ตํ•˜๋Š”๋ฐ 20์ดˆ๊ฐ€ ๊ฑธ๋ฆฐ๋‹ค๊ณ  ๊ฐ€์ •ํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ AWS ALB ์— ์„ค์ •ํ•œ Idle Timeout(30์ดˆ๊ฐ€ Default)์ด 10์ดˆ๋ผ๋ฉด ALB ๊ฐ€ ์ž๋™์œผ๋กœ ์ปค๋„ฅ์…˜์„ ๋Š์–ด๋ฒ„๋ ค 504 Gateway Timeout ๊ฐ€ ๋ฐœ์ƒํ•˜์ฃ . ๋”ฐ๋ผ์„œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ Idle Timeout ์€ AWS ALB ๋ณด๋‹ค ์ ๊ฒŒ ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

 

๊ทธ๋ฆฌ๊ณ  ๋งˆ์นจ ์ œ๊ฐ€ ์‚ฌ์šฉํ•˜๋Š” AWS ALB ๊ฐ™์€ ๊ฒฝ์šฐ์—๋Š” Idle Timeout ์„ 600์ดˆ๋กœ ํ•ด๋†จ์—ˆ๋Š”๋ฐ, ์ด๊ฒŒ ๋„ˆ๋ฌด ๊ธธ์–ด์„œ ์ปค๋„ฅ์…˜ ์ˆ˜๊ฐ€ ๋ฌด์˜๋ฏธํ•˜๊ฒŒ ๋Š˜์–ด๋‚˜๊ณ , ๊ทธ๋งŒํผ AWS ALB ์— ๋ถ€ํ•˜๊ฐ€ ๊ฑธ๋ ค ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ์— ๋”ฐ๋ผ Idle Timeout ์„ 60์ดˆ๋กœ ์žฌ์„ค์ • ํ–ˆ์ฃ .

 

์ปค๋„ฅ์…˜์ˆ˜๊ฐ€ ๊ธ‰๊ฒฉํ•˜๊ฒŒ ์ค„์–ด๋“ฌ

ํ™•์‹คํžˆ ํšจ๊ณผ๋Š” ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ์˜คํ›„ 03์‹œ์—๋Š” 789๊ฐœ๋‚˜ ๋˜์—ˆ๋˜ ์ปค๋„ฅ์…˜ ์ˆ˜๊ฐ€ ์˜คํ›„ 09์‹œ์—๋Š” 100๊ฐœ ์ดํ•˜๊นŒ์ง€๋„ ๋–จ์–ด์กŒ์ฃ .

 

๊ทผ๋ฐ ์ด๊ฒƒ์ด 504 Gateway Timeout ์„ ํ•ด๊ฒฐํ•ด์ฃผ์ง„ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

 

์ƒ๊ฐํ•ด๋ณด๋ฉด ์• ์ดˆ์— AWS ALB ๋Š” AWS Managed ์ด๊ธฐ ๋•Œ๋ฌธ์—, ์›Œํฌ๋กœ๋“œ์— ๋งž๊ฒŒ ์•Œ์•„์„œ ์ž๋™์œผ๋กœ ์กฐ์ •๋˜๊ธฐ ๋•Œ๋ฌธ์— ๋ถ€ํ•˜๊ฐ€ ๊ฑธ๋ฆฌ๋”๋ผ๋„ ํฐ ๋ถ€๋‹ด์ด ์—†์Šต๋‹ˆ๋‹ค. (๊ณต์‹๋ฌธ์„œ ์ฐธ๊ณ )

AWS Managed ๋Š” ALB, EKS ์ฒ˜๋Ÿผ AWS ์ž์ฒด๊ฐ€ ๊ด€๋ฆฌํ•ด์ฃผ๋Š” ์„œ๋น„์Šค์ด๋ฏ€๋กœ, ๋ฌธ์ œ๊ฐ€ ์ƒ๊ฒจ๋„ ์‚ฌ์šฉ์ž๊ฐ€ ์‹ ๊ฒฝ ์“ธ ๋ถ€๋ถ„์ด ์—†๋Š” ๋ฐ˜๋ฉด, ๋ฐ˜๋Œ€์ธ EC2 ์™€ ๊ฐ™์€ Client Managed ๋Š” ๋ถ€ํ•˜ ๊ฑธ๋ฆฌ๊ฑฐ๋‚˜ ๋ฌธ์ œ๊ฐ€ ์ƒ๊ฒผ์„ ๊ฒฝ์šฐ ์ง์ ‘ ํ•ด๊ฒฐํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

https://docs.aws.amazon.com/ko_kr/elasticloadbalancing/latest/application/introduction.html

 

๊ทธ๋ฆฌ๊ณ  ArgoCD ์„œ๋น„์Šค์—์„œ 60์ดˆ๊ฐ€ ๋„˜๋„๋ก ๊ฑธ๋ฆฌ๋Š” ์‘๋‹ต์ด ์—†์—ˆ๊ธฐ ๋•Œ๋ฌธ์— 600 ์ดˆ์—์„œ 60 ์ดˆ๋กœ Idle Timeout ์„ ์ค„์–ด์คฌ๋”๋ผ๋„ ํšจ๊ณผ๋Š” ์—†์—ˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

 

ํ˜น์‹œ๋‚˜ ํ•ด์„œ ์ƒˆ๋กœ์šด ALB ๋ฅผ ์ƒ์„ฑํ•ด์„œ ํŠธ๋ž˜ํ”ฝ์„ ๋ผ์šฐํŒ… ํ•ด์คฌ๋Š”๋ฐ ์ƒˆ๋กœ์šด ALB ์—์„œ๋„ ์—๋Ÿฌ๊ฐ€ ๋˜‘๊ฐ™์•˜์Šต๋‹ˆ๋‹ค.

์ด๊ฑธ๋กœ ์šฐ์„  AWS ALB ์€ ์šฉ์˜์„ ์ƒ์—์„œ ๋ฒ—์–ด๋‚ฌ์Šต๋‹ˆ๋‹ค..

 

 

๋‘๋ฒˆ์งธ ์šฉ์˜์ž, Istio


 

์ž, AWS ALB ๋Š” ๋ฒ”์ธ์ด ์•„๋‹ˆ๋ž€ ๊ฑธ ์•Œ์•˜๊ณ  ๊ทธ ๋‹ค์Œ์œผ๋กœ Istio ๋ฅผ ์กฐ์‚ฌํ–ˆ์Šต๋‹ˆ๋‹ค.

Istio ์กฐ์‚ฌ

 

๋“ค์–ด๊ฐ€๊ธฐ ์•ž์„œ ๊ฐ„๋‹จํ•˜๊ฒŒ ์ด์Šคํ‹ฐ์˜ค์— ๋Œ€ํ•ด ์„ค๋ช…ํ•˜๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค.

์ด์Šคํ‹ฐ์˜ค์— ๋Œ€ํ•œ ๊ธ€์ด ์•„๋‹ˆ๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ„๋žตํ•˜๊ฒŒ ์„ค๋ช…ํ•˜๊ณ , ๋‹ค๋ฅธ ๊ธ€์—์„œ ์ด์Šคํ‹ฐ์˜ค์— ๋Œ€ํ•ด ์ž์„ธํžˆ ๋‹ค๋ฃจ๊ฒ ์Šต๋‹ˆ๋‹ค!

 

์ด์Šคํ‹ฐ์˜ค์—๋Š” Istio Ingress Gateway ๋ผ๋Š” ์ปดํฌ๋„ŒํŠธ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. Istiod ์™€ ๊ฐ™์€ ํ•„์ˆ˜ ์ปดํฌ๋„ŒํŠธ๋Š” ์•„๋‹ˆ์ง€๋งŒ ์‚ฌ์‹ค ์ƒ ํ•„์ˆ˜ ์ปดํฌ๋„ŒํŠธ ์ž…๋‹ˆ๋‹ค. ์™œ๋ƒ ํด๋Ÿฌ์Šคํ„ฐ ๋‚ด๋ถ€ ์„œ๋น„์Šค๋ฅผ ํด๋Ÿฌ์Šคํ„ฐ ์™ธ๋ถ€์— ๋…ธ์ถœํ•˜๊ธฐ ์œ„ํ•ด์„  ๋ฐ˜๋“œ์‹œ ํ•„์š”ํ•œ ์ปดํฌ๋„ŒํŠธ์ด๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. 

https://istio.io/latest/docs/concepts/security/arch-sec.svg

 

 

AWS ALB ์— ๋Œ€์ƒ ๊ทธ๋ฃน์œผ๋กœ Istio Ingress Gateway ๋ฅผ ๋“ฑ๋กํ•ด์„œ ์™ธ๋ถ€์—์„œ EKS ๋‚ด๋ถ€์— ์žˆ๋Š” ์„œ๋น„์Šค๋กœ ์ ‘๊ทผ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

AWS ALB ์™€ Istio Ingress Gateway ๋ฅผ ๋งตํ•‘ํ•˜๋Š” ์ž์„ธํ•œ ๋ฐฉ๋ฒ•์ด ๊ถ๊ธˆํ•˜๋‹ค๋ฉด ์—ฌ๊ธฐ!

 

 

32001 ํฌํŠธ๋Š” ๋Œ€์ƒ ๊ทธ๋ฃน์˜ Health Check ๋ฅผ ์œ„ํ•œ ๋…ธ๋“œ์˜ ํฌํŠธ์ด๊ณ , 32002 ํฌํŠธ๋Š” ์‹ค์งˆ์ ์œผ๋กœ ํŠธ๋ž˜ํ”ฝ์„ ๋ผ์šฐํŒ…ํ•  ํฌํŠธ์ž…๋‹ˆ๋‹ค.

๋งŒ์•ฝ AWS ALB ๋’ท๋‹จ์—๋„ 443 ํฌํŠธ๋ฅผ ์ด์šฉํ•  ๊ฒƒ์ด๋ผ๋ฉด 32002 ํฌํŠธ ๋Œ€์‹  32003 ํฌํŠธ๋ฅผ ์ด์šฉํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. 

 

ALB ์˜ SSL Offload ๊ธฐ๋Šฅ ๋•๋ถ„์— 32002 ํฌํŠธ๋กœ ๋ผ์šฐํŒ…ํ•ด๋„ ๋ฌด๋ฐฉํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

 

 

๊ทธ์— ๋”ฐ๋ผ ๋Œ€์ƒ ๊ทธ๋ฃน์— ๋“ฑ๋ก๋œ ๋ชจ๋“  ๋…ธ๋“œ๋“ค์€ 32001 - 32002 ํฌํŠธ๋ฅผ ํ—ˆ์šฉํ•ด์ฃผ๋Š” ๋ณด์•ˆ ๊ทธ๋ฃน ๊ทœ์น™์„ ๊ฐ€์ง€๊ณ  ์žˆ์–ด์•ผ ํ•˜๋ฉฐ, ์ด ์ค‘ ํ•˜๋‚˜๋ผ๋„ Deny ๊ฐ€ ๋œ๋‹ค๋ฉด ๋Œ€์ƒ ๊ทธ๋ฃน ๋“ฑ๋ก์— ์‹คํŒจํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

 

Ingress Gateway ๋Š” Egde Proxy ์ด์ž Reverse Proxy ๋ฅผ ์—ญํ• ์„ ํ•ด์ฃผ๊ธฐ ๋•Œ๋ฌธ์— ์ด์ œ ALB ๋ฅผ ํ†ตํ•ด ๋“ค์–ด์˜จ ํŠธ๋ž˜ํ”ฝ์— ๋Œ€ํ•ด์„  ๋ชจ๋‘ Ingress Gateway ์—๊ฒŒ ๋งก๊ฒจ์ฃผ๋ฉด ๋ฉ๋‹ˆ๋‹ค. 

 

Istio Ingress Gateway ์™€ Gateway Resource ๋Š” ์•Œ๋ฉด ์•Œ์ˆ˜๋ก ๊ต‰์žฅํžˆ ํฅ๋ฏธ๋กœ์šด ์ปดํฌ๋„ŒํŠธ๋“ค์ด๊ธฐ ๋•Œ๋ฌธ์— ๋‚˜์ค‘์— ๋ธ”๋กœ๊ทธ์—์„œ ๋” ์ž์„ธํžˆ ๋‹ค๋ฃจ๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

 

 

๋‹ค์‹œ ์ด์ œ ๋ณธ๋ก ์œผ๋กœ ๋Œ์•„์™€์„œ, AWS ALB ๋’ท๋‹จ์— ๋Œ€์ƒ ๊ทธ๋ฃน์œผ๋กœ Istio Ingress Gateway ๊ฐ€ ์ •์ƒ์ ์œผ๋กœ ๋“ฑ๋ก๋œ ๊ฒƒ์œผ๋กœ ๋ณด์•„ AWS ALB ์™€ Istio Ingress Gateway ์‚ฌ์ด์—๋Š” ๋ฌธ์ œ๊ฐ€ ์—†๋‹ค๊ณ  ์ƒ๊ฐ์„ ํ–ˆ์Šต๋‹ˆ๋‹ค.

 

Istio Ingress Gateway ์ž์ฒด์— ๋ฌด์–ธ๊ฐ€ ๋ฌธ์ œ๊ฐ€ ์žˆ๋‚˜ํ•˜๊ณ , ๋กœ๊ทธ๋ฅผ ๋’ค์ ธ๋ดค์ง€๋งŒ ๋กœ๊ทธ ์ƒ์—๋Š” ๋ณด์ด๋Š” ๋ฌธ์ œ๋Š” ์—†์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‹ค ๋ฌธ๋“ EKS ์ดˆ์ฐฝ๊ธฐ์— ๋น„์šฉ์„ ์•„๋‚€๋‹ค๊ณ  ์ด์Šคํ‹ฐ์˜ค์™€ ๊ด€๋ จ๋œ ์ปดํฌ๋„ŒํŠธ์˜ ๋ฆฌ์†Œ์Šค๋Š” ๊ต‰์žฅํžˆ ์ ๊ฒŒ ์ฃผ์—ˆ๋˜ ๊ฒƒ์ด ๋– ์˜ฌ๋ž์Šต๋‹ˆ๋‹ค. 

 

์‹ค์ œ๋กœ Request, Limit ๋ชจ๋‘ 250m CPU, 1G Memory ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์—ˆ์ฃ . ์ดˆ๊ธฐ์— ๋น„ํ•ด EKS ์œ„์— ๋งŽ์€ ํŒŒ๋“œ๋“ค์ด ์ƒ๊ฒจ๋†“์•˜๊ณ , ์ด๋ฅผ ํ•ธ๋“ค๋ง ํ•˜๊ธฐ์—๋Š” ์ € ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ํ˜„์ €ํžˆ ๋ถ€์กฑํ–ˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

 

๊ทธ์— ๋”ฐ๋ผ ์šฐ์„  2 CPU, 4G Memory ๋ฅผ ๊ฐ๊ฐ Istio Ingress Gateway, Istiod ์—๊ฒŒ ๋ถ€์—ฌํ•ด์ฃผ์—ˆ์Šต๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋‹ˆ ๋‹คํ–‰ํžˆ 504 Gateway Timeout ๋ฌธ์ œ๊ฐ€ ์—†์–ด์กŒ์Šต๋‹ˆ๋‹ค!!

 

์—ฌ๊ธฐ์„œ ํ•ด๊ฒฐ๋˜์—ˆ์œผ๋ฉด ์ข‹์•˜๊ฒ ์ง€๋งŒ ๋ช‡์ผ์ด ์ง€๋‚œ ํ›„์— ๋˜ ๋‹ค์‹œ 504 Gateway Timeout ์ด ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค... ์ •์‹ ์ด ์–ด์ง€๋Ÿฝ๋”๊ตฐ์š”.. 

 

์ด์™ธ ์ด์Šคํ‹ฐ์˜ค ๋ฆฌ์†Œ์Šค์ธ Gateway, Virtual Service, Destination Rule ๋“ฑ ๋ฌธ์ œ๊ฐ€ ์žˆ๋‚˜, ๋˜ ๋‹ค๋ฅธ ์˜ต์…˜์ด ์žˆ๋‚˜ ์ฐพ์•„๋ณด์•˜์ง€๋งŒ ์—ญ์‹œ๋‚˜ 504 Gateway Timeout ๋ฌธ์ œ๋Š” ๊ณ„์† ์ง„ํ–‰๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

 

์ด ์ •๋„๋ฉด ์ด์Šคํ‹ฐ์˜ค ๋˜ํ•œ ๋ฌธ์ œ๊ฐ€ ์—†์„๊ฑฐ๋ผ๊ณ  ํŒ๋‹จ์„ ํ–ˆ์Šต๋‹ˆ๋‹ค. ์‹ฌ์ง€์–ด EKS ์ดˆ์ฐฝ๊ธฐ์—๋Š” ์•„์ฃผ ์ž˜ ๋™์ž‘ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ๋‹ค๋ฅธ ๊ณณ์— ๋ฌธ์ œ๊ฐ€ ์žˆ์„ ๊ฑฐ๋ผ ํŒ๋‹จํ–ˆ์Šต๋‹ˆ๋‹ค.

์ด๊ฑธ๋กœ ์ด์Šคํ‹ฐ์˜ค ๋˜ํ•œ ์šฉ์˜์„ ์ƒ์—์„œ ๋ฒ—์–ด๋‚ฌ์Šต๋‹ˆ๋‹ค..

 

์„ธ๋ฒˆ์งธ ์šฉ์˜์ž, ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ž์ฒด


 

AWS ALB ๋„ ์•„๋‹ˆ๊ณ  ์ด์Šคํ‹ฐ์˜ค ๋ฌธ์ œ๋„ ์•„๋‹ˆ๋ผ๋Š” ๊ฒƒ์„ ์•Œ์•˜์Šต๋‹ˆ๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด ์ด์ œ ๋‚จ์€ ๊ฒƒ์€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ž์ฒด์ž…๋‹ˆ๋‹ค.

ํ˜น์‹œ ArgoCD ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ž์ฒด์— ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ๋ถ€์กฑํ•˜๋‚˜? ์‹ถ์–ด์„œ ๋ฉ”๋ชจ๋ฆฌ๋„ ์ฆ์„คํ•ด๋ดค์ง€๋งŒ ์—ญ์‹œ ์†Œ์šฉ์—†์—ˆ์Šต๋‹ˆ๋‹ค.

 

ArgoCD ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ Idle Timeout ์€ ํ—ฌ๋ฆ„์œผ๋กœ ์„ค์ •์กฐ์ฐจ ํ•  ์ˆ˜ ์—†์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ž์ฒด๋Š” ๋ฌธ์ œ๊ฐ€ ์•„๋‹ˆ๋ผ๊ณ  ํŒ๋‹จํ–ˆ์Šต๋‹ˆ๋‹ค.

 

๊ทธ๋ฆฌ๊ณ  ArgoCD ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๋ชจ๋“  ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ๊ฐ™์€ ํ˜„์ƒ์ด ๋ฐœ์ƒํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ž์ฒด ๋ฌธ์ œ๋Š” ์•„๋‹Œ๊ฑฐ ๊ฐ™์Šต๋‹ˆ๋‹ค.

 

 

์ด๋Œ€๋กœ ์˜์›ํžˆ ๋ฏธ๊ถ์†์œผ๋กœ..?!


 

504 Gateway Timeout ์€ ๋ฐœ์ƒ ์ดˆ๊ธฐ์—” ํฐ ์ง€์žฅ์ด ์—†์—ˆ์œผ๋‚˜, ์‹œ๊ฐ„์ด ์ ์ฐจ ํ๋ฅด๋ฉด์„œ ์„œ์„œํžˆ ๊ฐœ๋ฐœ์— ์žˆ์–ด์„œ๋„ ์ง€์žฅ์ด ์ƒ๊ธฐ๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

ArgoCD ์™€ ๊ฐ™์€ ํด๋Ÿฌ์Šคํ„ฐ ์™ธ๋ถ€๋กœ ๋…ธ์ถœ๋œ ์„œ๋น„์Šค์˜ ์†๋„๊ฐ€ ํ˜„์ €ํžˆ ๋Š๋ ค์กŒ๊ณ , 504 Gateway Timeout ์˜ ๋นˆ๋„๋„ ๋Š˜์–ด๋‚œ ๊ฒƒ์ด ์˜€์ฃ .

 

์ด์Šคํ‹ฐ์˜ค ๊ณต์‹ ๋ ˆํฌ์— ์ด์Šˆ๋ฅผ ์ž‘์„ฑํ•ด๋ดค์ง€๋งŒ ํฌ๊ฒŒ ๋„์›€์€ ๋˜์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค.

https://github.com/istio/istio/issues/48578

 

 

์ค‘๊ฐ„์ค‘๊ฐ„ ์‹ค๋งˆ๋ฆฌ์™€ ๊ด€๋ จ๋œ ๊ธ€๋“ค์„ ๋ฐœ๊ฒฌํ–ˆ์ง€๋งŒ, ์ง์ ‘์ ์ธ ํ•ด๊ฒฐ ์ฑ…์ด ๋˜์ง„ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

https://medium.com/@pooyan_razian/how-to-fix-a-http-504-gateway-timeout-error-4ce6f396bab6

 

๊ทธ๋ฆฌ๊ณ  ์ €์™€ ๊ฐ™์€ ์ด์Šˆ๋ฅผ ๊ฒช๋Š” ๋ถ„๋“ค์ด ๋งŽ์€์ง€ ์ œ๊ฐ€ ์˜ฌ๋ ธ๋˜ Github Issue ์— ํ•ด๊ฒฐ์ฑ…์„ ๋ฌป๋Š” ๋ถ„๋“ค์ด ๋ช‡ ๊ณ„์…จ์Šต๋‹ˆ๋‹ค.

 

๊ธ€์€ 3์›”์— ์ž‘์„ฑ๋˜์—ˆ์ง€๋งŒ, ์ด ์ด์Šˆ์— ๋Œ€ํ•ด์„  ํ•ด๊ฒฐํ•˜์ง„ ๊ฝค ๋˜์—ˆ๊ณ , ์ฝ”๋ฉ˜ํŠธ์— ์ด๋ฏธ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ์Šคํฌ๊ฐ€ ์žˆ๋„ค์š”!

 

 

๋‹ค์Œ ๊ธ€ [ํŠธ๋Ÿฌ๋ธ” ๋นต์•ผ] 6๊ฐœ์›” ๋™์•ˆ ์ฆ๊ฑฐ์› ๋‹ค.. ์ž˜๊ฐ€๊ณ  ๋‹ค์‹  ๋ณด์ง€ ๋ง์ž! - 504 Gateway Timeout (ํ•ด๊ฒฐ ํŽธ) ์—์„œ ์ด์–ด์ง‘๋‹ˆ๋‹ค..

profile on loading

Loading...