-์ค์ต์ด๋ฏ๋ก, root๊ณ์ ์ผ๋ก ์งํ
โ๏ธ 1. AMI ์ ํ - "Amazon Linux 2 AMI (HVM) - Kernel 5.10, SSD Volume Type - ami-0cbec04a61be382d9 (64๋นํธ x86) "
โ๏ธ 2. ์ธ์คํด์ค ์ ํ ์ ํ - t2.micro
โ๏ธ 3. ์ธ์คํด์ค ๊ตฌ์ฑ - ์๋ธ๋ท : 2a - ๊ณ ๊ธ ์ธ๋ถ ์ ๋ณด ์ฌ์ฉ์ ๋ฐ์ดํฐ :
#!/bin/bash
yum install -y httpd
systemctl enable --now httpd
echo "<h1>WEB01(AL2)</h1>" > /var/www/html/index.html
โ๏ธ 4. ์คํ ๋ฆฌ์ง ์ถ๊ฐ - ๋ฐ๊พธ๋ ๊ฒ ์์ด ๋ค์
โ๏ธ 5. ํ๊ทธ ์ถ๊ฐ - ์ค์ "Name ํ๊ทธ๋ฅผ ์ถ๊ฐํ๋ ค๋ฉด ํด๋ฆญํฉ๋๋ค." ํด๋ฆญ - ๊ฐ : WEB01
โ๏ธ 6. ๋ณด์ ๊ทธ๋ฃน ๊ตฌ์ฑ - ๋ณด์ ๊ทธ๋ฃน ํ ๋น : ๊ธฐ์กด ๋ณด์๊ทธ๋ฃน ์ ํ - ์ด์ ๋ง๋ค์ด๋ "SG-WEB"์ ํ
โ๏ธ 7. ์ธ์คํด์ค ์์ ๊ฒํ - ์์ํ๊ธฐ - ์ ํค ํ์ด ์์ฑ - ํค ํ์ด ์ ํ : RSA - ํค ํ์ด ์ด๋ฆ : aws-key - ํค ํ์ด ๋ค์ด๋ก๋ - ์ธ์คํด์ค ์์
โ๏ธ 1. ์ธ์คํด์ค ์ ๋ณด์์ ํผ๋ธ๋ฆญ IPv4 ํ์ธ
โ๏ธ 2. mobaxterm session ์ถ๊ฐ (SSH)
โ๏ธ 3. remote host์ IP๊ธฐ์
โ๏ธ 4. username : ec2-user
โ๏ธ 5. aws-key (private key)๋ฃ๊ธฐ
โ๏ธ 0. ์ธ์คํด์ค - ์ธ์คํด์ค ์์
โ๏ธ 1. ์ด๋ฆ ๋ฐ ํ๊ทธ - ์ด๋ฆ : WEB02
โ๏ธ 4. ํค ํ์ด(๋ก๊ทธ์ธ) - ํค ํ์ด ์ด๋ฆ : aws-key ์ ํ(์์์ ๋ง๋ key pair)
โ๏ธ 5. ๋คํธ์ํฌ ์ค์ - ํธ์ง - ์๋ธ๋ท : ๊ฐ์ฉ์์ญ 2c - ๋ฐฉํ๋ฒฝ(๋ณด์ ๊ทธ๋ฃน) : ๊ธฐ์กด ๋ณด์ ๊ทธ๋ฃน : SG -WEB
โ๏ธ ๊ณ ๊ฐ์ฉ์ฑ(HA) ์ถ๊ตฌํ๊ธฐ ์ํด ์ด์ ์ ๋ง๋ ๊ฐ์ฉ์์ญ์ด ์๋ ๊ฐ์ฉ์์ญ 2c ์ ํ. - ์๋ฒ ํ๋(2a)๊ฐ ์๋ชป๋๋๋ผ๋ ๋๋จธ์ง ์๋ฒ(2c)๋ ์ ์์คํ ๋๋๋ก.
โ๏ธ 6. ์คํ ๋ฆฌ์ง ๊ตฌ์ฑ - EBS ๋ณผ๋ฅจ - ๋ณผ๋ฅจ 1 (AMI ๋ฃจํธ) (8 GiB, EBS, ๋ฒ์ฉ SSD(gp2)) - ํ์ผ ์์คํ
: EFS
โ๏ธ ๊ฐ์ฅ ๋น ๋ฅธ ๊ฒ์ ํ๋ก๋น์ ๋ ๋ IOPS SSD(io2)
โ๏ธ ๊ฐ์ฅ ๋๋ฆฐ ๊ฒ์ ์ฝ๋ HDD
โ๏ธ 7. ๊ณ ๊ธ ์ธ๋ถ ์ ๋ณด - ์ฌ์ฉ์ ๋ฐ์ดํฐ :
#!/bin/bash
apt update
apt install -y apache2
echo "<h1>WEB02(Ubuntu18)</h1>" > /var/www/html/index.html
Elastic Load Balancing
-๊ณ ๊ฐ์ฉ์ฑ(๋ฌด์ค๋จ ์๋น์ค) ์ถ๊ตฌ(High Availability)
-๋ก๋ ๋ฐธ๋ฐ์ฑ ํ ์๋ฒ๋ค์ ๊ฐ์ VPC๋ด์ ์์ด์ํ .
โ๏ธ 0. EC2 ๋์๋ณด๋ - ๋ก๋๋ฐธ๋ฐ์ฑ -๋ก๋ ๋ฐธ๋ฐ์ -
๋ก๋ ๋ฐธ๋ฐ์ ์์ฑ
โ๏ธ 1. ๋ก๋ ๋ฐธ๋ฐ์ ์ ํ ์ ํ - Network Load Balancer : ์์ฑ
โ๏ธ 2. ๊ธฐ๋ณธ ๊ตฌ์ฑ - ๋ก๋๋ฐธ๋ฐ์ ์ด๋ฆ : ELB-NLB
โ๏ธ์ธํฐ๋ท ๊ฒฝ๊ณ : ์ธํฐ๋ท์ ํ๊ณ ์ ์ ๊ฐ ๋ค์ด์์ ์ ์ํ๋ ๊ฒฝ์ฐ
โ๏ธ๋ด๋ถ : AWS์์์ ์ ๊ทผํ๋ ๊ฒ
โ๏ธ 3. ๋คํธ์ํฌ ๋งคํ - VPC๊ทธ๋๋ก - ๋งคํ 2a,2c ์ฒดํฌ
โ๏ธ 4. ๋ฆฌ์ค๋ ๋ฐ ๋ผ์ฐํ - ๋์ ๊ทธ๋ฃน ์์ฑ - ๋์ ์ ํ ์ ํ : ์ธ์คํด์ค - ๋์ ๊ทธ๋ฃน ์ด๋ฆ : TG-NLB
โ๏ธ 5. ์ํ๊ฒ์ฌ (Health check) - ๊ณ ๊ธ ์ํ ๊ฒ์ฌ ์ค์ - ๋ค์
โ๏ธ์ ํ์๊ฐ ์์ ์๋ต ์์ผ๋ฉด fail. ํ๋ก ์ฐจ๋จ(circuit breaker) ํด์ ๊ทธ ์ชฝ์ผ๋ก๋ ํ ๋นํ์ง ์์.
โ๏ธfail์๊ธฐ๋๋ผ๋ ๊ฐ๊ฒฉ์๋ฐ๋ผ ๊ณ์ ์ ํธ ๋ณด๋. failํ๋๊ฒ ์๊ณ๊ฐ๋งํผ ์ ์์ ์ผ๋ก ์๋ต๋๋ฉด ๋ค์ ์ฐ๊ฒฐ.
โ๏ธ 6. ๋์ ๋ฑ๋ก - ๋ ์ธ์คํดํธ ๋ชจ๋ ์ฒดํฌ, ์๋์ ๋ณด๋ฅ์ค์ธ ๊ฒ์ผ๋ก ํฌํจ
โ๏ธ 7. ๋์ ๋ณด๊ธฐ - ๋์ ๊ทธ๋ฃน ์์ฑ
โ๏ธ 8. ๋ค์ ํฌ๋กฌ ํญ ๋ก๋๋ฐธ๋ฐ์ ์ง์ - ๋ฆฌ์ค๋ ๋ฐ ๋ผ์ฐํ - ๋์๊ทธ๋ฃน ์์ฑ ์๋ก๊ณ ์นจ - TG-NLB ์ ํ - ๋งจ ํ๋จ ๋ก๋ ๋ฐธ๋ฐ์ ์์ฑ
โ๏ธ 9. ๋ก๋๋ฐธ๋ฐ์ฑ - ๋์๊ทธ๋ฃน - TG-NLB์ฒดํฌ - ํ๋จ ํญ '๋์' ํด๋ฆญ - healthy ํ์ธ
โ๏ธ 9-1.์์ฑ ํธ์ง์์ ๊ณ ์ ์ธ์ ๋ฑ ์ค์ ๊ฐ๋ฅ
โ๏ธ 10. ๋ก๋๋ฐธ๋ฐ์ฑ - ๋ก๋๋ฐธ๋ฐ์ - ํ๋จ ์ค๋ช
์ DNS์ด๋ฆ์ผ๋ก ์ ์ ๊ฐ๋ฅ
โ๏ธ์ ํ : Network ํตํด ๋คํธ์ํฌ ๋ก๋๋ฐธ๋ฐ์์ธ๊ฒ์ ํ์ธ ๊ฐ๋ฅ.
โ๏ธ์ฌ์ดํธ ์ ์ ์, ๋ผ์ด๋๋ก๋น์ด ์๋๊ธฐ ๋๋ฌธ์ ์๋ก๊ณ ์นจํ๋ค๊ณ ๋ฐ๋ก๋ฐ๋ก ๋ฐ๋์ง ์์. ๋ค๋ฅธ ๋ธ๋ผ์ฐ์ ๋ก ์ ์ํ๋ฉด ๋ฐ๋ ๊ฒ ํ์ธ ๊ฐ๋ฅ. -> ALB๋ก ํ๋ฉด ๋ผ์ด๋๋ก๋น(์์ฐจ) . NLB๋ Least connection(์ต์ ์ฐ๊ฒฐ )
โ๏ธ 0. ๋ก๋๋ฐธ๋ฐ์ฑ - ๋ก๋ ๋ฐธ๋ฐ์ - ๋ก๋๋ฐธ๋ฐ์์์ฑ - ALB์์ฑ
โ๏ธ 1. ๊ธฐ๋ณธ๊ตฌ์ฑ - ์ด๋ฆ : ELB-ALB
โ๏ธ 2. ๋คํธ์ํฌ ๋งคํ - ๋งคํ 2a,2c ์ ํ
โ๏ธ 3. ๋ณด์๊ทธ๋ฃน - ์ ๋ณด์๊ทธ๋ฃน ์์ฑ(NEW CHROME TAB)
โ๏ธ 4. ๋ณด์ ๊ทธ๋ฃน ์์ฑ - ๋ณด์ ๊ทธ๋ฃน ์ด๋ฆ : SG-ALB - ์ค๋ช
: SG-ALB - VPCํ์ธ (์ง๊ธ์ 1๊ฐ๋ผ์ ๋ง๊ฒ ์ค์ ๋์ด ์์)
โ๏ธ 4-1. ์ธ๋ฐ์ด๋ ๊ท์น - ๊ท์น์ถ๊ฐ - ์ ํ : HTTP - ์์ค ์ฌ์ฉ์ : Anywhere IPv4 - ๋งจ ํ๋จ ๋ณด์๊ทธ๋ฃน ์์ฑ
โ๏ธ 5. ๋ค์ ํฌ๋กฌ ๋ก๋๋ฐธ๋ฐ์ ํญ ์ง์
- ๋ณด์๊ทธ๋ฃน ์ ์๋ก๊ณ ์นจ - default ์ญ์ ํ SG - ALB ์ ํ
โ๏ธ 6.๋ฆฌ์ค๋ ๋ฐ ๋ผ์ฐํ - ๋์ ๊ทธ๋ฃน ์์ฑ - ๋์ ์ ํ ์ ํ : ์ธ์คํด์ค - ๋์ ๊ทธ๋ฃน ์ด๋ฆ : TG-ALB
โ๏ธ์ํ ๊ฒ์ฌ ๊ฒฝ๋ก : /var/www/html/index.html = /
โ๏ธ 6-1. ์ํ ๊ฒ์ฌ - ๊ณ ๊ธ์ํ ๊ฒ์ฌ ์ค์ (ํ์ธ๋ง) - ๋ค์
โ๏ธ 6-2. ๋ ๊ฐ ์ ํ - ์ด๋์ ๋ณด๋ฅ ์ค์ธ ๊ฒ์ผ๋ก ํฌํจ - ๋์ ๊ทธ๋ฃน ์์ฑ
โ๏ธ 6-3. ๋ค์ ํฌ๋กฌ ํญ ๋ก๋๋ฐธ๋ฐ์ ์ง์
- ๋ฆฌ์ค๋ ๋ฐ ๋ผ์ฐํ
- ๋์๊ทธ๋ฃน ์์ฑ ์๋ก๊ณ ์นจ - TG-ALB ์ ํ - ๋งจ ํ๋จ ๋ก๋ ๋ฐธ๋ฐ์ ์์ฑ
โ๏ธ 7. NLB 9~10 ์ฒ๋ผ ํ์ธ ๊ฐ๋ฅ.
-๋ก๋๋ฐธ๋ฐ์ ํธ๋ํฝ ๋ถ๋ฐฐ๊ธฐ๋ฅ ํ์ฉํ๊ธฐ์ํด, ๋ก๋๋ฐธ๋ฐ์ ๊ฑฐ์น์ง ์์ ์น์๋ฒ IP๋ก์ ์ง์ ๊ธ์งํ๊ธฐ
โ๏ธ ๋ณด์๊ทธ๋ฃน - SG-WEB ์ ํ - ์ธ๋ฐ์ด๋ ๊ท์น -์ธ๋ฐ์ด๋ ๊ท์น ํธ์ง - ์์ค - ์ฌ์ฉ์ ์ง์ - ๋ด IP
โ๏ธ ๋ณด์๊ทธ๋ฃน - SG-WEB ์ ํ - ์ธ๋ฐ์ด๋ ๊ท์น -์ธ๋ฐ์ด๋ ๊ท์น ํธ์ง - ์์ค - ์ฌ์ฉ์ ์ง์ ์ ๋๋ณด๊ธฐ - ๋ณด์๊ทธ๋ฃน ํ์์ SG-ALB ์ ํ
๐ข ์ฃผ์์ฌํญ : ์ด๊ฑด ๋ฏธ๋ด์ฑ ์ด๊ณ , ์ฒ์์ ์ค๊ณ ์์ฒด๋ฅผ ์๋ฒ์ ํผ๋ธ๋ฆญ IP๋ฅผ ์ฃผ์ง ์๋ ๋ฐฉํฅ์ผ๋ก ํด์ผํจ. ์ฒ์์ ์ค๊ณ๋ฅผ IP๋ถ์ฌํ๋ ์์ผ๋ก ์งํ ํ์ ๋ ์ด์ฉ ์ ์์ด ์ฌ์ฉ.
-web01,web02 mobaxterm์ผ๋ก CLIํ๊ฒฝ ์ ์ํด์ ์งํ
โ๏ธ 1. ํํ์ด์ง ์์คํ์ผ (aws.tar)์ mobaxtermํตํด์ ์น์๋ฒ home์ ๋ฃ๊ธฐ
โ๏ธ 2. ๊ฒฝ๋ก๋ฅผ ๋ง๋ค ํด๋ ์์ฑ
[ec2-user@ip-172-31-6-218 ~]$ sudo mkdir /var/www/html/food
โ๏ธ 3. ์ ํด๋์ tarํ์ผ ์์นด์ด๋ธ ํด์ ํ๊ธฐ
[ec2-user@ip-172-31-6-218 ~]$ sudo tar -xvf aws.tar -C /var/www/html/food
โ๏ธ 1. ํํ์ด์ง ์์คํ์ผ (azure.tar)์ mobaxtermํตํด์ ์น์๋ฒ home์ ๋ฃ๊ธฐ
ubuntu@ip-172-31-38-158:~$ ls
azure.tar
โ๏ธ 2. ๊ฒฝ๋ก๋ฅผ ๋ง๋ค ํด๋ ์์ฑ
ubuntu@ip-172-31-38-158:~$ sudo mkdir /var/www/html/sale
โ๏ธ 3. ์ ํด๋์ tarํ์ผ ์์นด์ด๋ธ ํด์ ํ๊ธฐ
ubuntu@ip-172-31-38-158:~$ sudo tar -xvf azure.tar -C /var/www/html/sale/
โ๏ธ 0. EC2 ๋์๋ณด๋ - ๋ก๋๋ฐธ๋ฐ์ฑ - ๋์๊ทธ๋ฃน - ๋์๊ทธ๋ฃน ์์ฑ
โ๏ธ 1. ๋์์ ํ : ์ธ์คํด์ค - ๋์๊ทธ๋ฃน ์ด๋ฆ : TG-FOOD - ํ๋จ์ ๋ค์ ๋ฒํผ ํด๋ฆญ
โ๏ธ 2. ๋์๋ฑ๋ก - ์ธ์คํด์ค WEB01๋ง ์ ํ ํ ์๋ ์ค์์ ๋ณด๋ฅ์ค์ธ ๊ฒ์ผ๋ก ํฌํจ ํด๋ฆญ - ๋์ ๊ทธ๋ฃน ์์ฑ
โ๏ธ 3. ๋๊ฐ์ ๋ฐฉ๋ฒ์ผ๋ก ์ด๋ฆ๋ง TG-SALE๋ก ํ๊ฐ ๋(WEB02)๋ง๋ค๊ธฐ.
โ๏ธ 1. ๋ก๋ ๋ฐธ๋ฐ์ฑ - ๋ก๋๋ฐธ๋ฐ์ - ALB์ ํ - ๋ฆฌ์ค๋ - ๊ท์น ๋ณด๊ธฐ/ํธ์ง ํด๋ฆญ
โ๏ธ 1-1. default backend cetnOS์น์๋ฒ haproxy์ ๋น๊ต
โ๏ธ 2. ๊ท์น ์ +ํด๋ฆญ- ๊ท์น ์ฝ์
ํด๋ฆญ - ์กฐ๊ฑด์ถ๊ฐ - ํ์ฅํ๋๋ฐ ๊ฐ : /food* - ์์
์ถ๊ฐ : ์ ๋ฌ๋์ - ๋์๊ทธ๋ฃน : TG-FOOD - ์๋จ์ ์ ์ฅ๋ฒํผ ํด๋ฆญ
โ๏ธ 2-1. ๊ท์น ์ +ํด๋ฆญ- ๊ท์น ์ฝ์ ํด๋ฆญ - ์กฐ๊ฑด์ถ๊ฐ - ํ์ฅํ๋๋ฐ ๊ฐ : /sale* - ์์ ์ถ๊ฐ : ์ ๋ฌ๋์ - ๋์๊ทธ๋ฃน : TG-SALE - ์๋จ์ ์ ์ฅ๋ฒํผ ํด๋ฆญ
โ๏ธ 3. ๋ก๋๋ฐธ๋ฐ์ - ELB-ALB์ ํ - ์ค๋ช - DNS์ด๋ฆ ๋ณต์ฌํด์ ์ฃผ์ ๋ง์ง๋ง์ /food or /sale๋ก ์ง์ ํ๋ฉด ๊ฐ๊ฐ ๋ค๋ฅธ ํํ์ด์ง ํ์ธ๊ฐ๋ฅ => L7์์ ๊ฐ๋ฅํ ๋ก๋๋ฐธ๋ฐ์ฑ. ( ๋ถํ๋ถ์ฐ์๋. ๊ฒฝ๋ก๊ธฐ๋ฐ๋ผ์ฐํ )
โ๏ธ 0. ์น์๋ฒ ํํ์ด์ง ๋ด์ฉ(index.html) ์์
[ec2-user@ip-172-31-6-218 ~]$ sudo vi /var/www/html/index.html
<h1>WEB01(EC2)-FIREFOX</h1>
ubuntu@ip-172-31-38-158:~$ sudo vi /var/www/html/index.html
<h1>WEB02(Ubuntu18)-mobile</h1>
โ๏ธ 1. ๋ก๋ ๋ฐธ๋ฐ์ฑ - ๋์๊ทธ๋ฃน - ๋์๊ทธ๋ฃน ์์ฑ - ๋์๊ทธ๋ฃน์ด๋ฆ : TG-FIREFOX - ๋ค์
โ๏ธ 2. web01๋ง ์ฒดํฌํด์ ์๋์ ๋ณด๋ฅ ์ค์ธ ๊ฒ์ผ๋ก ํฌํจ - ๋์๊ทธ๋ฃน ์์ฑ
โ๏ธ 3. 1,2 ํ๋ฒ ๋ ๋ฐ๋ณต, ๋์ web02๋ฅผ ๋์์ผ๋ก ๋ฑ๋ก.
โ๏ธ 4. ๋ก๋๋ฐธ๋ฐ์ฑ - ๋ก๋๋ฐธ๋ฐ์ - ALB ์ ํ -๋ฆฌ์ค๋- ๊ท์น๋ณด๊ธฐ/ํธ์ง ํด๋ฆญ -๊ท์น ์ถ๊ฐ - ์กฐ๊ฑด์ถ๊ฐ : HTTPํค๋ : User-Agent -
ํ์ฅํ๋ ๋ฐ ๊ฐ :
*Firefox*
-์์ ์ถ๊ฐ - ์ ๋ฌ๋์ - ๋์๊ทธ๋ฃน ์ ํ - TG-FIREFOX - ์ค๋ฅธ์ชฝ ์๋จ ์ ์ฅ ํด๋ฆญ
โ๏ธ 4-1. ๊ท์น์ฝ์
- ์กฐ๊ฑด์ถ๊ฐ : HTTPํค๋ : User-Agent -
ํ์ฅํ๋ ๋ฐ ๊ฐ :
*Mobile*
-์์ ์ถ๊ฐ - ์ ๋ฌ๋์ - ๋์๊ทธ๋ฃน ์ ํ - TG-MOBILE - ์ค๋ฅธ์ชฝ ์๋จ ์ ์ฅ ํด๋ฆญ
โ๏ธ 5. Firefox๋ก ์ ์ํ๋ฉด web01๋ง, ํธ๋ํฐ์ผ๋ก ์ ์ํ๋ฉด web02๋ง ๋์ด.
์ฝ๋ ; ๋๋ฆฌ๋ค
ex) ์คํ ๋ฆฌ์ง์์, ์ฝ๋ HDD
ํซ ; ๋น ๋ฅด๋ค
ex)ํซ๋ผ์ธ
โ๏ธALB(:Application Load Balancer) - L7๊ธฐ๋ฅ
ํฌํธ๋ฒํธ์ ์ปจํ
์ธ
๋ก๋๋ฐธ๋ฐ์ ์์ฑ ์ ๋ณด์๊ทธ๋ฃน ์ค์ ํ์
โ๏ธNLB(:Network Load Balancer) - L7๊ธฐ๋ฅ
ํฌํธ๋ฒํธ๋ง ์ด์ฉ
๋ก๋๋ฐธ๋ฐ์ ์์ฑ ์ ๋ณด์๊ทธ๋ฃน ์ค์ X
-2xx (์ฑ๊ณต์ฝ๋)
-4xx (์๋ฌ์ฝ๋)
-5xx (์๋ฒ์ค๋ฅ(๊ฝ๋ถํ))
โ๏ธ๊ฐ๊ฐ์ ์น์๋ฒ์ ํผ๋ธ๋ฆญ IP์ฃผ๋ฉด์๋จ, ๋ก๋๋ฐธ๋ฐ์ ์ด์ฉํด์ ์น์๋ฒ ์ ๊ทผํ ์ ์๋๋ก ํด์ผํจ
(ํธ๋ํฝ๋ถ๋ฐฐ๊ฐ ์ด๋ฃจ์ด์ง์ง ์์ ์ ์์ด ๋๋ฉด ๋ก๋๋ฐธ๋ฐ์ ๊ฐ์น ์์.)
๊ฒฝ๋ก์ ๋ฐ๋ผ ์๋ฒ ์ฐ๊ฒฐ
โ๏ธabc.com/food -> web01
โ๏ธabc.com/sale -> web02
โ๏ธAL2(ec2-user)
โ๏ธUbuntu(ubuntu)