AWS ๊ธ๋ก๋ฒ ๋คํธ์ํฌ๋ฅผ ์ฌ์ฉํ์ฌ ์ ํ๋ฆฌ์ผ์ด์
์ ๊ฐ์ฉ์ฑ ๋ฐ ์ฑ๋ฅ ๊ฐ์
Index
๊ฐ์
โข
๋ก์ปฌ ๋๋ ๊ธ๋ก๋ฒ ์ฌ์ฉ์๋ฅผ ๋์์ผ๋ก ์ ํ๋ฆฌ์ผ์ด์
์ ๊ฐ์ฉ์ฑ๊ณผ ์ฑ๋ฅ ๊ฐ์
โข
AWS ๊ธ๋ก๋ฒ ๋คํธ์ํฌ๋ฅผ ํตํด ์ฌ์ฉ์์์ ์ ํ๋ฆฌ์ผ์ด์
์ผ๋ก ์ด์ด์ง ๊ฒฝ๋ก๋ฅผ ์ต์ ํํ์ฌ ํธ๋ํฝ์ ์ฑ๋ฅ์ ๊ฐ์
โข
๊ฐ์ฅ ๊ฐ๊น์ด ์์น๋ก ํธ๋ํฝ์ ๋ผ์ฐํ
ํ์ฌ ์ธํฐ๋ท ๋๊ธฐ์๊ฐ์ ์ค์ด๊ณ ์ ์ก ์ฑ๋ฅ์ ํฅ์ํ๋ ์๋น์ค
โฆ
Global Accelerator๋ฅผ ๋ฏธ์ฌ์ฉ์ ์๋ฒ๋ก๋ถํฐ ์ง๋ฆฌ์ ์ผ๋ก ๋จผ ์ฌ์ฉ์๋ ๋ง์ ์ธํฐ๋ท ๋ผ์ฐํ
์ ํ์ฌ ์๋๊ฐ ๋๋ฆผ
โฆ
Global Accelerator๋ฅผ ์ฌ์ฉํ๋ฉด ์ฌ์ฉ์๋ ๊ฐ๊น์ด ๊ฑฐ๋ฆฌ์ ์ฃ์ง๋ก์ผ์ด์
์ผ๋ก ๋ผ์ฐํ
ํ๊ณ ์ฃ์ง๋ก์ผ์ด์
๊ณผ ์๋ฒ๋ AWS์ ์ฉ๋คํธ์ํฌ ์ฐ๊ฒฐ๋ก ์ ์ก์๋๊ฐ ๋น ๋ฆ
[์ฐธ๊ณ ] ๊ตญ๋ด ์ฌ์ฉ์๊ฐ ์์ธ ๋ฆฌ์ ์ AWS ์๋น์ค์ ์ ๊ทผ ์ ๊ตญ๋ด ISP์ ๋คํธ์ํฌ๋ง ๋์ญํญ๊ณผ ์ง์ฐ ์ํ๊ฐ ์ํ ํ์ฌ Global Acclerator๋ฅผ ์ ์ฉํ๋๋ผ๋ ํฐ ์ฒด๊ฐ ๋ถ๊ฐ๋ฅํ ์ ์์
Global Accelerator ๊ตฌ์ฑ์์
Global Accelerator ์ฃผ์๊ธฐ๋ฅ
๊ณ ์ ์ ๋์บ์คํธ IP
โข
Global Accelerator์ ์ง์
์ ์ญํ ์ ํ๋ 2๊ฐ์ ๊ณ ์ IP์ฃผ์๋ฅผ ์ ๊ณตํ๋ฉฐ, ํด๋น ๊ณ ์ IP๋ ์ฃ์ง ๋ก์ผ์ด์
์ ์ ๋์บ์คํธ๋ก ์ฌ๋ฌ ์ฃ์ง ๋ก์ผ์ด์
์์ ๋์์ ๊ณต๊ฐ
โข
Global Accelerator๋ก ์ฐ๊ฒฐ๋๋ ์๋ํฌ์ธํธ์ ํ๋ฐํธ ์๋ ์ธํฐํ์ด์ค ์ญํ
[์ฐธ๊ณ ] Anycast๋ ๋คํธ์ํฌ ํธ๋ํฝ์ ๊ฐ์ฅ ๊ฐ๊น์ด ๋
ธ๋๋ก ์ ์กํ๋ ๋ผ์ฐํ
๋ฐฉ์(https://togll.tistory.com/42)
ํธ๋ํฝ ์ ์ด
โข
Traffic Dial ๊ฐ๊ณผ Weight ๊ฐ์ ์กฐ์ ํ์ฌ ๋ค์์ ์๋ํฌ์ธํธ ๊ทธ๋ฃน๊ณผ ์๋ํฌ์ธํธ์ ๋ํ ๋น์ค์ ๋ถ์ฌํ์ฌ ํธ๋ํฝ ์ ์ด ๊ฐ๋ฅ
์๋ํฌ์ธํธ ์ํ ํ์ธ
โข
Health Check ๋์์ผ๋ก ์ ์ ์ํ ์๋ํฌ์ธํธ๋ก ๋ผ์ฐํ
ํ ์ ์์ผ๋ฏ๋ก Failoverํ๊ฒฝ ๊ตฌ์ฑ ๊ฐ๋ฅ
ํด๋ผ์ด์ธํธ IP ๋ณด์กด
โข
์ฌ์ฉ์๊ฐ ์ต์ข
์๋ํฌ์ธํธ๋ก ์ ๊ทผ ์ ์ฌ์ฉ์์ IP๋ฅผ ๋ณด์กด
โข
๋ง์ฝ ํด๋ผ์ด์ธํธ IP ๋ณด์กดํ์ง ์์ผ๋ฉด Global Accelerator ๊ณ ์ IP ๋์ญ์ผ๋ก ํ๊ธฐ
๋ชจ๋ํฐ๋ง
โข
TCP, HTTP(S) ์ํ ํ์ธ์ ํ์ฌ ์๋ํฌ์ธํธ ์ํ๋ฅผ ๋ชจ๋ํฐ๋ง
[์ค์ต] Global Accelerator
โข
๋ชจ๋ ์ธ์คํด์ค๋ ํผ๋ธ๋ฆญ ์๋ธ๋ท ๋ด ์์น
1. CloudForamation ์ ์ฉ
โข
์๋๋, ์ํ์ธ๋ฃจ ๊ฐ ๋ฆฌ์ ์ ์คํ ์์ฑ ํ ์์ธ ๋ฆฌ์ ์ ํผ๋ธ๋ฆญ EC2 ์์ฑ
2. Global Accelerator ์์ฑ ์ ํต์ ํ ์คํธ
โข
์์ธ ๋ฆฌ์ EC2์ธ์คํด์ค์์ ์๋๋, ์ํ์ธ๋ฃจ ๋ฆฌ์ EC2 ์ธ์คํด์ค๋ก ํต์ ๋๋ ๊ฒ ํ์ธ(์ฌ๋ฌ ISP๋คํธ์ํฌ๋ฅผ ๊ฑฐ์ณ ํต์ )
์์ธ ๋ฆฌ์ EC2์์ ์๋๋ EC2 ์ธ์คํด์ค(ALB DNS) ํต์ ํ์ธ
[ec2-user@ip-172-31-12-244 ~]$ curl SYDNEY-ALB-1705784420.ap-southeast-2.elb.amazonaws.com
<h1>CloudNeta SYDNEY Web Server_1</h1>
[ec2-user@ip-172-31-12-244 ~]$ curl SYDNEY-ALB-1705784420.ap-southeast-2.elb.amazonaws.com
<h1>CloudNeta SYDNEY Web Server_2</h1>
์์ธ ๋ฆฌ์ EC2์์ ์ํ์ธ๋ฃจ EC2 ์ธ์คํด์ค ํต์ ํ์ธ
[ec2-user@ip-172-31-12-244 ~]$ curl 18.230.184.13
<h1>CloudNeta SAOPAULO Web Server_2</h1>
[ec2-user@ip-172-31-12-244 ~]$ curl 18.230.123.252
<h1>CloudNeta SAOPAULO Web Server_1</h1>
Bash
๋ณต์ฌ
3. Global Accelerator ์์ฑ
1) ๋ฆฌ์ค๋ ์ถ๊ฐ
โข
Global Accelrator์์ ์ฐ๊ฒฐํ ์ ํ๋ฆฌ์ผ์ด์
์ ์น ์๋น์ค์ด๊ธฐ ๋๋ฌธ์ TCP/80 ํฌํธ์ ๋ฆฌ์ค๋ ์ถ๊ฐ
2) ์๋ํฌ์ธํธ ๊ทธ๋ฃน ์ถ๊ฐ
โข
๋์ ์ํ๋ฆฌ์ผ์ด์
์ด ๋ฐฐํฌ๋๋ AWS ๋ฆฌ์ (์๋๋, ์ํ์ธ๋ฃจ) ์ ์
3) ์๋ํฌ์ธํธ ์ถ๊ฐ
โข
์๋๋ ๋ฆฌ์ ์์๋ ALB๋ก ์ง์ , ์ํ์ธ๋ฃจ ๋ฆฌ์ ์์๋ EC2์ธ์คํด์ค๋ก ์ง์
4. Global Accelerator ๊ธฐ๋ณธ ํต์ ๋ฐฉ์ ํ์ธ
1) curl ๋ก ์ด๋ ๋ฆฌ์ ์ผ๋ก ์ ์๋๋์ง ํ์ธ
์์ธ ๋ฆฌ์ EC2์์ Global Accelerator ์ ๋์บ์คํธIP๋ก ํต์ ํ์ธ
[ec2-user@ip-172-31-12-244 ~]$ for i in {1..20}; do curl -s -q 52.223.37.135 ; done | sort | uniq -c | sort -nr
10 <h1>CloudNeta SYDNEY Web Server_2</h1>
10 <h1>CloudNeta SYDNEY Web Server_1</h1>
Bash
๋ณต์ฌ
โข
for๋ฌธ์ ํตํด 20ํ ๋ฐ๋ณต๋ฌธ์ผ๋ก curl ๋ช
๋ น์ด๋ก ํด๋น ์ฃผ์๋ก ์ ์ํ ์ ๋ณด๋ฅผ ์ถ๋ ฅ
โข
์๋๋ ๋ฆฌ์ ์ ์ํ ์น์๋ฒ 2๋๋ก ๋ถํ ๋ถ์ฐ(์ฌ์ฉ์ ์
์ฅ์์ ๊ฐ์ฅ ์ธ์ ํ ์ฃ์ง ๋ก์ผ์ด์
์ ๊ฒฝ์ ํ๊ณ , AWS ๊ธ๋ก๋ฒ ๋คํธ์ํฌ๋ฅผ ํตํด ๊ฐ์ฅ ์ธ์ ํ ์๋๋ ๋ฆฌ์ ์ ์๋ํฌ์ธํธ ๊ทธ๋ฃน์ผ๋ก ์ ๋ฌ)
[์ฐธ๊ณ ] ๋ฆฌ๋
์ค ๋ช
๋ น์ด
โข
sort : ๊ธฐ๋ณธ์ผ๋ก ๋ด๋ฆผ์ฐจ์ ์ ๋ ฌ
โข
uniq : ์ค๋ณต๋ ๋ด์ฉ์ ํ์ด ์ฐ์์ผ๋ก ์์ผ๋ฉด ํ๋๋ง ๋จ๊ธฐ๊ณ ์ญ์
2) traceroute๋ก ํผ๋ธ๋ฆญIP์ ์๊ณผ Global Acceleartor์ ์ ๋น๊ต
[ec2-user@ip-172-31-12-244 ~]$ sudo traceroute -T 52.223.37.135
traceroute to 52.223.37.135 (52.223.37.135), 30 hops max, 60 byte packets
1 * * *
2 * * *
3 * * *
4 * * *
5 * * *
6 * * *
7 100.65.8.161 (100.65.8.161) 0.475 ms 0.464 ms 100.65.10.1 (100.65.10.1) 0.457 ms
8 54.239.122.5 (54.239.122.5) 2.210 ms 52.93.247.5 (52.93.247.5) 2.272 ms 2.119 ms
9 54.239.122.218 (54.239.122.218) 2.530 ms 54.239.122.152 (54.239.122.152) 2.831 ms 54.239.122.108 (54.239.122.108) 4.546 ms
10 afa90ea8c8325790c.awsglobalaccelerator.com (52.223.37.135) 1.724 ms 1.762 ms 1.755 ms
[ec2-user@ip-172-31-12-244 ~]$ sudo traceroute -T SYDNEY-ALB-1705784420.ap-southeast-2.elb.amazonaws.com
traceroute to SYDNEY-ALB-1705784420.ap-southeast-2.elb.amazonaws.com (13.238.179.109), 30 hops max, 60 byte packets
1 * * *
2 * * *
3 * * *
4 * * *
5 * * *
6 * * *
7 100.65.8.161 (100.65.8.161) 0.382 ms 100.65.11.1 (100.65.11.1) 0.438 ms 100.65.10.33 (100.65.10.33) 0.367 ms
8 54.239.122.7 (54.239.122.7) 0.789 ms 0.806 ms 0.793 ms
9 54.239.122.130 (54.239.122.130) 5.436 ms 54.239.122.64 (54.239.122.64) 3.000 ms 54.239.122.218 (54.239.122.218) 2.487 ms
10 54.239.123.25 (54.239.123.25) 5.613 ms 54.239.123.111 (54.239.123.111) 1.177 ms 54.239.123.65 (54.239.123.65) 0.571 ms
11 100.92.183.42 (100.92.183.42) 147.432 ms 100.92.181.30 (100.92.181.30) 148.204 ms 100.92.183.42 (100.92.183.42) 147.130 ms
12 52.93.131.255 (52.93.131.255) 148.307 ms 148.282 ms 52.93.134.2 (52.93.134.2) 146.838 ms
13 54.239.43.246 (54.239.43.246) 147.431 ms 147.405 ms 147.390 ms
14 100.92.177.3 (100.92.177.3) 147.246 ms 54.239.43.246 (54.239.43.246) 147.613 ms 147.641 ms
15 52.95.37.68 (52.95.37.68) 147.716 ms 100.92.177.7 (100.92.177.7) 147.978 ms 52.95.37.38 (52.95.37.38) 147.984 ms
16 150.222.112.197 (150.222.112.197) 146.799 ms 52.95.37.70 (52.95.37.70) 148.130 ms 52.95.37.102 (52.95.37.102) 153.142 ms
17 150.222.112.231 (150.222.112.231) 162.873 ms 150.222.112.236 (150.222.112.236) 148.609 ms 150.222.112.204 (150.222.112.204) 148.593 ms
18 52.95.37.95 (52.95.37.95) 140.266 ms 52.95.37.31 (52.95.37.31) 147.857 ms 52.95.37.63 (52.95.37.63) 140.077 ms
19 52.95.37.47 (52.95.37.47) 140.890 ms 52.95.37.79 (52.95.37.79) 141.027 ms 52.95.38.162 (52.95.38.162) 141.015 ms
20 52.95.38.156 (52.95.38.156) 144.216 ms 52.95.38.23 (52.95.38.23) 141.505 ms 52.95.38.21 (52.95.38.21) 140.706 ms
21 * * *
22 * * *
23 * * *
24 * * *
25 * * *
26 * * ec2-13-238-179-109.ap-southeast-2.compute.amazonaws.com (13.238.179.109) 147.784 ms
[ec2-user@ip-172-31-12-244 ~]$
Bash
๋ณต์ฌ
5. Traffic Dial์ ํตํ ํธ๋ํฝ ์กฐ์ ๊ฒ์ฆ
[์ฐธ๊ณ ] Traffic Dial : ์๋ ํฌ์ธํธ ๊ทธ๋ฃน์ ๋ํด ์ ๋ฌํ๋ ๋น์ค๊ฐ(default : 100)
1) ์๋๋ ๋ฆฌ์ ์๋ํฌ์ธํธ ๊ทธ๋ฃน์ Traffic Dial ๊ฐ ์กฐ์ (100โ50)
[ec2-user@ip-172-31-12-244 ~]$ for i in {1..20}; do curl -s -q 52.223.37.135 ; done | sort | uniq -c | sort -nr
6 <h1>CloudNeta SYDNEY Web Server_2</h1>
6 <h1>CloudNeta SAOPAULO Web Server_2</h1>
4 <h1>CloudNeta SYDNEY Web Server_1</h1>
4 <h1>CloudNeta SAOPAULO Web Server_1</h1>
[ec2-user@ip-172-31-12-244 ~]$
Bash
๋ณต์ฌ
โข
์๋๋ ์น ์๋ฒ๋ก 10(6+4)๊ฐ์ ํธ๋ํฝ, ์ํ์ธ๋ฃจ ์น ์๋ฒ๋ก 10(6+4)๊ฐ์ ํธ๋ํฝ ์ ๋ฌ
โข
์๋๋ ๋ฆฌ์ ์๋ํฌ์ธํธ ๊ทธ๋ฃน์ ํธ๋ํฝ ์์ฉ์ 50%๋ก ํ๊ธฐ ๋๋ฌธ์ ๋๋จธ์ง 50%๋ ์ํ์ธ๋ฃจ ๋ฆฌ์ ์๋ํฌ์ธํธ ๊ทธ๋ฃน์ผ๋ก ์ ๋ฌ
2) ์๋๋ ๋ฆฌ์ ์๋ํฌ์ธํธ ๊ทธ๋ฃน์ Traffic Dial ๊ฐ ์กฐ์ (50โ0)
[ec2-user@ip-172-31-12-244 ~]$ for i in {1..20}; do curl -s -q 52.223.37.135 ; done | sort | uniq -c | sort -nr
12 <h1>CloudNeta SAOPAULO Web Server_2</h1>
8 <h1>CloudNeta SAOPAULO Web Server_1</h1>
Bash
๋ณต์ฌ
โข
๋ชจ๋ ํธ๋ํฝ์ ์ํ์ธ๋ฃจ ์น ์๋ฒ๋ก ์ ๋ฌ(0์ผ๋ก ์ค์ ์ ํด๋น ์๋ํฌ์ธํธ ๊ทธ๋ฃน์ผ๋ก ํธ๋ํฝ์ ์ ๋ฌํ์ง ์์)
[์ฐธ๊ณ ] Traffic Dial 0 ์ค์
โข
์์ฉ ํ๋ก๊ทธ๋จ์ ์
๊ทธ๋ ์ด๋ ํ๊ฑฐ๋ ์ ์ง ๊ด๋ฆฌ๊ฐ ํ์ํ ๋ 0์ผ๋ก ์ค์ ํ์ฌ ํธ๋ํฝ์ ์ฐจ๋จํ๊ณ , ์์
์๋ฃํ๊ณ ๋ค์ ์ฌ์ฉํ ์ค๋น๊ฐ ๋๋ฉด 100์ผ๋ก ์กฐ์ ํ์ฌ ํธ๋ํฝ์ ๋ค์ ์์ฉ
6. Weight๋ฅผ ํตํ ํธ๋ํฝ ์กฐ์ ๊ฒ์ฆ
[์ฐธ๊ณ ] Weight : ์๋ ํฌ์ธํธ์ ๋ํด ์ ๋ฌํ๋ ๋น์ค๊ฐ(default : 128)
โข
๋น์ค์ ์์ ์ [Weight / ์ ์ฒด Weight]๋ก ์ฐ์ถ
1) ์ํ์ธ๋ฃจ EC2 ์ธ์คํด์ค(Web server 2)์ Weight ๊ฐ ์กฐ์ (128โ64)
[ec2-user@ip-172-31-12-244 ~]$ for i in {1..20}; do curl -s -q 52.223.37.135 ; done | sort | uniq -c | sort -nr
14 <h1>CloudNeta SAOPAULO Web Server_1</h1>
6 <h1>CloudNeta SAOPAULO Web Server_2</h1>
Bash
๋ณต์ฌ
โข
์ํ์ธ๋ฃจ ์น ์๋ฒ2๋ก 6๊ฐ์ ํธ๋ํฝ, ์น์๋ฒ 1๋ก 14๊ฐ์ ํธ๋ํฝ ์ ๋ฌ
โข
์น์๋ฒ2์ ๋น์ค์ 64/192=1/3, ์น์๋ฒ1์ ๋น์ค์ 128/192=2/3
1) ์ํ์ธ๋ฃจ EC2 ์ธ์คํด์ค(Web server 2)์ Weight ๊ฐ ์กฐ์ (64โ0)
[ec2-user@ip-172-31-12-244 ~]$ for i in {1..20}; do curl -s -q 52.223.37.135 ; done | sort | uniq -c | sort -nr
20 <h1>CloudNeta SAOPAULO Web Server_1</h1>
Bash
๋ณต์ฌ
โข
์ํ์ธ๋ฃจ ์น ์๋ฒ1๋ก ๋ชจ๋ ๋ชจ๋ ํธ๋ํฝ ์ ๋ฌ(0์ผ๋ก ์ค์ ์ ํด๋น ์๋ํฌ์ธํธ๋ก ํธ๋ํฝ์ ์ ๋ฌํ์ง ์์)
7. Global Accelerator์ Failover ๊ฒ์ฆ
โข
๊ฒ์ฆ ์ํ ์ ์๋๋ ๋ฆฌ์ ์๋ํฌ์ธํธ ๊ทธ๋ฃน์ Traffic Dial ๊ฐ์ ์ด๊ธฐ๊ฐ์ผ๋ก ์ค์
1) ์๋๋ ๋ฆฌ์ EC2 ์ธ์คํด์ค 2๋ ์ค์ง
โข
์ค์ง ํ ์๋๋ ๋ฆฌ์ ์๋ํฌ์ธํธ์ธ ALB ์ํ๋ฅผ ํ์ธํด๋ณด๋ฉด Unhealthy ์ํ๊ฐ ๋จ
โข
์๋๋ ๋ฆฌ์ ์๋ํฌ์ธํธ ์ํ๊ฐ ์ ์์ด ์๋๊ธฐ ๋๋ฌธ์ ์ํ์ธ๋ฃจ ์น ์๋ฒ๋ก ๋ชจ๋ ํธ๋ํฝ ์ ๋ฌ
[ec2-user@ip-172-31-12-244 ~]$ for i in {1..20}; do curl -s -q 52.223.37.135 ; done | sort | uniq -c | sort -nr
20 <h1>CloudNeta SAOPAULO Web Server_1</h1>
[ec2-user@ip-172-31-12-244 ~]$
Bash
๋ณต์ฌ
2) ์๋๋ ๋ฆฌ์ EC2 ์ธ์คํด์ค 2๋ ๋ค์ ์์
โข
EC2 ์ธ์คํด์ค 2๋๋ฅผ ๋ค์ ์์ํ๋ฉด ์ํ๊ฐ Healthy์ด๊ธฐ ๋๋ฌธ์ ๋ค์ ํธ๋ํฝ์ ์ ๋ฌํจ
[ec2-user@ip-172-31-12-244 ~]$ for i in {1..20}; do curl -s -q 52.223.37.135 ; done | sort | uniq -c | sort -nr
10 <h1>CloudNeta SYDNEY Web Server_2</h1>
10 <h1>CloudNeta SYDNEY Web Server_1</h1>
Bash
๋ณต์ฌ