Cloud
4 posts
Load Balancer๋ž€? Feat. AWS

๋“ค์–ด๊ฐ€๊ธฐ์— ์•ž์„œ ์ตœ๊ทผ์— BOAZ ๋™์•„๋ฆฌ์—์„œ Oauto2์™€ goole calender๋ฅผ ์ด์šฉํ•ด์„œ ์›น ์„œ๋น„์Šค๋ฅผ ๋งŒ๋“œ๋Š” ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๋Š”๋ฐ(๊ณ„ํš์— ์ „ํ˜€์—†๋˜ ๋ฆฌ์•กํŠธ๊นŒ์ง€ ์จ๋ณด๋Š”์ค‘๐Ÿฅฒ) ์ „๋ฐ˜์ ์ธ ์ธํ”„๋ผ ๊ตฌ์„ฑ์„ ๋‚ด๊ฐ€ ๋งก์•˜๋‹ค. ์ด๋•Œ, ๋„๋ฉ”์ธ์„ AWS EC2์— ๋“ฑ๋กํ•˜๋Š” ๊ณผ์ •์—์„œ ๋กœ๋“œ๋ฐธ๋Ÿฐ์„œ๋ฅผ ์‚ฌ์šฉํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค. ALB ๋กœ๋“œ ๋ฐธ๋Ÿฐ์„œ์— SSL ์ธ์ฆ์„ ์ ์šฉํ•˜๋ฉด ๊ฐ Ec2 ์ธ์Šคํ„ด์Šค ๋งˆ๋‹ค SSL์„ ์ฒ˜๋ฆฌํ•˜์ง€ ์•Š์•„๋„ HTTPS ํŠธ๋ž˜ํ”ฝ์„ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๊ธฐ์— ๋ฐ˜๋“œ์‹œ ํ•„์š”ํ•œ ๋ถ€๋ถ„์ด์—ˆ๋‹ค. ๊ทธ ๊ณผ์ •์—์„œ ๋กœ๋“œ ๋ฐธ๋Ÿฐ์„œ๋ฅผ ๋‹จ์ˆœํžˆ โ€œ๊ทธ๋ƒฅ ๋ถ€ํ•˜๋ถ„์‚ฐ ์•„๋‹˜?โ€์œผ๋กœ ์•Œ๊ณ  ์žˆ๋˜ ๋‚˜์—๊ฒŒ ๊ฐœ๋…์ •๋ฆฌ๊ฐ€ ๊ผญ ํ•„์š”ํ•œ ๋ถ€๋ถ„์ด๋ผ ์ด๋ฒˆ ๊ธ€์„ ์ž‘์„ฑํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค. ๊ทธ๋Ÿผ ์‹œ์ž‘ํ•ด๋ณด์ž ์‹œ์ž‘ํ•ด๋ณด์ž Core ๊ธฐ๋ณธ์ ์œผ๋กœ ๋กœ๋“œ๋ฐธ๋Ÿฐ์„œ๋Š” Scale out์—์„œ ์‚ฌ์šฉ๋œ๋‹ค. ์„œ๋น„์Šค๋Š” ์„ฑ์žฅํ•˜๋Š”๋ฐ ๋Š˜์–ด๋‚˜๋Š” ํŠธ๋ž˜ํ”ฝ์„ ์„œ๋ฒ„๊ฐ€ ๊ฐ๋‹นํ•  ์ˆ˜ ์—†์„๋•Œ ์„œ๋ฒ„๋ฅผ ์ฆ์„คํ•˜๋Š”๋ฐ ์ด ๊ณผ์ •์—์„œ ๊ฐ ์„œ๋ฒ„์— ๊ฑธ๋ฆฌ๋Š” ๋ถ€ํ•˜๋ฅผ ๊ณ ๋ฅด๊ฒŒ ๋‚˜๋ˆ„๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋กœ๋“œ๋ฐธ๋Ÿฐ์‹ฑ์ด ํ•„์ˆ˜์ ์œผ๋กœ ๋™๋ฐ˜๋˜์–ด์•ผ ํ•œ๋‹ค. ์ฆ‰ ๋‹ค์–‘ํ•œ ๊ณณ์—์„œ ๋“ค์–ด์˜ค๋Š” โ€ฆ

Implementing CI/CD with Github Actions CI + AWS CodeDeploy

๋“ค์–ด๊ฐ€๊ธฐ์— ์•ž์„œ ์ด๋ฒˆ์— AWS EC2๋ฅผ ์ด์šฉํ•ด NAT instance๋ฅผ ํ™œ์šฉํ•ด kafka broker๋ฅผ ๊ตฌ์ถ•ํ–ˆ๋‹ค. ์ด์ œ producer๋ฅผ ์‹คํ–‰ํ•˜๋ฉด ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ์นดํ”„์นด๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.(๋ฆฌ์†Œ์Šค ๋น„์šฉ ์ด์Šˆ๋กœ ํ”„๋กœ๋“€์„œ ์„œ๋ฒ„๋ฅผ ๋”ฐ๋กœ ๋ถ„๋ฆฌํ•˜์ง€ ์•Š์•˜๋‹ค.ใ…Žใ…Ž) ๋‹ค๋งŒ producer๋Š” ์•„์ง ๋ณธ๊ฒฉ์ ์œผ๋กœ ๊ฐœ๋ฐœํ•œ ์ƒํƒœ๊ฐ€ ์•„๋‹๋ฟ๋”๋Ÿฌ ๋‚˜์ค‘์— ๋Œ€์‹œ๋ณด๋“œ๋ฅผ ๋ฐฐํฌํ•  ๋•Œ producer๋ฅผ ์ง€์†์ ์œผ๋กœ ์ˆ˜์ •ํ•ด์•ผ ํ•œ๋‹ค. ๋•Œ๋ฌธ์— ๊ณ„์†ํ•ด์„œ TEST๋ฅผ ํ•ด์•ผ ํ•˜๋Š”๋ฐ ๊ทธ ๊ณผ์ •์ด ์—ฌ๊ฐ„ ๋ถˆํŽธํ•œ๊ฒŒ ์•„๋‹ˆ๋‹ค. ๋งค๋ฒˆ Ec2 ํ‚ค๊ณ  ์ ‘์†ํ•ด์„œ ์ฃผํ‚คํผ๋ž‘ ์นดํ”„์นด ์˜ฌ๋ฆฌ๊ณ โ€ฆ ์•„๋ฌดํŠผ ์ƒ๊ฐ๋ณด๋‹ค ๋…ธ๋ ฅ์„ ํ•„์š”๋กœ ํ•œ๋‹ค. ๋˜ Github์™€ ๊ฐ™์ด producer์˜ ๋ฒ„์ „์„ ๊ด€๋ฆฌํ•˜๊ณ  ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค์—๊ฒŒ ๊ณต์œ ๋„ ์šฉ์ดํ•˜๊ฒŒ ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์‘๋‹น ๊ตฌ์ถ•ํ•ด์•ผํ•  ๊ฒƒ์ด ์žˆ๋‹ค. ๊ทธ๊ฒƒ์ด ๋ฐ”๋กœ.. CI/CD๋‹ค!! Devops์˜ ๊ธฐ๋ณธ ์†Œ์–‘์ด์ž DE๋ผ๋ฉด ๋‹น์—ฐํžˆ ์•Œ์•„์•ผ ํ•˜๋Š” CI/CD๋ฅผ ๊ตฌํ˜„ํ•ด๋ณด๊ธฐ๋กœ ํ–ˆ๋‹ค. ๋‹คํ–‰ํžˆ๋„ ํ•™๊ต์—์„œ ์  ํ‚จ์Šค๋ฅผ ์ด์šฉํ•œ CI/CD ๊ตฌํ˜„ ์ˆ˜์—…์„ ๋“ค์—ˆ๊ธฐ์— ๊ฐœ๋… ์ •๋„๋Š” ๊ฟฐ๊ณ  ์žˆ์—ˆ๋‹คโ€ฆ

AWS - jammy InRelease & 101 Network is unreachable ํ•ด๊ฒฐํ•˜๊ธฐ

AWS - jammy InRelease & 101: Network is unreachable jammy InRelease ์˜ค๋ฅ˜ ์นดํ”„์นด ๋ธŒ๋กœ์ปค Ubuntu ์„œ๋ฒ„์— java๋ฅผ ์„ค์น˜ํ•˜๋ ค๊ณ  ํ•˜๋Š”๋ฐ ์•„๋ž˜์™€ ๊ฐ™์€ ๋ฌธ๊ตฌ๊ฐ€ ๋œจ๋ฉด์„œ ๋™์ž‘์ด ๋˜์ง€ ์•Š์•˜๋‹ค. ๋ฌด์Šจ jammy๊ฐ€ inrelease๋œ ๊ฒƒ ๊ฐ™์€๋ฐ ์žฌ๋ฏธ ํ•˜๋‚˜๋„ ์—†๊ณ  ๋จธ๋ฆฌ ์•„ํ”„๋‹ค ๋‹คํ–‰ํžˆ๋„ ํ•ด๋‹น ์—๋Ÿฌ์— ๋Œ€ํ•ด์„œ๋Š” AWS์ธก์—์„œ ๋‹ต๋ณ€ ๋‹ฌ์•„์ค€ ๋ถ€๋ถ„ ์žˆ๋‹ค. ๊ณต์‹ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ• ๋Œ€์ถฉ ํ•ด์„์„ ๋ณด๋ฉด ์•„๋ž˜์˜ ํฌ์ธํŠธ๋“ค์„ ๋‹ค์‹œ ์ฒดํฌํ•ด๋ด๋ผ ๊ฐ™์€๋ฐ ํ•ด์„ํ•ด๋ณด๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. ํ˜„์žฌ EC2๊ฐ€ ์ œ๋Œ€๋กœ ์ž‘๋™ํ•˜๋Š” ๋‹ค๋ฅธ EC2๋“ค๊ณผ ๋™์ผํ•œ VPC ๋ฐ ์„œ๋ธŒ๋„ท์— ๋ฐฐํฌ๋˜์—ˆ๋Š”๊ฐ€? ๊ทธ๊ฒŒ ์•„๋‹ˆ๋ผ๋ฉด VPC๊ฐ€ ์ธํ„ฐ๋„ท ๊ฒŒ์ดํŠธ์›จ์ด๋กœ ์ธํ„ฐ๋„ท์— ์ ‘๊ทผ์ด ํ—ˆ์šฉ๋˜์–ด ์žˆ๋Š”๊ฐ€? ์„œ๋ธŒ๋„ท์ด public์ด๋ผ๋ฉด ์ธํ„ฐ๋„ท ๋ฐ”์šด๋“œ ํŠธ๋ ˆํ”ฝ์„ ์ธํ„ฐ๋„ท ๊ฒŒ์ดํŠธ ์›จ์ด๋กœ ๋ผ์šฐํŒ…ํ•˜๋Š” ๋ผ์šฐํŒ… ํ…Œ์ด๋ธ”์ด ์žˆ๋Š”๊ฐ€? ์„œ๋ธŒ๋„ท์ด private์ด๋ผ๋ฉด ์ธํ„ฐ๋„ท ๋ฐ”์šด๋“œ ํŠธ๋ž˜ํ”ฝ์„ ๊ณต์šฉ ์„œ๋ธŒ๋„ท์˜ NAT ๊ฒŒ์ดํŠธ ์œ„์—์ด๋กœ ๋ผ์šฐํŒ…ํ•˜๋Š” ๋ผ์šฐํŒ… ํ…Œ์ด๋ธ”์ด ์žˆ๋Š”๊ฐ€? ์ฒดํฌ๋ฆฌ์ŠคํŠธโ€ฆ

AWS NAT instance๋ฅผ ํ™œ์šฉํ•œ ๋น„์šฉ์ ˆ์•ฝ

NAT ์ธํ”„๋ผ ์ด๋ฒˆ์— ์‹ค์‹œ๊ฐ„ ๋”ฐ๋ฆ‰์ด ๋Œ€์‹œ๋ณด๋“œ ์ œ์ž‘ ํ”„๋กœ์ ํŠธ์— ๋ฐ์ดํ„ฐ ์—”์ง€๋‹ˆ์–ด ๋ฐ ์ธํ”„๋ผ๋กœ ์ฐธ์—ฌํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค. ํ˜‘์—… ๋ฐ ๋ฐฐํฌ์˜ ์šฉ์ด์„ฑ ๋•Œ๋ฌธ์— ํด๋ผ์šฐ๋“œ๋ฅผ ์ด์šฉํ•˜๊ธฐ๋กœ ๊ฒฐ์ •์ด ๋‚ฌ๊ณ  AWS์— EC2์— ์นดํ”„์นด ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ๊ตฌ์ถ•ํ•˜๊ณ  ํ”„๋กœ๋“€์„œ๋ฅผ ๊ฐœ๋ฐœํ•˜๊ธฐ๋กœ ํ•˜์˜€๋‹ค. AWS๋ฅผ ์ด์šฉํ•œ ํ˜‘์—…์€ ์ฒ˜์Œ์ด๊ธฐ์— ์„ธ์„ธํ•˜๊ฒŒ ์‚ฌ์ „์กฐ์‚ฌ๋ฅผ ํ–ˆ๋Š”๋ฐ ์ฒซ์งธ๋กœ ์•Œ๊ฒŒ ๋œ ์‚ฌ์‹ค์€ AWS์—์„œ ๋„คํŠธ์›Œํฌ๋ฅผ ์„ค๊ณ„ํ• ๋•Œ NAT์˜ ์‚ฌ์šฉ์€ ํ•„์ˆ˜์ ์ด๋ผ๋Š” ๊ฒƒ์ด๋‹ค. ๋ณด์•ˆ์ƒ ์นดํ”„์นด ํด๋Ÿฌ์Šคํ„ฐ ์„œ๋ฒ„๋“ค์„ ์™ธ๋ถ€์—์„œ ์ ‘๊ทผํ•  ์ˆ˜ ์—†๊ฒŒ ํ•ด์•ผํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ๋•Œ๋ฌธ์— VPC ์ธํ”„๋ผ๋ฅผ ๊ตฌ์ถ•ํ• ๋•Œ Public ์„œ๋ธŒ๋„ท๊ณผ Private ์„œ๋ธŒ๋„ท์„ ๋งŒ๋“ค์–ด ๊ทธ์•ˆ์— EC2 ์ธ์Šคํ„ด์Šค๋ฅผ ๋‘๊ณ , Bastion Host๋ฅผ ํ†ตํ•ด Public ์„œ๋ธŒ๋„ท์—์„œ Priavate ์„œ๋ธŒ๋„ท์œผ๋กœ ์ ‘์†ํ•œ ํ›„, NAT Gateway๋ฅผ ํ†ตํ•ด์„œ ์™ธ๋ถ€ ์ธํ„ฐ๋„ท ์†Œ์Šค๋ฅผ ์‚ฌ์„ค๋ง์—์„œ ๋ฐ›๋Š” ์‹์œผ๋กœ ์šด์šฉ๋œ๋‹ค. ๊ทธ๋งŒํผ ์ค‘์š”ํ•œ ๊ฒƒ์œผ๋กœ ๋‹น์—ฐํžˆ AWS์—๋„ ๊ด€๋ จ ์„œ๋น„์Šค์ธ NAT Gateway๊ฐ€ ์กด์žฌํ•˜๊ณ  ๊ทธ๊ฒƒ์„ ์ด์šฉํ•ด์„œ ์†์‰ฝ๊ฒŒ ์‚ฌ์„ค๋ง โ€ฆ