2022. 5. 28. 01:09ใAWS
โ๏ธ ๋ฌธ์
ํต์ ๊ตฌ์กฐ ์์ ๋ฌธ์ ๋ก IP๋ก๋ง ํต์ ์ด ๊ฐ๋ฅํ ์ํฉ์์ RDS์ ํต์ ์ ํด์ผ ํ๋ค.
RDS์ ์๋ํฌ์ธํธ๋ ์ฌ์ฉํ์ง ๋ชปํ๊ณ RDS ์ธ์คํด์ค์ IP๋ ๋ณ๋ ๊ฐ๋ฅ์ฑ์ด ์์ด ๊ณ ์ ์ ์ธ IP๊ฐ ํ์ํ๋ค.
๐ ํ๊ฒฝ
- AWS RDS
- Engine : SQL Server Standard Edition
- ๋ค์ค AZ (Multi-AZ)
- RDS ์ธ์คํด์ค์๋ ๊ณ ์ IP ์ฃผ์๋ ํ๋ ฅ์ IP ์ฃผ์๋ฅผ ํ ๋นํ ์ ์๋ค.
๐ซ ํด๊ฒฐ ๋ฐฉ๋ฒ
์ฌ๋ฌ ๋ฐฉ๋ฒ์ด ์๊ฒ ์ง๋ง,
์ ๊ท ํ๋ก์ ์๋ฒ๋ฅผ ๊ตฌ์ฑํ์ฌ nginx๋ฅผ ์ด์ฉํ ํฌ์๋ฉ์ผ๋ก RDS ์๋ํฌ์ธํธ ํต์ ์ ํ๊ณ , ํ๋ก์ ์๋ฒ ์๋จ์ NLB๋ฅผ ๊ตฌ์ฑํ์ฌ NLB์ ๊ณ ์ IP๋ฅผ ์ด์ฉํ๋๋ก ํด๋ณด์. (NLB์ ํ๊ฒ์ผ๋ก๋ RDS ์ค์ ์ด ๋ถ๊ฐ๋ฅํ์ฌ proxy server ์ฉ๋์ nginx๋ฅผ ์ด์ฉํด๋ณด์)
1. EC2 ๊ตฌ์ฑ
- ๊ณ ๊ฐ์ฉ์ฑ์ ์ํด proxy server ์ฉ๋์ EC2 node 2๊ฐ ๊ตฌ์ฑ
2. nginx ์ค์น
# nginx ์ค์น
sudo yum install nginx
- Amazon Linux 2์ yum์ผ๋ก nginx์ ์ค์นํ๋ ค๋ฉด?
=> https://longtermsad.tistory.com/11 ์ฐธ๊ณ
3. nginx ์ค์
- RDS๋ก ์ธ์ ๋๋ TCP ํธ๋ํฝ์ ์ฒ๋ฆฌํ๊ธฐ ์ํด stream block์ ์ด์ฉํ์ฌ ์ค์ ํ๋ค.
# nginx์์ stream ์ง์์๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํด ์ค์น
sudo yum install nginx-mod-stream
# /etc/nginx/nginx.conf
user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;
# Load dynamic modules. See /usr/share/nginx/README.dynamic.
include /usr/share/nginx/modules/*.conf;
events {
worker_connections 1024;
}
stream {
upstream db {
server { RDS-endpoint }:1433;
}
server {
listen 1433;
proxy_pass db;
}
}
# ๋ณ๊ฒฝ๋ ์ค์ ํ์ผ(nginx.conf)์ ์ ์ฉํ๊ธฐ ์ํด nginx ์์
sudo nginx -s reload
sudo systemctl restart nginx
# nginx ์๋น์ค๊ฐ ์ ์์ ์ผ๋ก ๊ตฌ๋๋๋์ง ํ์ธ
sudo systemctl status nginx
# ์๋ฒ๋ฅผ ์ฌ์์ํ๋ ๊ฒฝ์ฐ์๋ nginx ์๋์ผ๋ก ์๋น์คํ๋๋ก enable
sudo systemctl enable nginx
๐จ ์ค์ ๐จ Nginx์์ RDS-endpoint๋ก ํธ๋ํฝ์ ์ ๋ฌํ๋๋ก ์ค์ ํ์์ง๋ง, rds์ real ip๊ฐ ๋ณ๊ฒฝ๋๋ ๊ฒฝ์ฐ nginx๊ฐ ์ด๋ฅผ ์ธ์งํ์ง ๋ชปํ๊ณ ๋ณ๊ฒฝ ์ ์ ip๋ก ํธ๋ํฝ์ ์ ๋ฌํ์ฌ ์๋ฌ๊ฐ ๋ฐ์ํ์๋ค. ⇒ ์ถ์ ์์ธ: nginx ๋ด๋ถ์ DNS caching ⇒ ํด๊ฒฐ ๋ฐฉ๋ฒ: โญ๏ธ resolver ์ต์ ์ ์ฉ ํ์ โญ๏ธ ⇒ ์ฐธ๊ณ ๋งํฌ: NGINX Dynamic IP address upstream - DNS Cache issue | How to solve |
3. RDS ๋ณด์๊ทธ๋ฃน ์ค์
- RDS ๋ณด์๊ทธ๋ฃน์ Inbound ๊ท์น์ Proxy Server์ ๋ํด 1433 ํฌํธ๋ฅผ ํ์ฉํ๋ ๊ท์น์ ์ถ๊ฐํ๋ค.
4. ํ๊ฒ ๊ทธ๋ฃน ์์ฑ
- ๋์ : ์ธ์คํด์ค (ํ๋ก์ ์๋ฒ)
- ํ๋กํ ์ฝ : TCP
- ํฌํธ : 1433 (proxy server๊ฐ 1433์ listen ํ๋๋ก ์ค์ ํ๊ธฐ ๋๋ฌธ)
- ํ๊ฒ์ผ๋ก 1์์ ๊ตฌ์ฑํ EC2 2๋๋ฅผ ์ถ๊ฐ.
5. NLB ๊ตฌ์ฑ
- ๊ต์ฐจ์์ญ ๋ก๋๋ฐธ๋ฐ์ฑ ํ์ฑํ (
- 1433 ํฌํธ์ ๋ํด ๋ค์ด์จ ์์ฒญ์ 5์์ ์์ฑํ ํ๊ฒ ๊ทธ๋ฃน์ผ๋ก ์ ๋ฌํ๋ ๋ฆฌ์ค๋ ์ถ๊ฐ
6. proxy server์ ๋ณด์๊ทธ๋ฃน ์ค์
- 1์์ ์์ฑํ EC2 ๋ณด์๊ทธ๋ฃน์ inbound ๊ท์น์ NLB์ Source๋ก๋ถํฐ 1433 ํฌํธ๋ฅผ ํ์ฉํ๋ ๊ท์น์ ์ถ๊ฐํ๋ค.
๐ 6๋ฒ๊น์ง์ ์ค์ ์ ์๋ฃํ๋ฉด ์์ค์์ NLB์ ๊ณ ์ IP๋ก 1433์ผ๋ก RDS์ ํต์ ๊ฐ๋ฅ~!