[TIL] ์ด์ ์ ๋ต (2)
๐๐ป TOMCAT
- Apache์ฌ์์ ๊ฐ๋ฐํ ์๋ธ๋ฆฟ ์ปจํ ์ด๋๋ง ์๋ ์คํ์์ค ์น ์ ํ๋ฆฌ์ผ์ด์ ์๋ฒ
๐ Tomcat ํน์ง
- ์๋ฐ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ํ ๋ํ์ ์ธ ์คํ ์์ค : Web Application Server(WAS)
- ์คํ์์ค์ด๊ธฐ ๋๋ฌธ์ ๋ผ์ด์ ์ค ๋น์ฉ ๋ถ๋ด ์์ด ์ฌ์ฉ ๊ฐ๋ฅ
- ๋ ๋ฆฝ์ ์ผ๋ก๋ ์ฌ์ฉ๊ฐ๋ฅํ๋ฉฐ Apache ๊ฐ์ ๋ค๋ฅธ ์น ์๋ฒ์ ์ฐ๋ํ์ฌ ํจ๊ป ์ฌ์ฉ ๊ฐ๋ฅ
- ์๋ฐ ์๋ธ๋ฆฟ ์ปจํ ์ด๋์ ๋ํ ๊ณต์ ๊ตฌํ์ฒด๋ก ์คํ๋ง ๋ถํธ์ ๋ด์ฅ๋์ด ๋ณ๋์ ์ค์น ๊ณผ์ ์ด ํ์ ์์
๐ก Servlet : ์๋ธ๋ฆฟ
- ํด๋ผ์ด์ธํธ์ ์์ฒญ์ ์ฒ๋ฆฌํ๊ณ ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ๋ฐํํ๋ ์น ํ๋ก๊ทธ๋๋ฐ ๊ธฐ์
- ํด๋ผ์ด์ธํธ๊ฐ ์์ฒญ์ ํ๋ฉด ๊ทธ์ ๋ํ ๊ฒฐ๊ณผ๋ฅผ ๋ค์ ์ ์กํด์ฃผ๋ ์ญํ
- ์๋ธ๋ฆฟ์ ํตํด ์์ฒญ ๋ฉ์์ง๋ฅผ ์ฝ๊ณ ์๋ต์ ๋ง๋ค์ด ์ค
๐ก Servlet Container : ์๋ธ๋ฆฟ ์ปจํ ์ด๋
- ์ค์ค๋ก ๋์ํ์ง ์๋ ์๋ธ๋ฆฟ์ ๊ด๋ฆฌํด์ฃผ๋ ์ปจํ ์ด๋
- ์๋ธ๋ฆฟ ๊ฐ์ฒด๋ฅผ ์์ฑ, ์ด๊ธฐํ, ํธ์ถ, ์ข ๋ฃํ๋ ์๋ช ์ฃผ๊ธฐ ๊ด๋ฆฌ
๐๐ป Jetty
- ์ดํด๋ฆฝ์ค ์ฌ๋จ์ HTTP ์๋ฒ์ด์ ์๋ฐ ์๋ธ๋ฆฟ ์ปจํ ์ด๋
- ๊ฐ๋ฐ์๊ฐ ์ํ๋ ์๋ฒ๋ฅผ ์ ํํ์ฌ ํ๋ก์ ํธ๋ฅผ ๊ตฌ์ฑํ ์ ์์
๐Jetty ํน์ง
- 2009๋ ์ดํด๋ฆฝ์ค ์ฌ๋จ์ผ๋ก ์ด์ ํ๋ฉฐ ์คํ์์ค ํ๋ก์ ํธ๋ก ๊ฐ๋ฐ๋จ
- ํ ์น ์ ํ๋ฆฌ์ผ์ด์ ๋๋น ์ ์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ฌ์ฉํ์ฌ ๊ฐ๋ณ๊ณ ๋น ๋ฆ
- ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ด์ฅ ๊ฐ๋ฅํจ
- ๊ฒฝ๋ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ผ๋ก ์ํ ์ฅ๋น, ์๊ท๋ชจ ํ๋ก๊ทธ๋จ์ ๋ ์ ํฉํจ
* Spring Boot ์๋ฒ Jetty๋ก ๋ณ๊ฒฝํ๊ธฐ
1) build.gradle ํ์ผ์์ spring-boot-starter-web ์์กด์ฑ์ด ์ถ๊ฐ ๋์ด ์๋ ๋ถ๋ถ ํ์ธ
2) ์ด ์์กด์ฑ ๋ชจ๋ ๋ด ํฌํจ๋ Tomcat ์ ์ธ
3) ์ ์ธ ์ํจ ํ ํ๋ก์ ํธ๋ฅผ ์ฌ ๋น๋
4) Tomcat์ ๋์ฒดํ Jetty ์์กด์ฑ ์ถ๊ฐ
5) ํ๋ก์ ํธ ์ฌ ๋น๋
//์ ๊ฑฐ
implementation ('org.springframework.boot:spring-boot-stater-web') {
exclude module: 'spring-boot-stater-tomcat'
}
//์ถ๊ฐ
implementation ('org.springframework.boot:spring-boot-stater-jetty')
๐๐ป NginX - Proxy Server
- ๊ฐ๋ณ๊ณ ๋์ ์ฑ๋ฅ์ ๋ณด์ด๋ ์คํ์์ค ์น ์๋ฒ ์ํํธ์จ์ด
- ํด๋ผ์ด์ธํธ์๊ฒ ์ ์ ๋ฆฌ์์ค๋ฅผ ๋น ๋ฅด๊ฒ ์๋ตํ๊ธฐ ์ํ ์น ์๋ฒ
๐ NginX ํน์ง
- ํธ๋ํฝ์ด ๋ง์ ์น ์ฌ์ดํธ์ ํ์ฅ์ฑ์ ์ํด ๊ฐ๋ฐ๋ ๊ณ ์ฑ๋ฅ ์น ์๋ฒ
- ๋น๋๊ธฐ ์ด๋ฒคํธ ๊ธฐ๋ฐ์ผ๋ก ์ ์ ์์์ผ๋ก ๋์ ์ฑ๋ฅ๊ณผ ๋์ ๋์์ฑ์ ์ํด ๊ฐ๋ฐ๋จ
- ๋ค์์ ํด๋ผ์ด์ธํธ ์ฐ๊ฒฐ์ ํจ์จ์ ์ผ๋ก ์ฒ๋ฆฌ ๊ฐ๋ฅ
- ํด๋ผ์ด์ธํธ์ ์๋ฒ ์ฌ์ด์ ์กด์ฌํ๋ ๋ฆฌ๋ฒ์ค ํ๋ก์ ์๋ฒ๋ก ์ฌ์ฉ ๊ฐ๋ฅ
- NginX๋ฅผ ํด๋ผ์ด์ธํธ์ ์๋ฒ ์ฌ์ด์ ๋ฐฐ์นํ์ฌ ๋ฌด์ค๋จ ๋ฐฐํฌ๋ฅผ ํ ์ ์์
* Spring Boot์ Nginx ์ฐ๋ํ๊ธฐ
1๏ธโฃ Nginx ์ค์น
$ brew install nginx
2๏ธโฃ Nginx ์คํ
$ brew services start nginx
3๏ธโฃ Nginx ์ค์ ํ์ผ ์์
$ nginx -t
--> Nginx์ ์ค์ฅ ํ์ผ ์์น ํ์ธ
$ nano /opt/homebrew/etc/nginx/nginx.conf
--> nano ์๋ํฐ๋ก ์ค์ ํ์ผ ์์
server{
listen 80; //8080ํฌํธ์์ 80ํฌํธ๋ก ๋ณ๊ฒฝ
location / {
proxy_pass http://localhost:8080; //์์ฒญ์ 8080ํฌํธ๋ก ๋๊น
proxy_set_header X-Real-IP $remoate_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
}
4๏ธโฃ Nginx ์ฌ์์
$ brew services restart nginx
5๏ธโฃ Nginx ์ข
๋ฃ
$ brew services stop nginx
๐๐ป VPC
- VPC๋ Virtual Private Cloud ์๋น์ค
- ํด๋ผ์ฐ๋ ๋ด ํ๋ผ์ด๋น ๊ณต๊ฐ์ ์ ๊ณตํจ์ผ๋ก์จ ํด๋ผ์ฐ๋๋ฅผ ํผ๋ธ๋ฆญ๊ณผ ํ๋ผ์ด๋น ์์ญ์ผ๋ก ๋ ผ๋ฆฌ์ ์ผ๋ก ๋ถ๋ฆฌํ ์ ์๊ฒ ํจ
๐ VPC ์์์ ๋
- ํด๋ผ์ฐ๋์ ์๋ ๋ฆฌ์์ค๋ฅผ ๊ฒฉ๋ฆฌํ ์ ์๋ ๋ฐฉ๋ฒ์ด ์์์
→ ์ธ์คํด์ค๋ค์ด ์๋ก ๊ฑฐ๋ฏธ์ค์ฒ๋ผ ์ฐ๊ฒฐ๋๊ณ ์ธํฐ๋ท๊ณผ ์ฐ๊ฒฐ ๋์ด ์์คํ ์ ๋ณต์ก๋๋ฅผ ํฌ๊ฒ ๋์ด์ฌ๋ฆด ๋ฟ๋ง ์๋๋ผ ์์กด๋๋ฅผ ๋์
→ ์ ์ง ๋ฐ ๊ด๋ฆฌ์ ๋ง์ ๋น์ฉ๊ณผ ๋ ธ๋ ฅ์ ํฌ์ ํด์ผํ๋ ๋จ์ ์ด ์์
๐๐ป VPC๋ฅผ ๋ถ๋ฆฌํจ์ผ๋ก์จ ํ์ฅ์ฑ์ ๊ฐ์ง ์ ์๊ณ ๋คํธ์ํฌ์ ๋ํ ์์ ํ ํต์ ๊ถ์ ๊ฐ์ง ์ ์์
๐IP Address
- IP๋ ์ปดํจํฐ ๋คํธ์ํฌ์์ ์ฅ์น๋ค์ด ์๋ก๋ฅผ ์ธ์ํ๊ณ ํต์ ํ๊ธฐ ์ํด ์ฌ์ฉํ๋ ํน์ํ ๋ฒํธ
- IPv4, IPv6์ผ๋ก ๋๋์ด ์์ผ๋ฉฐ ํผ์ฉํ์ฌ ์ฌ์ฉํจ
- IPv4๋ .์ผ๋ก ์ซ์๋ค์ ๊ตฌ๋ถํ๋ฉฐ ๊ฐ ๊ตฌ์ญ์ 8bit ํฌ๊ธฐ์ Octet(์ฅํ )์ผ๋ก ์ด๋ฃจ์ด์ ธ ์์
๐IP Address Class
* IPv4 ๊ธฐ์ค
172.16.0.0
๐ CIDR : Classless Inter-Domain Routing : ์ฌ์ด๋
- ํด๋์ค ์๋ ๋๋ฉ์ธ ๊ฐ ๋ผ์ฐํ ๊ธฐ๋ฒ
- ๊ตญ์ ํ์ค์ IP ์ฃผ์ ํ ๋น ๋ฐฉ๋ฒ์ผ๋ก IP ํด๋์ค ๋ฐฉ์์ ๋์ฒดํ ๋ฐฉ์
- ๊ธฐ์กด์๋ ํด๋์ค์ ๋ฐ๋ผ ์ ํด์ง Network Address์ Host Address๋ฅผ ์ฌ์ฉํด์ผ ํ์
→ CIDR์ ์ํ๋ ๋ธ๋ก๋งํผ Network Address๋ฅผ ์ง์ ํ์ฌ ์ฌ์ฉ ๊ฐ๋ฅ
172.16.0.0 / 16
- ๋ค์ ๋ถ์ /16์ ์ฒซ 16๋นํธ๋ฅผ Network Address๋ก ์ฌ์ฉํ๋ค๋ ์๋ฏธ
๐ Subnet : ์๋ธ๋ท
- ์๋ธ ๋คํธ์ํฌ์ ์ค์๋ง
- IP ๋คํธ์ํฌ์ ๋ ผ๋ฆฌ์ ์ธ ํ์ ๋ถ๋ถ์ ๊ฐ๋ฆฌํด
- ์๋ธ๋ท์ ํตํด ํ๋์ ๋คํธ์ํฌ๋ฅผ ์ฌ๋ฌ ๊ฐ๋ก ๋๋ ์ ์์
- VPC์ CIDR ๋ธ๋ก์ ์ด์ฉํ์ฌ ์ ์๋๋ฉฐ ์ต์ ํฌ๊ธฐ์ ์๋ธ๋ท์ /28
→ ์๋ธ๋ท์ AZ๋น ์ต์ ํ๋๋ฅผ ์ฌ์ฉํ ์ ์๊ณ ์ฌ๋ฌ ๊ฐ์ AZ์ ์ฐ๊ฒฐ๋๋ ์๋ธ๋ท์ ๋ง๋ค ์ ์์
โ ํผ๋ธ๋ฆญ ์๋ธ๋ท : ์ธํฐ๋ท์ ํตํด ์ฐ๊ฒฐํ ์ ์๋ ์๋ธ๋ท
โก ํ๋ผ์ด๋น ์๋ธ๋ท : ์ธํฐ๋ท์ ์ฐ๊ฒฐํ์ง ์๊ณ ๋ณด์์ ์ ์งํ๋ ๋ฐฐํ์ ์ธ ์๋ธ๋ท
โข VPN only ์๋ธ๋ท : ๊ธฐ์ ๋ฐ์ดํฐ ์ผํฐ์ VPC๋ฅผ ์ฐ๊ฒฐํ๋ ์๋ธ๋ท
๐ Routing Table : ๋ผ์ฐํ ํ ์ด๋ธ
- ํธ๋ํฝ์ ์ ์ก ๋ฐฉํฅ์ ๊ฒฐ์ ํ๋ ๋ผ์ฐํธ์ ๊ด๋ จ๋ ๊ท์น์ ๋ด์ ํ ์ด๋ธ
- ๋ชฉ์ ์ง๋ฅผ ํฅํ ์ต์ ์ ๊ฒฝ๋ก๋ก ๋ฐ์ดํฐ ํจํท์ ์ ์กํ๊ธฐ ์ํ ๋ชจ๋ ์ ๋ณด๋ฅผ ๋ด๊ณ ์์
- ํ๋์ ์ง์ ์์ ๋ ๋ค๋ฅธ ์ง์ ์ผ๋ก ๊ฐ๊ธฐ ์ํ ๋ชจ๋ ์ ๋ณด๋ฅผ ์ ๊ณตํ๋ ํ ์ด๋ธ
- ๋ชจ๋ ์๋ธ๋ท์ ๋ผ์ฐํ ํ ์ด๋ธ์ ์ง๋
- ๊ฐ๊ฐ์ ์๋ธ๋ท์ ํญ์ ๋ผ์ฐํ ํ ์ด๋ธ์ ๊ฐ์ง๊ณ ์์ด์ผ ํ๋ฉฐ ํ๋์ ๋ผ์ฐํ ํ ์ด๋ธ ๊ท์น์ ์ฌ๋ฌ ๊ฐ์ ์๋ธ๋ท ์ฐ๊ฒฐ ๊ฐ๋ฅ