AWS

[aws] SSL ์ธ์ฆ ๋ฐ ์ธ์ฆ ๋ฐฉ๋ฒ• / ์—ฐ๊ฒฐ ๋“œ๋ ˆ์ด๋‹ (Connection Draining)

499.token.required 2024. 7. 25. 15:36

์ด ๊ธ€์˜ ์ผ๋ถ€๋Š” aws ๊ณต์‹๋ฌธ์„œ์˜ ๋‚ด์šฉ์„ ์ฐธ์กฐํ•˜์˜€์Œ์„ ๋ฐํž™๋‹ˆ๋‹ค.

 

๐Ÿ“Œ ELB SSL ์ธ์ฆ

 

SSL ์ธ์ฆ์„œ๋Š” ํด๋ผ์ด์–ธํŠธ์™€ ๋กœ๋“œ ๋ฐธ๋Ÿฐ์„œ ์‚ฌ์ด์—์„œ ํŠธ๋ž˜ํ”ฝ์ด ์ด๋™ํ•˜๋Š” ๋™์•ˆ ์•”ํ˜ธํ™”ํ•ด์ค€๋‹ค. ์ด๋ฅผ ์ „์†ก ์ค‘ (in-flight) ์•”ํ˜ธํ™”๋ผ๊ณ  ํ•˜๋Š”๋ฐ ๋ฐ์ดํ„ฐ๋Š” ๋„คํŠธ์›Œํฌ๋ฅผ ์ด๋™ํ•˜๋Š” ์ค‘์—๋Š” ์•”ํ˜ธํ™”๋˜๊ณ , ์†ก์‹ ์ž ์ˆ˜์‹ ์ž ์ธก์—์„œ๋งŒ ์ด๋ฅผ ๋ณตํ˜ธํ™” ํ•   ์ˆ˜ ์žˆ๋‹ค. SSL์€ '๋ณด์•ˆ ์†Œ์ผ“ ๊ณ„์ธต'์„ ์˜๋ฏธํ•˜๊ณ  ์—ฐ๊ฒฐ์„ ์•”ํ˜ธํ™”ํ•˜๋Š”๋ฐ ์‚ฌ์šฉํ•˜๋Š”๋ฐ TLS๋Š” ์ƒˆ๋กœ์šด ๋ฒ„์ „์˜ SSL๋กœ '์ „์†ก ๊ณ„์ธต ๋ณด์•ˆ'์„ ์˜๋ฏธ ํ•œ๋‹ค. ์ด๋Ÿฌํ•œ ์ธ์ฆ์„œ๋Š” ์ธ์ฆ ๊ธฐ๊ด€(CA)์—์„œ ๋ฐœ๊ธ‰ ๋ฐ›์•„์•ผ ํ•˜๋Š”๋ฐ ๊ทธ ๊ธฐ๊ด€์—๋Š” ์ฝ”๋ชจ๋„, ๊ณ  ๋Œ€๋””, Let's Encypt ๋“ฑ์ด ์žˆ๋‹ค. ์ด๋ ‡๊ฒŒ ์ธ์ฆ ๋ฐœ๊ธ‰์„œ๋ฅผ ๋กœ๋“œ ๋ฐธ๋Ÿฐ์„œ์— ์ถ”๊ฐ€ํ•˜๋ฉด ํด๋ผ์ด์–ธํŠธ์™€ ๋กœ๋“œ ๋ฐธ๋Ÿฐ์„œ ์‚ฌ์ด์˜ ์—ฐ๊ฒฐ์„ ์•”ํ˜ธํ™” ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋œ๋‹ค. 

 

์ž‘๋™ ๋ฐฉ์‹์€ ์œ ์ €๊ฐ€ ์ธํ„ฐ๋„ท์„ ํ†ตํ•ด ๋กœ๋“œ ๋ฐธ๋Ÿฐ์„œ์— ์ ‘์†ํ•˜๋ฉด ๋กœ๋“œ ๋ฐธ๋Ÿฐ์„œ์—์„œ๋Š” ๋‚ด๋ถ€์ ์œผ๋กœ  ๋ฐฑ์•ค๋“œ์™€ ์•”ํ˜ธํ™” ๋˜์ง€ ์•Š์€ HTTP๋กœ EC2 ์ธ์Šคํ„ด์Šค์™€ ํ†ต์‹ ํ•˜๊ฒŒ ๋˜๋Š”๋ฐ VPC๋กœ ์ด๋™ํ•˜๋Š” ํ”„๋ผ์ด๋น— ๋„คํŠธ์›Œํฌ๋ฅผ ์“ฐ๊ธฐ ๋•Œ๋ฌธ์— ์•ˆ์ „ํ•˜๊ฒŒ ๋ณดํ˜ธ๋œ๋‹ค. AWS ์—์„œ๋Š” ์ด ์ธ์ฆ์„œ๋“ค์„ ๊ด€๋ฆฌํ•˜๋Š” ACM์ด ์žˆ์œผ๋ฉฐ ์›ํ•œ๋‹ค๋ฉด ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ์ธ์ฆ์„œ๋ฅผ ์—…๋กœ๋“œ ํ•  ์ˆ˜ ๋„ ์žˆ๋‹ค. 

 

 

 

 

 

SNI(Serve Name Indication)

 

์„œ๋ฒ„ ์ด๋ฆ„ ์ง€์ • SNI (Serve Name Indication)๋Š” ์—ฌ๋Ÿฌ ๊ฐœ์˜ SSL ์ธ์ฆ์„œ๋ฅผ ํ•˜๋‚˜์˜ ์›น ์„œ๋ฒ„์— ๋กœ๋“œํ•ด ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์›น ์‚ฌ์ดํŠธ์˜ ์ธ์ฆ์„ ์ง€์›ํ•ด์ค€๋‹ค. ์ด๊ฒƒ์€ ํ™•์žฅ๋œ ํ”„๋กœํ† ์ฝœ๋กœ ์ตœ์ดˆ์˜ SSL ํ•ธ๋“œ์…ฐ์ดํฌ ๋‹จ๊ณ„์—์„œ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๋Œ€์ƒ ์„œ๋ฒ„์˜ ํ˜ธ์ŠคํŠธ ์ด๋ฆ„์„ ์ง€์ •ํ•˜๋„๋ก ํ•˜์—ฌ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์ ‘์†ํ•  ์›น์‚ฌ์ดํŠธ์— ํ•„์š”ํ•œ ์ธ์ฆ์„œ๋ฅผ ๋กœ๋“œํ•ด์ค€๋‹ค. ์ด ํ”„๋กœํ† ์ฝœ์€ ALB์™€ NLB ๊ทธ๋ฆฌ๊ณ  CloundFront์—์„œ๋งŒ ๋™์ž‘ํ•œ๋‹ค. ์•„๋ž˜ ์ด๋ฏธ์ง€์™€ ๊ฐ™์ด ALB๊ฐ€ ๋‘ ๊ฐœ์˜ SSL ์ธ์ฆ์„œ๋ฅผ ๊ฐ–๊ณ  ์žˆ์„ ๋•Œ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์š”์ฒญํ•œ ์ฃผ์†Œ ์ด๋ฆ„์„ ํŒŒ์•…ํ•˜์—ฌ  ํ•ด๋‹นํ•˜๋Š” SSL ์ธ์ฆ์„œ๋ฅผ ์ธ์ฆํ•ด์ค„ ๊ฒƒ์ด๋‹ค.

 

๐Ÿ“Œ SSL ์ธ์ฆํ•˜๋Š” ๋ฒ•

 

SSL ์ธ์ฆ์„œ๋ฅผ ๋ฐœ๊ธ‰ ๋ฐ›์€ ํ›„์— ๊ณผ์ •๋งŒ ์„œ์ˆ ํ•˜๋„๋ก ํ•˜๊ฒ ๋‹ค. ์šฐ์„  ๋กœ๋“œ ๋ฐธ๋Ÿฐ์„œ์— ๋“ค์–ด๊ฐ€ SSL ์ธ์ฆ ๋ฐ›์„ ๋กœ๋“œ ๋ฐธ๋Ÿฐ๋ฅผ ์„ ํƒํ•ด์ค€ ํ›„ ๋ฆฌ์Šค๋„ˆ ๋ฐ ๊ทœ์น™์— ๋“ค์–ด๊ฐ€ ๋ฆฌ์Šค๋„ˆ๋ฅผ ์ถ”๊ฐ€ํ•ด์ค€๋‹ค. 

 

 

 

๋ฆฌ์Šค๋„ˆ์— HTTPS ๋ฅผ ์ถ”๊ฐ€ํ•ด ์ค€ ํ›„ ์˜ต์…˜์„ ์ด๋ฏธ์ง€์™€ ๊ฐ™์ด ๋งž์ถฐ์ค€๋‹ค. (์—ฌ๊ธฐ์„œ ๋ฆฌ์Šค๋„ˆ๋Š” ํด๋ผ์ด์–ธํŠธ์—์„œ ๋กœ๋“œ ๋ฐธ๋Ÿฐ์„œ์—๊ฒŒ ์š”์ฒญํ•˜๋Š” ํ†ต์‹  ์ฃผ์ฒด๋ฅผ ์˜๋ฏธํ•œ๋‹ค.) ์ค‘์š”ํ•œ๊ฑด ๋กœ๋“œ ๋ฐธ๋Ÿฐ์„œ์— ๋ณด์•ˆ ๊ทธ๋ฃน์˜ ์ธ๋ฐ”์šด๋“œ ๋ฃฐ์€ HTTPS ๋งŒ์˜ ํ†ต์‹ ์„ ํ—ˆ์šฉํ•ด์•ผํ•˜๊ณ  ๋Œ€์ƒ ๊ทธ๋ฃน์ธ EC2 ์ธ์Šคํ„ด์Šค ๋ฌถ์Œ๋“ค์—๊ฒ  HTTP ํฌํŠธ๋ฅผ ํ—ˆ๊ฐ€ํ•˜๊ฒŒ ๋” ํ•ด์•ผํ•œ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค.

์ถ”๊ฐ€๋กœ ๋Œ€์ƒ ๊ทธ๋ฃน์˜ HTTP ํ†ต์‹  ํฌํŠธ์ธ 80ํฌํŠธ์˜ ์†Œ์Šค์—์„œ๋Š” 0.0.0.0/0 ์ด ์•„๋‹Œ  ALB์˜ ๋ณด์•ˆ ๊ทธ๋ฃน์„ ํ†ตํ•ด์„œ๋งŒ ๋“ค์–ด์˜ค๊ฒŒํ•ด์•ผํ•œ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. ์ด๋ ‡๊ฒŒํ•˜๋ฉด ์œ ์ €๋“ค์€ ๋กœ๋“œ ๋ฐธ๋Ÿฐ์„œ๋ฅผ ์šฐํšŒํ•œ ํŠธ๋ž˜ํ”ฝ์œผ๋กœ๋Š” ์ ‘๊ทผํ•˜์ง€ ๋ชปํ•  ๊ฒƒ์ด๋‹ค.

 

 

 

๋ณด์•ˆ ๋ฆฌ์Šค๋„ˆ ์„ค์ •๋„ ์•„๋ž˜์™€ ๊ฐ™์ด ์˜ต์…˜์„ ๋งž์ถฐ์ค€๋‹ค. ์ €์žฅํ•˜์˜€๋˜ ์ธ์ฆ์„œ๋ฅผ ACM ์— ๋„ฃ์–ด์ฃผ์—ˆ๋‹ค๋ฉด ์ธ์ฆ์„œ๋ฅผ ์„ ํƒํ•ด์ฃผ๊ณ  ์ถ”๊ฐ€ ํ•ด์ฃผ๋ฉด ์„ฑ๊ณต์ ์œผ๋กœ SSL ์ธ์ฆ์„ ๋งˆ์น  ์ˆ˜ ์žˆ๋‹ค.

 

๐Ÿ“Œ ์—ฐ๊ฒฐ ๋“œ๋ ˆ์ด๋‹์ด๋ž€ .. ? (Connection Draining)

 

์ธ์Šคํ„ด์Šค๊ฐ€ ๋“ฑ๋ก ์ทจ์†Œ, ํ˜น์€ ๋น„์ •์ƒ์ธ ์ƒํƒœ์— ์žˆ์„ ๋•Œ ์ธ์Šคํ„ด์Šค์— ์–ด๋А ์ •๋„์˜ ์‹œ๊ฐ„์„ ์ฃผ์–ด ์ธ-ํ”Œ๋ผ์ดํŠธ ์š”์ฒญ, ์ฆ‰ ํ™œ์„ฑ๋œ ์š”์ฒญ์„ ์™„๋ฃŒํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ๊ธฐ๋Šฅ์œผ๋กœ ์ธ์Šคํ„ด์Šค๊ฐ€ ์—ฐ๊ฒฐ ๋“œ๋ ˆ์ด๋‹์ด ๋˜๋ฉด ELB๋Š” ๋“ฑ๋ก ์ทจ์†Œ ์ค‘์ธ EC2 ์ธ์Šคํ„ด์Šค๋กœ ์ƒˆ๋กœ์šด ์š”์ฒญ์„ ๋ณด๋‚ด์ง€ ์•Š๋Š”๋‹ค. 

์ด๋ฏธ์ง€ ์ฒ˜๋Ÿผ ํ•˜๋‚˜์˜ ์ธ์Šคํ„ด์Šค๊ฐ€ ๋“œ๋ ˆ์ด๋‹ ๋ชจ๋“œ์ผ ๋•Œ ๊ทธ๋Ÿผ EC2 ์ธ์Šคํ„ด์Šค์— ์ด๋ฏธ ์—ฐ๊ฒฐ๋œ ์œ ์ €๋Š” ์ถฉ๋ถ„ํ•œ ๋“œ๋ ˆ์ด๋‹ ์‹œ๊ฐ„์„ ์–ป๊ฒŒ๋  ๊ฒƒ์ด๊ณ   ๊ธฐ์กด ์—ฐ๊ฒฐ ๋ฐ ๊ธฐ์กด ์š”์ฒญ์„ ์™„๋ฃŒํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ž‘์—…์ด ๋๋‚˜๋ฉด ๋ชจ๋“  ์—ฐ๊ฒฐ์ด ์ •์ง€๋œ๋‹ค. ๋งŒ์•ฝ ์ƒˆ๋กœ์šด ์œ ์ €๊ฐ€ ELB์— ์—ฐ๊ฒฐํ•˜๋ ค๊ณ  ํ•˜๋ฉด ๋“œ๋ ˆ์ด๋‹ ์ƒํƒœ๊ฐ€ ์•„๋‹Œ ๋‹ค๋ฅธ EC2 ์ธ์Šคํ„ด์Šค์™€๋งŒ ์—ฐ๊ฒฐ์ด ๋  ๊ฒƒ์ด๋‹ค.  ์—ฐ๊ฒฐ ๋“œ๋ ˆ์ด๋‹์€ 1๋ถ€ํ„ฐ 3,600 ์ดˆ ์‚ฌ์ด์˜ ๊ฐ’์œผ๋กœ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ๊ธฐ๋ณธ์ ์œผ๋กœ๋Š” 300์ดˆ, ์ฆ‰ 5๋ถ„์ด๋‹ค.