ํด๋ผ์ด์ธํธ ๊ฐ๊น์ด์ ์์นํ ํ๋ก์ ์๋ฒ
ํด๋ผ์ด์ธํธ๋ฅผ ๋์ ํด ์๋ฒ์ ์์ฒญ ์ ๋ฌ
์ฃผ๋ก ์บ์ฑ์ ์ ๊ณตํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ ์ฌ์ฉ์๊ฐ ๋น ๋ฅธ ์๋น์ค ์ด์ฉ์ ํ ์ ์๋๋ก ๋์์ค
์ฅ์
์บ์ฑ์ ํตํด ๋น ๋ฅธ ์๋น์ค ์ด์ฉ ๊ฐ๋ฅ
โ ํด๋ผ์ด์ธํธ๊ฐ ์๋ฒ๊ฐ ์๋ ํ๋ก์ ์๋ฒ์ ์ํตํ๋ฉด์,
๋์ผํ ์์ฒญ์ ๋ณด๋ด๋ ๊ฒฝ์ฐ ์ฒซ ์๋ต ๊ฒฐ๊ณผ๋ฅผ ์บ์์ ์ ์ฅํด๋๊ณ ,
์ดํ์ ์ฌ์์ฒญ์ ๋ณด๋ด์ง ์์๋ ์ ์ฅํด ๋์๋ ๊ฒฐ๊ณผ๋ก ๋น ๋ฅด๊ฒ ์ ๋ฌ ๊ฐ๋ฅ
๋ณด์
โ ํด๋ผ์ด์ธํธ์ ์์ฒญ์ด ํ๋ก์ ์๋ฒ๋ฅผ ๊ฑฐ์น ํ ์๋ฒ์ ๋์ฐฉํ๊ธฐ ๋๋ฌธ์,
์๋ฒ์์ ํด๋ผ์ด์ธํธ์ IP ์ถ์ ์ ํ๋ฉด ํ๋ก์ ์๋ฒ์ IP๊ฐ ์ ๋ฌ๋จ
( ํด๋ผ์ด์ธํธ์ IP๋ฅผ ์จ๊ฒจ ๋ณด์ ๊ฐ๋ฅ )
์๋ฒ ๊ฐ๊น์ด์ ์์นํ ํ๋ก์ ์๋ฒ
์๋ฒ๋ฅผ ๋์ ํด์ ํด๋ผ์ด์ธํธ์ ์๋ต ์ ๊ณต
๋ถ์ฐ์ฒ๋ฆฌ๋ฅผ ๋ชฉ์ ์ผ๋ก ํ๊ฑฐ๋ ๋ณด์์ ์ํด ์ด์ฉ
์ฅ์
( ํ๋์ ์๋ฒ์ ๋๋ฌด ๋ง๊ฑฐ๋ ์ฆ์ ์์ฒญ์ ๋ณด๋ธ๋ค๋ฉด ์๋ฒ์๋ ๊ณผ๋ถํ์ค๋๋ฐ, ์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํ ๋ฐฉ๋ฒ๋ค์ )
๋ฌผ๋ฆฌ์ ์ผ๋ก ์๋ฒ์ ์ฌ์์ ๋์ด๋ ํ๋์จ์ด์ ์ธ ๋ฐฉ๋ฒ
๋ฐ๋๋ก ์๋ฒ์ ์ฌ์์ ๋ฎ์ถ๋ ๊ฒ์ Scale-Down
์ฅ์
๋จ์
์๋ฒ์ ์ฌ์์ ๋์ด๋๋ฐ ๊ต์ฅํ ๋์ ๋น์ฉ
ํ๋์จ์ด์ ์ ๊ทธ๋ ์ด๋์ ํ๊ณ๊ฐ ์์
์ฌ์์ ๋๋ฆฐ๋งํผ ํด๋ผ์ด์ธํธ์ ์์ฒญ์ด ๋ ๋ง์์ง๋ค๋ฉด, ์๋ฒ์ ๋ฐ์ํ๋ ๋ถํ๋ ์ฌ์ ํ ํด๊ฒฐ X
์๋ฒ์ ๊ฐฏ์๋ฅผ ๋๋ ค ํ๋์ ์๋ฒ์ ์ค ๋ถํ๋ฅผ ๋ถ์ฐ์ํค๋ ๋ฐฉ๋ฒ
โ ๋ง์ ์์ฒญ์ด ์ค๋๋ผ๋ ์ฌ๋ฌ๋์ ์๋ฒ๊ฐ ๋๋ ์ ์ฒ๋ฆฌ
์์ฒญ์ ์ฌ๋ฌ ์๋ฒ์ ๋๋ ์ฒ๋ฆฌํด์ค ์ ์๋๋ก ๊ตํต์ ๋ฆฌ ํด์ฃผ๋ ์ญํ ํ์
โ ๋ก๋ ๋ฐธ๋ฐ์ ํ์
๋ฐ๋๋ก ์๋ฒ ๊ฐ์๋ฅผ ์ค์ด๋ ๊ฒ์ Scale-In
์ฅ์
๐ก ๋ก๋ ๋ฐธ๋ฐ์ฑ
- ์ฌ๋ฌ ์๋ฒ์ ๊ตํต์ ๋ฆฌ๋ฅผ ํด์ฃผ๋ ๊ธฐ์ or ํ๋ก๊ทธ๋จ
๐ก ๋ก๋ ๋ฐธ๋ฐ์ ์ข ๋ฅ
- L2
โ ๋ฐ์ดํฐ ์ ์ก ๊ณ์ธต์์ Mac ์ฃผ์๋ฅผ ๋ฐํ์ผ๋ก ๋ก๋ ๋ฐธ๋ฐ์ฑ
โ - L3
โ ๋คํธ์ํฌ ๊ณ์ธต์์ IP ์ฃผ์๋ฅผ ๋ฐํ์ผ๋ก ๋ก๋ ๋ฐธ๋ฐ์ฑ
โ - L4
โ ์ ์ก ๊ณ์ธต์์ IP์ฃผ์์ Port๋ฅผ ๋ฐํ์ผ๋ก ๋ก๋ ๋ฐธ๋ฐ์ฑ
โ - L7
โ ์์ฉ ๊ณ์ธต์์ ํด๋ผ์ด์ธํธ์ ์์ฒญ์ ๋ฐํ์ผ๋ก ๋ก๋ ๋ฐธ๋ฐ์ฑ
Ex. ์๋ํฌ์ธํธ
๋์ ์ค์ผ์ผ๋ง
โ ์ฌ์ฉ์์ ์๊ตฌ ์์ค์ ๋ฐ๋ผ ๋ฆฌ์์ค๋ฅผ ๋์ ์ผ๋ก ์ค์ผ์ผ๋ง ๊ฐ๋ฅ
โ
โ ์ค์ผ์ผ ์
ํ ์ ์๋ ์๋ฒ์ ์ ์ ํ X
( ํ์ํ ๊ฒฝ์ฐ ์๋ฒ ๋ ๋์์ ์๋ฐฑ ~ ์๋ง ๋์ ์๋ฒ๋ก ์ฆ์ ์ค์ผ์ผ ์
๊ฐ๋ฅ )
๋ก๋ ๋ฐธ๋ฐ์ฑ
โ ๋ฆฌ์์ค๋ฅผ ๋์ ์ผ๋ก ์ค์ผ์ผ ์
ํน์ ์ค์ผ์ผ ๋ค์ด
โ
โ ๋ก๋ ๋ฐธ๋ฐ์์ ํจ๊ป ์ฌ์ฉํ์ฌ,
์ฌ์ฉ์๊ฐ ์ ์ํ ๊ท์น์ ๋ฐ๋ผ ์ํฌ๋ก๋ ํจ๊ณผ์ ์ผ๋ก ๋ถ๋ฐฐ / ๊ด๋ฆฌ ๊ฐ๋ฅ
ํ๊ฒ ํธ๋ํน
โ ์ฌ์ฉ์๋ ํน์ ํ๊ฒ์ ๋ํด์๋ง Auto Scaling ๊ฐ๋ฅ
โ
โ ์ฌ์ฉ์๊ฐ ์ค์ ํ ํ๊ฒ์ ๋ง์ถฐ EC2 ์ธ์คํด์ค์ ์ ์กฐ์
ํฌ์ค ์ฒดํฌ / ์๋ฒ ํ๋ฆฟ ๊ด๋ฆฌ
โ EC2 ์ธ์คํด์ค์ ํฌ์ค ์ฒดํฌ ์ํ๋ฅผ ๋ชจ๋ํฐ๋ง ๊ฐ๋ฅ
( ๋ชจ๋ํฐ๋ง ์ค, ํน์ ์ธ์คํด์ค์ ๋ฌธ์ ๊ฐ ๊ฐ์ง๋๋ฉด, ์๋์ผ๋ก ๋ค๋ฅธ ์ธ์คํด์ค๋ก ๊ต์ฒด )
โ
โ ์ ์ ์์ค์ ์๋ฒ ํ๋ฆฟ ์ฉ๋์ ์ ์งํ๋ ๋ฐ๋ ๋์
( ๋ชจ๋ํฐ๋ง ์ค, ํน์ ์ธ์คํด์ค๊ฐ ๋ค์ด๋๋ฉด, ์๋์ ์ฒ๋ฆฌ ์ฉ๋์ ์ ์งํ๊ธฐ ์ํด
๋ถ์กฑํ ๋งํผ์ ์๋ฒ๋ฅผ ์ถ๊ฐ๋ก ์คํ์์ผ ์๋ฒ ํ๋ฆฟ ์ ์ง )
๐ก ์๋ฒ ํ๋ฆฟ (Fleet) (feat. AWS)
โ ๋ค์์ EC2 ์๋ฒ์์ ์ ํ๋ฆฌ์ผ์ด์ ์ ํธ์คํ ํ๋ ๊ฒฝ์ฐ์, ๊ทธ EC2 ์๋ฒ๋ค์ ์งํฉ
โ๏ธ ์์ ํ ํ๋ฆฟ (Launch Configuration)
์ธ์คํด์ค์ ๋ํ ๋ชจ๋ ์ ๋ณด๋ฅผ ๋ด๊ณ ์์ ( ์ธ์คํด์ค ๊ตฌ์ฑ ํ
ํ๋ฆฟ )
Ex. AMI ์์ธ ์ ๋ณด, ์ธ์คํด์ค ํ์
, ํค ํ์ด, ์ํ๋ฆฌํฐ ๊ทธ๋ฃน ๋ฑ
์์ ํ ํ๋ฆฟ์ ํตํด ์ด๋ค ์๋ฒ๋ฅผ ์ฌ์ฉํ ์ง ๊ฒฐ์
๐ก ์์ ๊ตฌ์ฑ
- EC2 Auto Scaling์ด ์ฌ์ฉ์๋ฅผ ์ํด ์์ฑํ๋ EC2 ์ธ์คํด์ค ์ ํ์ ์ง์ ํ๋ค๋ ์ ์์ ์์ ํ ํ๋ฆฟ๊ณผ ๋น์ท
๐ก ์์ ๊ตฌ์ฑ vs ์์ ํ ํ๋ฆฟ
- ์์ ํ ํ๋ฆฟ
- ์์ ๋ถ๊ฐ
- But, ๋ฒ์ ๊ด๋ฆฌ๊ฐ ๊ฐ๋ฅํ์ฌ ์ฌ๋ฌ ํ ํ๋ฆฟ ์์ฑ ๊ฐ๋ฅ
โ - ์์ ๊ตฌ์ฑ
- ํ๋ฒ ์์ฑํ๋ฉด ๋ณ๊ฒฝ ๋ถ๊ฐ
- ์์ ๋ค์ ๋ง๋ค๊ณ ์ ๋ฐ์ดํธ ํด์ผํจ
โ
[์ฐธ๊ณ ] https://malragasi.tistory.com/22
โ๏ธ Auto Scaling ๊ทธ๋ฃน ์์ฑ
์ค์ผ์ผ ์ / ์ค์ผ์ผ ๋ค์ด ๊ท์น๋ค์ ๋ชจ์
EC2 ์ธ์คํด์ค ์์๋ถํฐ ์ญ์ ๊น์ง์ ๋ชจ๋ ๋์์ ๋ํ ๊ท์น๊ณผ ์ ์ฑ ์ ๋ด๊ณ ์์
Auto Scaling ๊ทธ๋ฃน ์์ฑ์ ์ํด ์ค์ผ์ผ๋ง ์ ์ฑ ๋ฐ ์ ํ์ ๋ํด ์ ์์งํด์ผํจ
โ๏ธ Scaling ์ ํ
์ธ์คํด์ค ๋ ๋ฒจ ์ ์ง
๊ธฐ๋ณธ ์ค์ผ์ผ๋ง ๊ณํ
ํญ์ ์คํ ์ํ๋ฅผ ์ ์งํ๊ณ ์ ํ๋ ์ธ์คํด์ค์ ์ ์ง์ ๊ฐ๋ฅ
์ผ์ ํ ์์ ์ธ์คํด์ค๊ฐ ํ์ํ ๊ฒฝ์ฐ ์ต์, ์ต๋ ๋ฐ ์ํ๋ ์ฉ๋์ ๋์ผํ ๊ฐ ์ค์ ๊ฐ๋ฅ
์๋ ์ค์ผ์ผ๋ง
๊ธฐ์กด Auto Scaling ๊ทธ๋ฃน์ ํฌ๊ธฐ๋ฅผ ์๋ ๋ณ๊ฒฝ ๊ฐ๋ฅ
์ฌ์ฉ์๊ฐ ์ง์ (์ฝ์์ด๋, API, CLI ๋ฑ์ ์ด์ฉํด) ์๋์ผ๋ก ์ธ์คํด์ค๋ฅผ ์ถ๊ฐ/์ญ์ ํด์ผํจ
ํด๋น ๋ฐฉ์์ ์ถ์ฒํ์ง ์๋ ๋ฐฉ์
์ผ์ ๋ณ ์ค์ผ์ผ๋ง
Ex. ๋ฎ ์๊ฐ๋์๋ ํธ๋ํฝ์ด ์ต๊ณ ์น์ ์ด๋ฅด๊ณ ๋ฐค ์๊ฐ๋์๋ ํธ๋ํฝ์ด ๊ฑฐ์ ์๋ค๋ฉด,
๋ฎ ์๊ฐ๋์ ์๋ฒ๋ฅผ ์ฆ์คํ๊ณ ๋ฐค ์๊ฐ๋์ ์ค์ผ์ผ ๋ค์ด ํ๋ ๊ท์น ์ถ๊ฐ
๋์ ์ค์ผ์ผ๋ง
์์ ๋ณํ์ ๋์ํ์ฌ Auto Scaling ๊ทธ๋ฃน์ ์ฉ๋์ ์กฐ์ ํ๋ ๋ฐฉ๋ฒ
CloudWatch๊ฐ ๋ชจ๋ํฐ๋ง ํ๋ ์งํ๋ฅผ ์ถ์ ํ์ฌ ๊ฒฝ๋ณด ์ํ์ผ ๋ ์ํํ ์ค์ผ์ผ๋ง ๊ท์น ์ ํจ
Ex. CPU ์ฒ๋ฆฌ ์ฉ๋์ 80% ์์ค๊น์ง ๊ธ๋ฑํ ์ํ๊ฐ 5๋ถ ์ด์ ์ง์๋ ๊ฒฝ์ฐ,
Auto Scaling์ด ์๋๋ผ ์ ์๋ฒ๋ฅผ ์ถ๊ฐ
ํญ์ ์ค์ผ์ผ ์ ๊ณผ ์ค์ผ์ผ ๋ค์ด ๋ ๊ฐ์ง์ ์ ์ฑ ๋ชจ๋ ์์ฑํด์ผ ํจ
Apache์ฌ์์ ๊ฐ๋ฐํ ์๋ธ๋ฆฟ ์ปจํ ์ด๋๋ง ์๋ ์คํ์์ค ์น ์ ํ๋ฆฌ์ผ์ด์ ์๋ฒ
์๋ฐ ์ ํ๋ฆฌ์ผ์ด์
์ ์ํ ๋ํ์ ์ธ ์คํ์์ค WAS(Web Application Server)
โ ๋น์ฉ ๋ถ๋ด X
์๋ฐ ์๋ธ๋ฆฟ ์ปจํ
์ด๋์ ๋ํ ๊ณต์ ๊ตฌํ์ฒด ( Spring Boot์ ๋ด์ฅ ์๋ฒ )
โ ๋ณ๋์ ์ค์น ํ์ X
๐ก Tomcat ์์กด์ฑ
- Intellij ๋ด์ View > Tool Windows > Gradle > Dependencies ์์ ํ์ธ ๊ฐ๋ฅ
๋ ๋ฆฝ์ ์ผ๋ก๋ ์ฌ์ฉ ๊ฐ๋ฅ / Apache ๊ฐ์ ๋ค๋ฅธ ์น ์๋ฒ์ ์ฐ๋ํ์ฌ ํจ๊ป ์ฌ์ฉ๋ ๊ฐ๋ฅ
์ดํด๋ฆฝ์ค ์ฌ๋จ์ HTTP ์๋ฒ์ด์ ์๋ฐ ์๋ธ๋ฆฟ ์ปจํ
์ด๋
( ์น ์ ํ๋ฆฌ์ผ์ด์
์๋ฒ )
Tomcat๊ณผ ๊ฐ์ด ์๋ฐ ์๋ธ๋ฆฟ ์ปจํ
์ด๋์ด์ ์๋ฒ๋ก ์ฌ์ฉ ๊ฐ๋ฅ
โ ๊ฐ๋ฐ์๊ฐ ์ํ๋ ์๋ฒ๋ฅผ ์ ํํ์ฌ ํ๋ก์ ํธ ๊ตฌ์ฑ ๊ฐ๋ฅ
2009๋
์ดํด๋ฆฝ์ค ์ฌ๋จ์ผ๋ก ์ด์ ํ๋ฉฐ ์คํ์์ค ํ๋ก์ ํธ๋ก ๊ฐ๋ฐ๋จ
ํ ์น ์ ํ๋ฆฌ์ผ์ด์
๋๋น ์ ์ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ
โ ๊ฐ๋ณ๊ณ ๋น ๋ฆ
์ ํ๋ฆฌ์ผ์ด์ ์ ๋ด์ฅ ๊ฐ๋ฅ
๊ฒฝ๋ ์น ์ ํ๋ฆฌ์ผ์ด์
โ ์ํ ์ฅ๋น, ์๊ท๋ชจ ํ๋ก๊ทธ๋จ์ ๋ ์ ํฉ
๐ก Tomcat ๋์ Jetty๋ก ๋ณ๊ฒฝํ๋ ๋ฒ
โ ์๋์ ๊ฐ์ด ๊ธฐ๋ณธ ์๋ธ๋ฆฟ ์ปจํ ์ด๋์ธ Tomcat ์์กด์ฑ์ ์ ์ธํด์ฃผ๊ณ ,
Jetty ์์กด์ฑ์ ์ถ๊ฐ !dependencies { implementation ('org.springframework.boot:spring-boot-starter-web') { exclude module: 'spring-boot-starter-tomcat' // tomcat ์์กด์ฑ ์ ์ธ } implementation ('org.springframework.boot:spring-boot-starter-jetty') // jetty ์์กด์ฑ ์ถ๊ฐ }
๊ทธ๋ฆฌ๊ณ build๋ฅผ ์งํํ๋ฉด ์๋์ ๊ฐ์ด ๋ณ๊ฒฝ๋ ๊ฑธ ๋ณผ ์ ์๋ค !
๊ฐ๋ณ๊ณ ๋์ ์ฑ๋ฅ์ ๋ณด์ด๋ ์คํ์์ค ์น ์๋ฒ ์ํํธ์จ์ด
๐ก Tomcat๊ณผ Jetty๋ ์๋ฐ ์๋ธ๋ฆฟ ์ปจํ ์ด๋ or ์น ์ ํ๋ฆฌ์ผ์ด์ ์๋ฒ
ํด๋ผ์ด์ธํธ์๊ฒ ์ ์ ๋ฆฌ์์ค๋ฅผ ๋น ๋ฅด๊ฒ ์๋ตํ๊ธฐ ์ํ ์น ์๋ฒ๋ก ์ฌ์ฉ ๊ฐ๋ฅ
ํธ๋ํฝ์ด ๋ง์ ์น ์ฌ์ดํธ์ ํ์ฅ์ฑ์ ์ํด ๊ฐ๋ฐ๋ ๊ณ ์ฑ๋ฅ ์น ์๋ฒ
๋น๋๊ธฐ ์ด๋ฒคํธ ๊ธฐ๋ฐ
โ ์ ์ ์์์ผ๋ก ๋์ ์ฑ๋ฅ / ๋์ ๋์์ฑ
๋ค์์ ํด๋ผ์ด์ธํธ ์ฐ๊ฒฐ์ ํจ์จ์ ์ผ๋ก ์ฒ๋ฆฌ ๊ฐ๋ฅ
ํด๋ผ์ด์ธํธ - ์๋ฒ ์ฌ์ด์ ์กด์ฌํ๋ ๋ฆฌ๋ฒ์ค ํ๋ก์ ์๋ฒ๋ก ์ฌ์ฉ ๊ฐ๋ฅ
Nginx๋ฅผ ํด๋ผ์ด์ธํธ์ ์๋ฒ ์ฌ์ด์ ๋ฐฐ์นํ์ฌ ๋ฌด์ค๋จ ๋ฐฐํฌ ๊ฐ๋ฅ
Nginx๋ก ํ๋ก์ ์๋ฒ ๊ตฌ์ถ ๊ฐ๋ฅ
โ ํด๋ผ์ด์ธํธ - Nginx(80๋ฒ ํฌํธ) - Spring Boot(8080๋ฒ ํฌํธ)
ํด๋ผ์ฐ๋ ๋ด ํ๋ผ์ด๋น ๊ณต๊ฐ์ ์ ๊ณตํ์ฌ,
ํด๋ผ์ฐ๋๋ฅผ Public๊ณผ Private ์์ญ์ผ๋ก ๋
ผ๋ฆฌ์ ์ผ๋ก ๋ถ๋ฆฌํ ์ ์๊ฒํ๋ ์๋น์ค
ํ์ฅ์ฑ
๋คํธ์ํฌ์ ๋ํ ์์ ํ ํต์ ๊ถ ๊ฐ์ง ์ ์์
( ์ด๊ฑฐ ์์ ์ด๋๊ฐ ๋ธ๋ก๊ทธ ์์ฑํ ๊ฑฐ ์์ )
์ปดํจํฐ ๋คํธ์ํฌ์์ ์ฅ์น๋ค์ด ์๋ก๋ฅผ ์ธ์ํ๊ณ ํต์ ์ ํ๊ธฐ ์ํด์ ์ฌ์ฉํ๋ ํน์ํ ๋ฒํธ
IPv4 / IPv6๋ก ๋๋๋ฉฐ ํผ์ฉํ์ฌ ์ฌ์ฉ
.
์ผ๋ก ๊ตฌ๋ถํ 4๊ฐ์ ์ฅํ
์ผ๋ก ์ด๋ฃจ์ด์ง
โ ๊ฐ๊ฐ Network Address
/Host Address
/Host Address
/Host Address
โ๏ธ IP Address Class
- (์ด์ ์๋) IPv4 ์ฃผ์์์ ํธ์คํธ๊ฐ ์ฐ๊ฒฐ๋์ด ์๋ ํน์ ๋คํธ์ํฌ๋ฅผ ๊ฐ๋ฆฌํค๋ 8๋นํธ์ ๋คํธ์ํฌ ์์ญ(Network Address)๊ณผ ํด๋น ๋คํธ์ํฌ ๋ด์์ ํธ์คํธ์ ์ฃผ์(Host Address)๋ฅผ ๊ฐ๋ฆฌํค๋ ๋๋จธ์ง ์์ญ์ ๊ตฌ๋ถํ๊ธฐ ์ํด ํด๋์ค(Class) ์ฌ์ฉ
โ - A, B, C, D, E์ 5๊ฐ ํด๋์ค๋ก ๋๋จ
โ
( ๊ถ๊ธํ๋ฉด ๋ ์ฐพ์๋ณด๊ธฐ )
ํด๋์ค๊ฐ ์๋ ๋๋ฉ์ธ ๊ฐ ๋ผ์ฐํ ๊ธฐ๋ฒ
1993๋ ๋์ ๋๊ธฐ ์์ํ ๊ตญ์ ํ์ค์ IP์ฃผ์ ํ ๋น ๋ฐฉ๋ฒ
IP Address Class ๋ฐฉ์์ ๋์ฒดํ ๋ฐฉ์
์ํ๋ ๋ธ๋ก๋งํผ Network Address๋ฅผ ์ง์ ํ์ฌ ์ด์ฉ ๊ฐ๋ฅ
( ๋ธ๋ก์ ์ ํด์ ธ ์์ - ๊ฒ์ํด๋ณด๊ธฐ )
Ex.
172.16.0.0 /16
์ด๋ฉด,
์ฌ๊ธฐ์/16
์ ์ฒซ 16bit๋ฅผ Network Address๋ก ์ฌ์ฉํ๋ค๋ ์๋ฏธ
โ
โ ์ด 2^16์ธ 65,536๊ฐ์ IP์ฃผ์๋ฅผ ์ฌ์ฉํ ์ ์๋ ์ปค๋ค๋ ๋คํธ์ํฌ ๋ธ๋ก์ ์ด๋ฌํ ๋ฐฉ์์ผ๋ก ํ์
์๋ธ๋คํธ์ํฌ(Subnetwork)์ ์ค์๋ง
IP ๋คํธ์ํฌ์ ๋ ผ๋ฆฌ์ ์ธ ํ์ ๋ถ๋ถ์ ๊ฐ๋ฆฌํด
์๋ธ๋ท์ ํตํด ํ๋์ ๋คํธ์ํฌ๋ฅผ ์ฌ๋ฌ ๊ฐ๋ก ๋๋ ์ ์์
VPC์ CIDR ๋ธ๋ก์ ์ด์ฉํด ์ ์
( ์ต์ ํฌ๊ธฐ์ ์๋ธ๋ท์ /28
)
VCP๋ฅผ ์ฌ์ฉํ์ฌ ํ์์ ๋ฐ๋ผ ๋ค์ํ ์๋ธ๋ท์ ์์ฑ ๊ฐ๋ฅ
ํผ๋ธ๋ฆญ ์๋ธ๋ท
โ ์ธํฐ๋ท์ ํตํด ์ฐ๊ฒฐ ํ ์ ์๋ ์๋ธ๋ท
ํ๋ผ์ด๋น ์๋ธ๋ท
โ ์ธํฐ๋ท์ ์ฐ๊ฒฐํ์ง ์๊ณ , ๋ณด์์ ์ ์งํ๋ ๋ฐฐํ์ ์ธ ์๋ธ๋ท
VPN only ์๋ธ๋ท
โ ๊ธฐ์
๋ฐ์ดํฐ ์ผํฐ์ VPC๋ฅผ ์ฐ๊ฒฐํ๋ ์๋ธ๋ท
โ ๏ธ ์๋ธ๋ท์ AZ๋น ์ต์ ํ๋๋ฅผ ์ฌ์ฉํ ์ ์๊ณ , ์ฌ๋ฌ ๊ฐ์ AZ์ ์ฐ๊ฒฐ๋๋ ์๋ธ๋ท์ ๋ง๋ค ์ X
๐ก AWS๊ฐ ํ๋ณดํ ์๋ธ๋ท ์ค ์ฒ์ ๋ค ๊ฐ์ IP์ฃผ์์ ๋ง์ง๋ง IP์ฃผ์๋ ์ธํฐ๋ท ๋คํธ์ํน์ ์ํด ์์ฝ๋์ด์์ !
Ex.10.0.0.0/24
์ฒด๊ณ์ CIDR ๋ธ๋ก์ด ์๋ ์๋ธ๋ท์์10.0.0.0
,10.0.0.1
,10.0.0.2
,10.0.0.3
,10.0.0.255
๋ฑ 5๊ฐ์ IP์ฃผ์๋ ์์ฝ ๋์ด ์์
( ํธ๋ํฝ์ ์ ์ก ๋ฐฉํฅ์ ๊ฒฐ์ ํ๋ ๋ผ์ฐํธ์ ๊ด๋ จ๋ ๊ท์น์ ๋ด์ ํ ์ด๋ธ๋ก ๋ชฉ์ ์ง๋ฅผ ํฅํ ์ต์ ์ ๊ฒฝ๋ก๋ก ๋ฐ์ดํฐ ํจํท์ ์ ์กํ๊ธฐ ์ํ ๋ชจ๋ ์ ๋ณด ๋ด๊ณ ์์ )
๋ชจ๋ ์๋ธ๋ท์ ํญ์ ๋ผ์ฐํ
ํ
์ด๋ธ์ ๊ฐ์ง
( ํ๋์ ๋ผ์ฐํ
ํ
์ด๋ธ ๊ท์น์ ์ฌ๋ฌ ๊ฐ์ ์๋ธ๋ท์ ์ฐ๊ฒฐํ๋ ๊ฒ๋ ๊ฐ๋ฅ )
Ex. ํน์ VPC์ ์๋ธ๋ท์ด ๋ผ์ฐํ ํ ์ด๋ธ์ ์ธํฐ๋ท ๊ฒ์ดํธ์จ์ด๋ฅผ ํฌํจํ๊ณ ์๋ค๋ฉด, ํด๋น ์๋ธ๋ท์ ์ธํฐ๋ท ์ก์ธ์ค ๊ถํ / ์ ๋ณด๋ฅผ ๊ฐ์ง
์๋ธ๋ท์ ์์ฑํ๊ณ ๋ณ๋์ ๋ผ์ฐํ
ํ
์ด๋ธ์ ์์ฑํ์ง ์์ผ๋ฉด
ํด๋ผ์ฐ๋๊ฐ ์๋์ผ๋ก VPC์ ๋ฉ์ธ ๋ผ์ฐํ
ํ
์ด๋ธ ์ฐ๊ฒฐํจ
โ๏ธ ๊ฒ์ดํธ์จ์ด
โ VPC์ ์ธํฐ๋ท ๊ฐ ํต์ ์ ๊ฐ๋ฅํ๊ฒ ํ๋ ๊ตฌ์ฑ์์
( ๋๋ C:\Program Files\nginx-1.22.1 ์ด ์์น์ ์ค์นํ๋ค ! )
nginx.exe
์ ์คํํ๋ฉด ์๋์ฐ๋ ๊ธฐ๋ณธ์ผ๋ก 80ํฌํธ๋ก ์ฐ๊ฒฐ์ด ๋ ๊ฒ !
( localhost:80
์ผ๋ก ์ ์ํ๋ฉด ์๋์ ๊ฐ์ ํ๋ฉด์ด ๋ํ๋จ )
nginx๋ฅผ ํ๋ก์ ์๋ฒ ์ญํ ๋ก ๋ง๋ค๊ธฐ ์ํด conf > nginx.conf ํ์ผ์
์๋์ ๊ฐ์ด 80 ํฌํธ๋ฅผ ํ๋ก์๋ก 8080 ํฌํธ๊น์ง ์ฐ๊ฒฐํ ์ ์๋๋ก ์ฝ๋ ์์ ํ ์ ์ฅ
server { listen 80; ... location / { ... proxy_pass http://localhost:8080; # ์ถ๊ฐ - ์์ฒญ์ 8080 ํฌํธ๋ก ๋๊น proxy_set_header X-Real-IP $remote_addr; # ์ถ๊ฐ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; # ์ถ๊ฐ proxy_set_header Host $http_host; # ์ถ๊ฐ } }
cmd๋ฅผ ์ด์ด์ nginx -s reload
๋ช
๋ น์ด๋ก ์ฌ์์
์ดํ localhost:80
๋ก ์ ์ํ๋ฉด ์๋์ ๊ฐ์ ํ์ด์ง๊ฐ ๋ํ๋จ !
( ์์ง 8080 ํฌํธ๊ฐ ์คํ์ค์ด ์๋๊ธฐ ๋๋ฌธ )
intellij๋ ํฐ๋ฏธ๋๋ก ํ๋ก์ ํธ๋ฅผ ๋น๋ ํ ์คํ์ํจ ํ ๋ค์ localhost:80
์ผ๋ก ๋ค์ด๊ฐ๋ฉด,
์๋์ ๊ฐ์ด 8080 ํฌํธ๋ก ์คํ์ํจ ํ๋ก์ ํธ์ ํ๋ฉด์ด ๋ํ๋ ๊ฒ !
'nginx -s stop` ๋ช ๋ น์ด๋ก nignx ์ข ๋ฃ ๊ฐ๋ฅ
[์ฐธ๊ณ ] https://docs.nginx.com/nginx/admin-guide/load-balancer/http-load-balancer/
ํ ํ๋ก์ ํธ๋ 8080 ํฌํธ / ๋ค๋ฅธ ํ๋์ ํ๋ก์ ํธ๋ 8081 ํ๋ก์ ํธ๋ก ๋น๋ ํ ์คํํ๊ณ
์๊น ์ค์ ํ ๋ถ๋ถ์ ์ฃผ์์ผ๋ก ์ฒ๋ฆฌํ๊ณ , 8080 ํฌํธ์ 8081 ํฌํธ๋ฅผ ์ถ๊ฐํด์ค
http { upstream backend { # ์ถ๊ฐ server localhost:8080; # ์ถ๊ฐ server localhost:8081; # ์ถ๊ฐ } location / { proxy_pass http://backend; # ์ถ๊ฐ ( ์๋๋ ์ฃผ์์ผ๋ก ๋ง๋ค์ด์ค ) // root html; // index index.html index.htm; // proxy_pass http://localhost:8080; # ์ถ๊ฐ - ์์ฒญ์ 8080 ํฌํธ๋ก ๋๊น // proxy_set_header X-Real-IP $remote_addr; # ์ถ๊ฐ // proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; # ์ถ๊ฐ // proxy_set_header Host $http_host; # ์ถ๊ฐ } }
์ดํ ๋ค์ nginx์ฌ์์ ํ๊ณ localhost:80
์ผ๋ก ์ ์ํ์ฌ ์๋ก๊ณ ์นจ์ ๋๋ฅด๋ฉด,
๋ ํ๋ก์ ํธ์ ํ๋ฉด์ด ๋ฒ๊ฐ์ ๋์ค๋ ๊ฒ์ ํ์ธํ ์ ์์ !!
์ด๋ฒ ํ์ต์ ๊ทธ๋๋ ์ด๋ ค์ ์์ด ์ ๋๋๊ณ !!
ํ๋ก์ ์๋ฒ๊ฐ ๋ญ์ง ๊ฐ์ด ์ ์์กํ์๋๋ฐ ์ง์ ๋์ผ๋ก ํ์ธํ ์ ์์ด์ ๋ ์ดํด๋ ์ ๋๊ณ ์ฌ๋ฐ์๋ค ใ
ใ