๐ AWS Auto Scaling ์ด๋?
Auto Scaling์ ํฌ๊ธฐ ์กฐ์ ๊ฐ๋ฅํ AWS ๋ฆฌ์์ค์ ๋ํ ์๋ ํฌ๊ธฐ ์กฐ์ ์ ์ ์ดํ ์ ์๊ฒ ํด์ฃผ๋ ์๋น์ค์ด๋ค.
๋ฆฌ์์ค์ ๊ฐ์๋ฅผ ๋๋ฆฌ๊ฑฐ๋ ์ค์ด๋ Scale In & Out ๋ฐฉ์์ ํฌ๊ธฐ ์กฐ์ ์ ์ง์ํ๋ค.
์ฐ๋ฆฌ๋ ์ด ์ค์์ ์ ์ผ ์น์ํ EC2 Auto Scaling์ ๋ํด ์์๋ณด๋ ค๊ณ ํ๋ค.
EC2 Auto Scaling์ ๊ตฌ์ฑ์์๋ ๋ค์๊ณผ ๊ฐ๋ค.
- Auto Scaling Groups (๊ทธ๋ฃน)
์๋ ํฌ๊ธฐ ์กฐ์ ๋ฐ ๊ด๋ฆฌ๋ฅผ ์ํ ๋ ผ๋ฆฌ์ ์ธ EC2 ์ธ์คํด์ค ๊ทธ๋ฃน์ด๋ค. - Launch Templates (์์ ํ
ํ๋ฆฟ)
Auto Scaling์์ ์ธ์คํด์ค๋ฅผ ์์ํ๋๋ฐ ์ฌ์ฉํ๋ ํ ํ๋ฆฟ์ด๋ค.
๋๊ฐ์ ํ๊ฒฝ์ ์ธ์คํด์ค๋ฅผ ๋ณต์ ํ๊ธฐ ์ํจ์ด๋ค. - Launch Configurations (์กฐ์ ์ต์
)
Auto Scaling Group์ ์กฐ์ ํ๋ ์ต์ ์ด๋ค.
์๋ ์กฐ์ , ์ผ์ ๊ธฐ๋ฐ ์กฐ์ , ์จ๋๋งจ๋ ๊ธฐ๋ฐ ์กฐ์ , ์์ธก ์กฐ์ ์ด ์๋ค.
์ด๋ ๊ฒ๋ง ๋ณด๋ฉด ์ดํด๊ฐ ์ ๊ฐ์ง ์์ ํ ๋ ๊ทธ๋ฆผ์ ๋ณด๋ฉด์ ๋์ ๋ฐฉ์์ ์ดํดํด๋ณด์.
Auto Scaling์ ๊ทธ๋ฃน์ ์ต์ ์ธ์คํด์ค ์์ ์ต๋ ์ธ์คํด์ค ์, ์ํ๋ ์ธ์คํด์ค ์๋ฅผ ์ค์ ํ์ฌ ๊ฐ์ฉํ ์ธ์คํด์ค ๊ฐ์๋ฅผ ์ ์ ํ๊ฒ ์ ์งํ๋ค. ์๋ฅผ ๋ค์ด, ์ฌ์ง์์์ฒ๋ผ ์ต์ ์ธ์คํด์ค ์๋ฅผ 1, ์ต๋ ์ธ์คํด์ค ์๋ฅผ 4, ์ํ๋ ์ธ์คํด์ค ์๋ฅผ 2๋ก ์ค์ ํ๋ค๊ณ ๊ฐ์ ํด๋ณด์. Auto Scaling์ ํ์์์๋ 2๊ฐ์ ์ธ์คํด์ค๋ฅผ ์ ์งํ๊ณ , ๋ถํ๊ฐ ๋์ด๋ฌ์ ๋ ์ต๋ 4๊ฐ๊น์ง ์ธ์คํด์ค๋ฅผ ๋์ธ ์ ์๋ค. ๋ฐ๋๋ก ๋ถํ๊ฐ ์ค์ด๋ค๋ฉด ์ต์ 1๊ฐ๊น์ง ์ธ์คํด์ค ์๋ฅผ ์ค์ผ ์ ์๋ค. ๋ํ ์ฅ์ ๊ฐ ๋ฐ์ํ์ฌ ํ๋์ ์ธ์คํด์ค๊ฐ ์ฃฝ์๋ค๋ฉด, ์ด๋ฅผ ๊ฐ์งํ์ฌ ์๋ก์ด ์ธ์คํด์ค๋ฅผ ์์ํด ์ํ๋ ์ธ์คํด์ค ๊ฐ์๋ฅผ ์ ์ง์์ผ์ค๋ค. ์ฌ๊ธฐ์ ์๋ก์ด ์ธ์คํด์ค๋ฅผ ์์ํ ๋ ์ฌ์ฉํ๋ ๊ฒ์ด ์์ ํ ํ๋ฆฟ์ด๋ค. ์๋ฅผ ๋ค๋ฉด, ์ด์ EC2์์ ์ ํ๋ฆฌ์ผ์ด์ ์คํ์ ํ์ํ ํ๊ฒฝ์ ์ธํ ํด๋ ์ด๋ฏธ์ง๋ฅผ ์์ ํ ํ๋ฆฟ์ผ๋ก ๋ฑ๋กํด ๋์ผํ ํ๊ฒฝ์ EC2๊ฐ ์์๋๋๋ก ํด์ค ์ ์๋ค. ์์ ํ ํ๋ฆฟ์ ์์ ํ๋ ๊ฒ์ด ๋ถ๊ฐ๋ฅํ๋ฐ, ๋์ ๋ฒ์ ๊ด๋ฆฌ๋ฅผ ์ง์ํ๋ค. ๋ง์ง๋ง ๊ตฌ์ฑ์์์ธ ์กฐ์ ์ต์ ์ EC2 ์ธ์คํด์ค๋ฅผ ์ด๋ค ์ํฉ์์ ๋๋ฆฌ๊ณ ์ค์ผ์ง ๊ฒฐ์ ํ๋ ์ ์ฑ ์ด๋ผ๊ณ ๋ณด๋ฉด ๋๋ค. ํน์ ๋ ์ง๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์ค์ ํ ์๋ ์๊ณ , CPU ์ฌ์ฉ๋ฅ ์ ๊ธฐ์ค์ผ๋ก ์ค์ ํ ์๋ ์๋ค.
AWS Auto Scaling์ ์ฌ์ฉํ๋ฉด ๋ค์๊ณผ ๊ฐ์ ์ด์ ์ด ์๋ค.
- ๋น์ฉ ์ ๊ฐ
ํ์์ ๋ฐ๋ผ ์ฉ๋์ ๋์ ์ผ๋ก ๋๋ฆฌ๊ฑฐ๋ ์ค์ผ ์ ์๊ณ , ์ฌ์ฉํ ๋งํผ๋ง ๋น์ฉ์ ์ง๋ถํ๋ฏ๋ก ๋น์ฉ์ด ์ ๊ฐ๋๋ค. - ๋ด๊ฒฐํจ์ฑ ํฅ์
์ธ์คํด์ค๊ฐ ๋น์ ์ ์ํ์ผ ๋, ์ด๋ฅผ ์ข ๋ฃํ๊ณ ์๋ก์ด ์ธ์คํด์ค๋ฅผ ์์ํด์ค๋ค.
ํ๋์ ๊ฐ์ฉ์์ญ์ด ๋ถ๊ฐ ์ํ๊ฐ ๋๋ฉด ๋ค๋ฅธ ๊ฐ์ฉ์์ญ์์ ์๋ก์ด ์ธ์คํด์ค๋ฅผ ์์ํด์ค๋ค. - ๊ฐ์ฉ์ฑ ํฅ์
ํ์ฌ ํธ๋ํฝ ์๊ตฌ๋ฅผ ์ฒ๋ฆฌํ ์ ์๋ ์ ์ ์ฉ๋์ ๊ฐ์ถ๋๋ก ๋๋๋ค.
๊ฐ์ฉ ์์ญ ์ ๋ฐ์ ์ธ์คํด์ค๋ฅผ ๋ถ์ฐ์์ผ ๋๋๋ค.
๊ทธ๋ผ ์ด์ Auto Scaling๊ณผ ํจ๊ป ์ฌ์ฉํ๋ Elastic Load Balancing์ ๋ํด ์์๋ณด์.
๐ ELB(Elastic Load Balancing)์ด๋?
ํธ๋ํฝ์ ์ฌ๋ฌ ๋์์ ์๋์ผ๋ก ๋ถ์ฐ์์ผ์ฃผ๋ ์๋น์ค์ด๋ค.
๋ก๋๋ฐธ๋ฐ์ฑ์ ๋ค๋ค ์๋ค์ํผ ์ฌ๋ฌ ๋ฆฌ์์ค์ ๋ถํ๋ฅผ ๋ถ์ฐ์์ผ์ฃผ๋ ๊ธฐ์ ๋ก, ๋ถํ ๋ถ์ฐ ์ฒ๋ฆฌ์ ์ฌ๋ฌ ์ธ์คํด์ค๋ฅผ ํ๋์ ์๋ํฌ์ธํธ๋ก ๋ฌถ์ด์ฃผ๋ ๊ธฐ๋ฅ์ ํ๋ค. ๋ฐ๋ผ์ Auto Scaling๊ณผ ํจ๊ป ์ฌ์ฉํ๋ ๊ฒ์ด ์ผ๋ฐ์ ์ด๋ค.
ELB๋ ๋ก๋๋ฐธ๋ฐ์, ๋ฆฌ์ค๋, ๋์ ๊ทธ๋ฃน์ผ๋ก ๊ตฌ์ฑ๋๋ค.
- Load Balancer(๋ก๋๋ฐธ๋ฐ์)
ํด๋ผ์ด์ธํธ์ ๋ํ ๋จ์ผ ์ ์ ์ญํ ์ ์ํํ๊ณ , ํธ๋ํฝ์ ๋ถ์ฐ์ํจ๋ค. - Listener(๋ฆฌ์ค๋)
๊ตฌ์ฑํ ํ๋กํ ์ฝ ๋ฐ ํฌํธ๋ฅผ ์ฌ์ฉํด ํด๋ผ์ด์ธํธ์ ์ฐ๊ฒฐ ์์ฒญ์ ํ์ธํ๊ณ , ์์ฒญ์ ๋์ ๊ทธ๋ฃน์ ์ ๋ฌํ๋ค. - Target Group(๋์ ๊ทธ๋ฃน)
์์ฒญ์ ๋ถ์ฐ, ์ ๋ฌํ ๋ฆฌ์์ค์ ์งํฉ์ผ๋ก, ๋์ ๊ทธ๋ฃน ๋ด ๋ฆฌ์์ค๋ค์ ํฌ์ค ์ฒดํฌ(Heath Check)๋ก ์ง์์ ์ธ ์ํ ํ์ธ์ ๋ฐ๋๋ค.
ELB์ ์ข ๋ฅ์๋ ๋ค์๊ณผ ๊ฐ์ ๊ฒ๋ค์ด ์๋ค.
- Application Load Balancer
- Application Layer์์ ์๋
- HTTP/HTTPS ํค๋ ์ ๋ณด(Path)๋ฅผ ์ด์ฉํด ๋ถํ ๋ถ์ฐ
(ex. /user -> ๋์๊ทธ๋ฃนA, /shop -> ๋์๊ทธ๋ฃนB๋ก ๋ผ์ฐํ )
- ํฌํธ์ ๋ฐ๋ผ ๋ค๋ฅธ ๋์๊ทธ๋ฃน์ผ๋ก ๋งคํ ๊ฐ๋ฅ
- DNS Name ์ด์ฉ (IP์ฃผ์ ์ฌ์ฉ ๋ถ๊ฐ)
- SSL ์ ์ฉ ๊ฐ๋ฅ - Network Load Balancer
- Transport Layer์์ ์๋
- TCP/UDP ์์ฒญ์ ๋ฐ์
- ALB๋ณด๋ค ์ฑ๋ฅ์ด ๋ ๋น ๋ฆ
- IP ๊ณ ์ ๊ฐ๋ฅ
- SSL ์ ์ฉ ๋ถ๊ฐ๋ฅ - Gateway Load Balancer
- Network Layer์์ ์๋
- ๋ฐฉํ๋ฒฝ, ์นจ์ ํ์ง ๋ฐ ๋ฐฉ์ง ์์คํ , ์ฌ์ธต ํจํท ๊ฒ์ฌ ๋ฑ์ ์ฐ์
ELB๋ฅผ ์ฌ์ฉํ๋ฉด ๋ค์๊ณผ ๊ฐ์ ์ด์ ์ด ์๋ค.
- ๊ฐ์ฉ์ฑ๊ณผ ๋ด๊ฒฐํจ์ฑ ํฅ์
- ์ ํ๋ฆฌ์ผ์ด์ ํ๋ฆ์ ๋ฐฉํดํ์ง ์๊ณ ๋ฆฌ์์ค ์ถ๊ฐ/์ ๊ฑฐ ๊ฐ๋ฅ
- ๋ฆฌ์์ค ์ํ ๋ชจ๋ํฐ๋ง ๊ฐ๋ฅ (์ํ ํ์ธ)
์ฌ๊ธฐ๊น์ง ๊ฐ๋จํ๊ฒ Auto Scaling๊ณผ ELB์ ๋ํด ์์๋ณด์๋ค.
์์ธํ ๋ด์ฉ์ ๊ณต์ ๋ฌธ์๋ฅผ ์ฐธ๊ณ ํ๋ฉด ๋ ์ข์ ๊ฒ ๊ฐ๋ค.
์ค์ต์ 2ํธ์์ ์งํํ๋ค!
๐ ์ฐธ๊ณ ์๋ฃ