Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/myeonghan-nim/load-balancing
๐ Study: load balancing
https://github.com/myeonghan-nim/load-balancing
django load-balancing nginx python
Last synced: 26 days ago
JSON representation
๐ Study: load balancing
- Host: GitHub
- URL: https://github.com/myeonghan-nim/load-balancing
- Owner: myeonghan-nim
- Created: 2024-10-02T05:44:02.000Z (3 months ago)
- Default Branch: main
- Last Pushed: 2024-11-15T06:36:29.000Z (about 2 months ago)
- Last Synced: 2024-11-15T07:29:11.949Z (about 2 months ago)
- Topics: django, load-balancing, nginx, python
- Language: Python
- Homepage:
- Size: 7.81 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# load balancing
## ๋ก๋ ๋ฐธ๋ฐ์ฑ
์๋ฒ์ ๋ค์ด์ค๋ ๋คํธ์ํฌ ํธ๋ํฝ์ ์ฌ๋ฌ ์๋ฒ์ ๋ถ์ฐ์ํค๋ ๊ฒ์ ์๋ฏธํ๋ฉฐ **๋ก๋ ๋ฐธ๋ฐ์**๋ ์ด๋ฅผ ์ํํ๋ ์ฅ์น ํน์ ์ํํธ์จ์ด๋ฅผ ์๋ฏธ.
๋ก๋ ๋ฐธ๋ฐ์ฑ์ ํตํด ํธ๋ํฝ ๊ณผ๋ถํ๋ก ์ธํ ์๋ฒ ๋ค์ด์ ๋ฐฉ์งํ๊ณ ์๋ฒ ์์์ ํจ์จ์ ์ผ๋ก ์ฌ์ฉ.
๋ก๋ ๋ฐธ๋ฐ์ฑ์ ์ํ์ ํ์ฅ๊ณผ ๋ฐ์ ํ ๊ด๋ จ์ด ์์ผ๋ฉฐ ํฌ๊ฒ ๋ ๊ฐ์ง ๋ฐฉ์์ด ์กด์ฌ1. L4 ๋ก๋ ๋ฐธ๋ฐ์ฑ: ์ ์ก ๊ณ์ธต(Transport Layer, TCP/UDP)์์ ๋ก๋ ๋ฐธ๋ฐ์ฑ
2. L7 ๋ก๋ ๋ฐธ๋ฐ์ฑ: ์ ํ๋ฆฌ์ผ์ด์ ๊ณ์ธต(Application Layer, HTTP)์์ ๋ก๋ ๋ฐธ๋ฐ์ฑ### ๋ก๋ ๋ฐธ๋ฐ์ฑ ์๊ณ ๋ฆฌ์ฆ
1. Round Robin: ์๋ฒ๋ค์ ์ฐจ๋ก๋๋ก ์์ฒญ์ ๋ถ์ฐ
2. Least Connections: ํ์ฌ ์ฐ๊ฒฐ ์๊ฐ ๊ฐ์ฅ ์ ์ ์๋ฒ์ ์์ฒญ์ ๋ถ์ฐ
3. IP Hash: ํด๋ผ์ด์ธํธ์ IP ์ฃผ์๋ฅผ ํด์ฑํ์ฌ ํน์ ์๋ฒ์ ์ฐ๊ฒฐ
4. Weighted Round Robin: ์๋ฒ์ ์ฑ๋ฅ์ ๋ฐ๋ผ ๊ฐ์ค์น๋ฅผ ๋ถ์ฌํ์ฌ ํธ๋ํฝ ๋ถ์ฐ## TIPs
### nginx
1. nginx๋ฅผ ํน์ ์์น์ ์กด์ฌํ๋ `nginx.conf` ํ์ผ์ ์ฌ์ฉํด ์คํํ๋ ค๋ฉด ๋ค์๊ณผ ๊ฐ์ ๋ช ๋ น์ด ์ฌ์ฉ
```bash
$ sudo nginx -c /your/custom/path/nginx.conf# ์ข ๋ฃ
$ sudo nginx -s stop
```### AWS์ ELB
0. ์ ์ ์กฐ๊ฑด
- AWS์ ๋ ๋์ EC2 ์ธ์คํด์ค๋ฅผ ์คํ ์ค
- ๊ฐ EC2 ์ธ์คํด์ค์๋ nginx๋ก ์คํ ์ค์ธ ์น ์๋ฒ๊ฐ ์กด์ฌ
- `/var/www/html/index.html`์ `"This is Server ${server_name}`์ด๋ผ๊ณ ๊ธฐ๋ก๋ ์ํ
- ๊ฐ EC2 ์ธ์คํด์ค๋ ๋ค์๊ณผ ๊ฐ์ด ์ค์ ๋ ์ํ
- Security Group์ Inbound Rules์ HTTP ํธ๋ํฝ(0.0.0.0/0) ํ์ฉ
1. ELB ์์ฑ
1. EC2 ์๋น์ค์ ์ข์ธก ๋ฉ๋ด์์ Load Balancers๋ฅผ ์ ํํ๊ณ Create Load Balancer ์ ํ
2. HTTP/HTTPS ๊ธฐ๋ฐ ํธ๋ํฝ ์ฒ๋ฆฌ๋ฅผ ์ํด Application Load Balancer ์ ํ
1. Name ์ ๋ ฅ
2. Scheme์ Internet-facing ์ ํ
3. IP Address Type์ IPv4 ์ ํ
3. ๋คํธ์ํฌ ์ค์
1. EC2 ์ธ์คํด์ค์ ๋์ผํ VPC ์ ํ
2. Availability Zones์์ EC2 ์ธ์คํด์ค๊ฐ ์๋ ๋ชจ๋ ์์ญ์ ์ ํ
3. Security Groups์์ ๊ธฐ์กด ๋ณด์ ๊ทธ๋ฃน์ ์ ํํ๊ฑฐ๋ ์๋ก ์์ฑํ์ฌ HTTP(80๋ฒ ํฌํธ) ์ ๊ทผ์ ํ์ฉ
4. ๋ฆฌ์ค๋ ์ค์
1. ๊ธฐ๋ณธ์ ์ผ๋ก HTTP(80๋ฒ ํฌํธ) ๋ฆฌ์ค๋๊ฐ ์ค์ ๋์ด ์์ผ๋ ๋ค๋ฅธ ํฌํธ์์ ์์ ์ ์ํ๋ฉด ์ถ๊ฐ ๋ฆฌ์ค๋๋ฅผ ์ค์
5. ๋์ ๊ทธ๋ฃน ์์ฑ
1. Name์ ์ด๋ฆ ์ ๋ ฅ
2. Target Type์ Instance๋ก ์ ํ
3. Protocol์ HTTP๋ก, Port๋ฅผ 80์ผ๋ก ์ ํ
4. VPC๋ฅผ EC2 ์ธ์คํด์ค์ ๋์ผํ VPC๋ก ์ค์
5. Health Check ์ค์
1. Protocol์ HTTP๋ก, Path๋ฅผ / (๊ธฐ๋ณธ ๊ฒฝ๋ก)๋ก ์ค์
2. Health check๊ฐ ์คํจํ ๊ฒฝ์ฐ ๋์์ ์๋์ผ๋ก ์ ์ธํ๋๋ก ์ค์
6. ๋์ ์ธ์คํด์ค ๋ฑ๋ก
1. Register targets์์ ๋ ๊ฐ์ EC2 ์ธ์คํด์ค๋ฅผ ์ ํ
2. Add to registered ํด๋ฆญํ์ฌ ๋์ ๊ทธ๋ฃน์ EC2 ์ธ์คํด์ค ๋ฑ๋ก
3. ์ค์ ์๋ฃ ํ Create ๋ฒํผ ํด๋ฆญ
2. ๋ก๋ ๋ฐธ๋ฐ์ ํ์ธ
1. ELB ์ํ ํ์ธ: ์ฝ๊ฐ ์๊ฐ์ด ๊ฑธ๋ฆฌ์ง๋ง ์ํ๊ฐ ํ์ฑํ์ธ์ง ํ์ธ
2. ELB DNS ํ์ธ: ํ์ฑํ๋ ํ Load Balancer ๋ชฉ๋ก์์ ํด๋น ALB์ DNS ์ด๋ฆ์ ํ์ธ
3. ํ ์คํธ: ๋ธ๋ผ์ฐ์ ์์ ALB์ DNS ์ด๋ฆ์ ํตํด ์ ์