ALB ์ NLB๋ฅผ ์ด์ฉํ ๋ก๋ ๋ฐธ๋ฐ์ฑ ๊ตฌ์ฑํ๊ธฐ
์ด๋ฒ ์ค์ต์ Amazon ELB์ ALB์ NLB๋ก ๋ก๋ ๋ฐธ๋ฐ์ฑ ํ๊ฒฝ์ ๊ตฌ์ฑํ์ฌ
๋ค์์ ์ธ์คํด์ค๋ฅผ ์ด์ฉํ ELB์ ๋์ ๋ฐ ํ์ฉ์ ํ์ธํด๋ณธ๋ค!
CloudFormation ์๊ฐ
์์ ์ค์ต์์ ๋ค์ํ AWS ์ธํ๋ผ๋ฅผ ํ๋์ฉ ์๋์ผ๋ก ์์ฑํด์ ์ฌ์ฉํ๋ค
=> ์ค์ต ํ๊ฒฝ ๊ตฌ์ฑ์ ๋ง์ ์๊ฐ์ด ์์๋๋ค
์ด๋ฐ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ์ค์ต ํ๊ฒฝ์ ์ฝ๋ ๊ธฐ๋ฐ์ผ๋ก ์์ฑํ๋ ๊ธฐ์ ์ธ CloudFormation์ ์ฌ์ฉํ์ฌ ๋ ๋น ๋ฅด๊ณ ์ ํํ ์ค์ตํ๊ฒฝ์ ๊ตฌ์ฑํ ์ ์๋ค
CloudFormation์ IaC(Infrastructure as Code) ๊ธฐ๋ฐ์ผ๋ก AWS ์ธํ๋ผ ๋ฆฌ์์ค๋ฅผ ์๋์ผ๋ก ์์ฑํ๋ ์๋น์ค์ด๋ค!
=> VPC, EC2 ๋ฑ ๋ฆฌ์์ค๋ฅผ ์๋์ผ๋ก ์์ฑํ ํ์ ์์ด ๋ฆฌ์์ค๋ค์ ํ ํ๋ฆฟ(์ฝ๋)์ผ๋ก ๊ตฌ์ฑํ๊ณ ์คํ์ ์์ฑํ์ฌ ํด๋น ์๋น์ค์ ํ๋ก๋น์ ๋๊ณผ ์ค์ ์ ๋ฏธ๋ฆฌ ๊ตฌ์ฑํ ์ ์๋ค
=> ์ธํ๋ผ ๊ตฌ์ฑ์ ์๋ํํ์ฌ ์ด์ ๋น์ฉ์ ์ค์ด๊ณ ์ธํ๋ผ ๊ด๋ฆฌ๋ฅผ ๊ฐ์ํํ ์ ์๊ณ ์ง์์ ๋ฐฐํฌ๋ฅผ ์ง์ํ๋
CI/CD ํ์ดํ๋ผ์ธ๊ณผ ํตํฉํ ์ ์๋ค
CloudFormation์ ์ฌ์ฉํ ๋๋ ํ ํ๋ฆฟ ๊ตฌ์กฐ์ ์ฝ๋ ํํ์ ์ดํด๊ฐ ํ์ํ๋ฉฐ, CloudFormation์ ์ด์ฉํ์ฌ ๋ชจ๋ AWS ์ธํ๋ผ๋ฅผ ์ ์ํ๊ณ ์์ฑํ ์ ์๋ค!
CloudFormation ๊ตฌ์ฑ ์์๋ฅผ ์ดํด๋ณด๋ฉด
1. ํ ํ๋ฆฟ : AWS ์ธํ๋ผ๋ฅผ JSON ๋๋ YAML ํ์์ ์ฝ๋๋ก ์ ์ํ๋ ํ์ผ
=> ํ
ํ๋ฆฟ์ ์ด์ฉํ์ฌ AWS ์ธํ๋ผ์ ์์ฑ, ๊ด๊ณ, ์ข
์์ฑ ๋ฑ์ ์ ์
2. ์คํ : CloudFormation์ ์ด์ฉํ์ฌ ์์ฑํ๋ AWS ์ธํ๋ผ์ ์งํฉ
3. ๋ฆฌ์์ค : AWS CloudFormation์ด ์์ฑํ๋ AWS ๋ฆฌ์์ค
=> Amazon EC2 ์ธ์คํด์ค, Amazon RDS ๋ฐ์ดํฐ๋ฒ ์ด์ค, Amazon S3 ๋ฒํท ๋ฑ์ด ํฌํจ๋จ
4. ํ๋ผ๋ฏธํฐ : ์คํ์ ์์ฑํ ๋ ์ ๋ฌํ ์ ์๋ ๋งค๊ฐ๋ณ์
=> ํ๋ผ๋ฏธํฐ๋ฅผ ์ฌ์ฉํ๋ฉด ํ ํ๋ฆฟ์ ์ฌ์ฌ์ฉํ์ฌ ๋ค๋ฅธ ํ๊ฒฝ์ ๋ํ ์คํ์ ์ฝ๊ฒ ์์ฑํ ์ ์๋ค
5. ์ด๋ฒคํธ : CloudFormation ์คํ์์ ๋ฐ์ํ๋ ๋ชจ๋ ์ด๋ฒคํธ๋ฅผ ๊ธฐ๋ก
=> ์คํ ์์ฑ, ๋ณ๊ฒฝ, ์ญ์ ์ ๊ด๋ จ๋ ์ ๋ณด๋ฅผ ์ ๊ณต (์ด๋ฅผ ํ์ฉํ์ฌ ์คํ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์์)
6. CloudFormation : ํ ํ๋ฆฟ์ ํด์ํด์ ์คํ์ ์์ฑํ๊ณ , ์ ์๋ AWS ์ธํ๋ผ๋ฅผ ์์ฑ, ๋ณ๊ฒฝ, ์ญ์ ํ ์ ์์
๊ฐ ์๋ค!
๋์ ์์๋ฅผ ์ดํด๋ณด๋ฉด
1. CloudFormation ํ ํ๋ฆฟ ์์ฑ
2. ํ ํ๋ฆฟ ์ ๋ก๋
3. ์ ๋ก๋ํ ํ ํ๋ฆฟ์ผ๋ก ์คํ ์์ฑ ๋๋ ์ ๋ฐ์ดํธ
4. ์คํ ๋ชจ๋ํฐ๋ง
=> CloudFormation์ ์คํ ์์ฑ, ์ ๋ฐ์ดํธ๋ฅผ ์ํํ๋ฉด์ ๋ก๊ทธ์ ์ด๋ฒคํธ๋ฅผ ์์ฑํ๋ฏ๋ก ์คํ ์ํ๋ฅผ ๋ชจ๋ํฐ๋งํ ์ ์์
5. ์คํ ์ญ์
=> ์คํ์ ์ญ์ ํ๋ฉด ์คํ์ ์ํ ๋ชจ๋ AWS ์ธํ๋ผ๋ ํจ๊ป ์ญ์
์ด๋ ๊ฒ ๋ค์ฏ ๋จ๊ณ๋ฅผ ์์ฐจ์ ์ผ๋ก ๋์ํ๋ค
CloudFormation์ผ๋ก ๊ธฐ๋ณธ ์ธํ๋ผ ๋ฐฐํฌํ๊ธฐ
๊ธฐ๋ณธ ์ค์ต ๋์์ ํ์ํ ๊ธฐ๋ณธ ์ธํ๋ผ ์์์ AWS CloudFormation์ผ๋ก ์๋ ๋ฐฐํฌํ๋ค!
1. AWS ๊ด๋ฆฌ ์ฝ์์์ ์๋น์ค > CloudFormation ์๋น์ค๋ก ๋ค์ด๊ฐ ์คํ ์์ฑ์ ๋๋ฅธ๋ค
2. Amazon S3 URL์ https://cloudneta-aws-book.s3.ap-northeast-2.amazonaws.com/chapter4/elblab.yaml ๋ฅผ ์
๋ ฅ
(ํ
ํ๋ฆฟ ํ์ผ์ URL๋ก ์ ๊ณต)
3. ์ด๋ฆ๊ณผ ํคํ์ด ํ์ผ์ ์ค์ ํด์ค๋ค
4. ์คํ ์ต์ ๊ตฌ์ฑ ํ์ด์ง์์๋ ๋ณ๋์ ์ค์ ์์ด ๋ค์์ ๋๋ฅด๊ณ elblab ๊ฒํ ์์๋ ๋ณ๋์ ์ค์ ์์ด ์ ์ก์ ๋๋ฌ ์คํ์ ์์ฑํ๋ค
5. AWS CloudFormation ๊ธฐ๋ณธ ์ธํ๋ผ๋ฅผ ๋ฐฐํฌํ๊ณ ์ผ์ ์๊ฐ(์ฝ 5๋ถ)์ด ์ง๋ ์คํ ์ํ๊ฐ CREATE_COMPLETE๊ฐ ๋๋ฉด
๋ชจ๋ ์ธํ๋ผ ๋ฐฐํฌ๊ฐ ์ ์์ ์ผ๋ก ์๋ฃ๋ ๊ฒ์ด๋ค
์ด๋ ๊ฒ AWS CloudFormation์ผ๋ก ์์ฑ๋ ๊ธฐ๋ณธ ์ธํ๋ผ ์์ ์ ๋ณด๋ฅผ ํ์ธํ ์ ์๋ค
๊ธฐ๋ณธ ์ธํ๋ผ ํ๊ฒฝ ๊ฒ์ฆํ๊ธฐ
๊ธฐ๋ณธ ์ธํ๋ผ๋ก ์์ฑ๋ ์์์ ๋ณด๋ฉด MyVPC์ ELB-VPC๊ฐ ์๋๋ฐ
MyVPC์๋ MyEC2 ์๋ฒ๋ฅผ ๋ฐฐ์นํ์ฌ ELB์์ ์ ๊ณตํ๋ ๋ก๋ ๋ฐธ๋ฐ์ฑ ๊ธฐ๋ฅ์ ํ ์คํธํ๊ฒ ํ๊ณ
ELB-VPC์๋ ์ค์ต์ ์ฌ์ฉ๋๋ ์๋ฒ๊ฐ ์์นํ๋ฉฐ, ELB-VPC์ ์ฒซ ๋ฒ์งธ ์๋ธ๋ท์ ํ ๋(SERVER-1), ๋ ๋ฒ์งธ ์๋ธ๋ท์ ๋ ๋(SERVER-2, SERVER-3) ๋ฑ
์ด ์ธ ๋์ ์๋ฒ๋ฅผ ์๋น์ค ์ ๊ณต์ฉ์ผ๋ก ๋ฐฐ์นํด์ ํฅํ ์ค์ต์์ ํ์ฉํ๋ค
(์ค์ต์ ์ํด ๊ตฌ์ฑ๋ ์ธ ๋์ ์ธ์คํด์ค์๋ HTTP์ SNMP ์๋น์ค๋ฅผ ๋ฏธ๋ฆฌ ์ค์นํด ๋์๋ค)
=> HTTP๋
์ธํฐ๋ท์์ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ์ ์ ์๊ฒ ํ๋ ํ์ค ํ๋กํ ์ฝ๋ก, ์น ์๋ฒ์ ํด๋ผ์ด์ธํธ ๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ์ ๋ ์ฌ์ฉํ๋ค!
HTTP๋ ๋ค์ํ ๋ฉ์๋๋ฅผ ์ฌ์ฉํ์ฌ ์์ฒญ๊ณผ ์๋ต์ ์ผ๋ฐ ํ ์คํธ ํ์์ผ๋ก ์ฃผ๊ณ ๋ฐ์ผ๋ฉฐ,์ฌ์ฉํ๋ ๋ฉ์๋๋ก๋ GET, POST, PUT, DELETE ๋ฑ์ด ์๋ค
HTTP๋ TCP ํ๋กํ ์ฝ์ ์ฌ์ฉํ์ฌ ์ ๋ขฐ์ฑ ์๊ฒ ๋ฐ์ดํฐ๋ฅผ ์ก์์ ํ๋ฉฐ, 80๋ฒ ํฌํธ๋ฅผ ์ฌ์ฉํ๋ค
=> SNMP๋
SNMP๋ ๋คํธ์ํฌ ์ฅ๋น๋ค์ ๋ชจ๋ํฐ๋งํ๊ณ ๊ด๋ฆฌํ๋ ํ๋กํ ์ฝ์ด๋ค!
์ด๋ฅผ ์ํด SNMP๋ ๋คํธ์ํฌ ์ฅ๋น๋ค์ ์์ด์ ํธ๋ฅผ ์ค์นํ๊ณ ,SNMP ๊ด๋ฆฌ์์ ์์ด์ ํธ ๊ฐ์ ๋ฉ์์ง๋ฅผ ์ฃผ๊ณ ๋ฐ๋ ๋ฐฉ์์ผ๋ก ๋์ํ๋ค
SNMP๋ ์ผ๋ฐ์ ์ผ๋ก MIB๋ผ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ฌ์ฉํ์ฌ ๋คํธ์ํฌ ์ฅ๋น์ ์ํ ์ ๋ณด๋ฅผ ์ ์ฅํ๋๋ฐ, ์ด๋ฅผ OID๋ผ๊ณ ํ๋ค
=> ์ด ์ ๋ณด๋ SNMP ๊ด๋ฆฌ์๊ฐ ํด๋น ID๋ฅผ ์์ฒญํ ๋๋ง๋ค ์์ด์ ํธ๊ฐ ๊ทธ์ ๋ง๋ ์์ ์ ๋ณด๋ฅผ ์ ๋ฌํ๋ ๋ฐฉ์
SNMP๋ ๋คํธ์ํฌ ์ฅ๋น๋ค์ ์ฑ๋ฅ ๋ชจ๋ํฐ๋ง, ๊ตฌ์ฑ ๋ณ๊ฒฝ, ์ฅ์ ์ง๋จ ๋ฑ ๋ค์ํ ์ฉ๋๋ก ์ฌ์ฉ๋๋ฉฐ, ์ด๊ฒ์ผ๋ก ๋คํธ์ํฌ์ ์์ ์ฑ๊ณผ ๊ฐ์ฉ์ฑ์ ๋์ผ ์ ์๋ค
SNMP๋ UDP ํ๋กํ ์ฝ์ ์ฌ์ฉํ๋ฉฐ 161๋ฒ ํฌํธ๋ฅผ ์ฌ์ฉํ๋ค
๋ชจ๋ ๊ตฌ๊ฐ์ ํผ๋ธ๋ฆญ ์ฉ๋์ ์๋ธ๋ท์ผ๋ก ๊ตฌ์ฑ๋๋ฉฐ,
์ธํฐ๋ท ๊ฒ์ดํธ์จ์ด๋ฅผ ์ด์ฉํ์ฌ ์ธ๋ถ ๊ตฌ๊ฐ๊ณผ ํต์ ์ด ๊ฐ๋ฅํ ํ๊ฒฝ์ผ๋ก ๊ตฌ์ฑ๋์ด ์์
์ด์ ์ง์ ๊ธฐ๋ณธ ์ธํ๋ผ ํ๊ฒฝ์ ํ์ธํด๋ณผ๊ฑด๋ฐ ๊ฒ์ฆ์ ํ์ํ ํด์ ์ธ์คํด์ค์ User-data๋ก ์ ์ํด์ ๋ฏธ๋ฆฌ ์ค์น๋์ด ์๋ค!
=> User-data๋ ์ธ์คํด์ค๋ฅผ ๋ถํ
ํ ๋ ์๋์ผ๋ก ์ํํ๋ ๋ช
๋ น์ด ์งํฉ์ ์๋ฏธํ๋ฉฐ,
์ธ์คํด์ค๊ฐ ์ด๊ธฐํ๋๋ ๋์ ํ์ํ ๊ตฌ์ฑ, ์ค์น, ์ค์ ๋ฑ์ ์ํํ๋ ๋ฐ ์ฌ์ฉ๋๋ค
1. SERVER-1 · 2์ ์ค์น๋ ํด๊ณผ ํ์ผ์ ํ์ธํด๋ณด์
SSH๋ก SEVER-1 ๊ณผ SERVER-2์ ์ ์ํ๊ณ ๋ช ๋ น์ด๋ฅผ ์ ๋ ฅํ๋ค
(์คํ ์ธ๋ถ ์ ๋ณด์์ ๊ฐ๊ฐ์ ํผ๋ธ๋ฆญ ip ํ์ธํ ์ ์์ => ์ง๋ ์ค์ต๋ค๊ณผ ๋์ผํ๊ฒ SSH ์ ์)
No supported authentication methods available (server sent: publickey)
๊ณ์ SSH์ ์ ๊ทผํ๋ ค๊ณ ํ๋๋ฐ ์ด๋ฐ ์๋ฌ๊ฐ ๋ ์ 30๋ถ๋์ ์ด์ฌํ ์ฐพ์๋ณด๋
EC2์์ ์ปดํจํฐ๋ฅผ ๋น๋ฆด๋ ๊ธฐ๋ณธ ์ฌ์ฉ์๊ฐ ์ ํด์ ธ ์๋ต๋๋ค,,,
๋ฌด์จ ์๋ฆฌ์ธ์ง ๋ชจ๋ฅด์ค ์ ์์ผ๋ ๊ฐ๋จํ๊ฒ ์ค๋ช ํ๋ฉด
user name์ ๋ ํด์ค๋ ec2-user ๊ฐ ์๋๋ผ SERVER-1 ๊ฐ์ ์ด๋ฆ์ผ๋ก ์ค์ ํด์ ์ ์ํ๋ฉด ์๋ฌ๊ฐ ๋ฐ์ํจ..
๊ฒฐ๋ก : ec2-user ๋ผ๋ user name์ผ๋ก ์ ์ํ๋ฉด ํด๊ฒฐ๋จ!
# SERVER-2์ SSH ํฐ๋ฏธ๋
# ๋๋ ํ ๋ฆฌ(ํด๋) ํธ๋ฆฌ ๊ตฌ์กฐ ์ถ๋ ฅ
tree /var/www/html
# xff.php ํ์ผ ์ ๋ณด ํ์ธ(์น์์ ํด๋น ํ์ผ์ ์ ๊ทผํ ๋ ์ ์์ ์ ๋ณด๊ฐ ์ถ๋ ฅ๋๋๋ก ๋ง๋ ์ค์ต ํ์ผ)
cat /var/www/html/xff.php
์ด๋ ๊ฒ SERVER 1, 2 ๋ฅผ ํ์ธํด๋ณด๋ฉด 1์๋ dev๋ผ๋ ํด๋๊ฐ 2์๋ mgt๋ผ๋ ํด๋๊ฐ ์์ฑ๋ ๊ฒ์ ๋ณผ ์ ์๋ค
(๊ฐ ์๋ฒ์ ์๋ ๋ค๋ฅธ ์ด๋ฆ์ ํด๋๋ ํฅํ ๋ก๋ ๋ฐธ๋ฐ์ฑ ์ค์ต์ ์ฌ์ฉ๋จ)
2. MyEC2์์ SERVER-1,2,3์ผ๋ก HTTP ์๋น์ค์ SNMP ์๋น์ค๋ฅผ ํ์ธํด๋ณด์
# MyEC2 SSH ํฐ๋ฏธ๋
# SERVER-1,2,3์ ํผ๋ธ๋ฆญ IP๋ฅผ ๋ณ์์ ์ง์ -> ์๋ EC21, EC22, EC23 IP ์ ๋ณด๋ ๊ฐ์์ IP ์ ๋ณด ์
๋ ฅ
# (๋์ด์ฐ๊ธฐ ํ๋ฉด ์๋จ!)
EC21=43.201.85.100
EC22=52.78.193.78
EC23=52.78.224.114
# ๋ณ์ ์ง์ ํ์ธ
echo $EC21
echo $EC22
echo $EC23
# SERVER-1 ์น ์๋น์ค ํ์ธ
curl $EC21
curl $EC21/dev/
curl $EC21/mgt/ # SERVER-1 ์๋ mgt ํด๋๊ฐ ์์ด์ Not Found ๊ฐ ๋ธ!
curl $EC21/xff.php
# SERVER-1 SNMP ์๋น์ค ํ์ธ
snmpget -v2c -c public $EC21 1.3.6.1.2.1.1.5.0
# SERVER-2, SERVER-3๋ ๋์ผํ๊ฒ ์น ์๋น์ค ํ์ธ, SNMP ์๋น์ค ํ์ธ์ ํ๋ฉด ๋๋ค
SNMP์์ ์ ์๋ ๊ธฐ๋ณธ OID ์ ๋ณด
1.3.6.1.2.1.1.1.0 - sysDescr : sysDescr ๊ฐ์ ์ฅ๋น ์ค๋ช ์ด๋ฉฐ, ์ฅ๋น ์ ์กฐ์ฌ์ ๋ฐ๋ผ ํฌ๊ธฐ์ ์ฐจ์ด๊ฐ ์๋ค
=> ์ฅ๋น ์ ๋ณด๋ฅผ ์ถ๋ ฅํ ๋๋ ๋ถ๊ฐ ์ ๋ณด๋ก ์ถ๋ ฅ
1.3.6.1.2.1.1.2.0 - sysObjectID : sysObjectID ๊ฐ์ ์ฅ๋น์ ๊ณ ์ ํ ID ๊ฐ์ ๋ฐํํ๋ฉฐ, ํด๋น ๊ฐ์ ์ฌ์ฉํ์ฌ ์ฅ๋น ๋ฒค๋, ์ฅ๋น ์ข ๋ฅ๋ฅผ ๋ ์์ ์ผ๋ก ๊ด๋ฆฌํ ์ ์์
1.3.6.1.2.1.1.3.0 - sysUpTime : sysUpTime ๊ฐ์ ์ฅ๋น๊ฐ ๋ถํ ๋์ด ํ์ฌ๊น์ง ๋์ํ milli-second ๊ฐ์ด๋ฉฐ, ์ฟผ๋ฆฌํ ๋ ์ ๋ฐ์ดํธ๋๋ ์ ๋ณด์ด๋ค
1.3.6.1.2.1.1.5.0 - sysName : sysName์ ์ฌ์ฉ์๊ฐ ์ฅ๋น์ ์ค์ ํ ์ฅ๋น ์ด๋ฆ์ผ๋ก, ์ค์ ํ์ง ์์ผ๋ฉด Null ๊ฐ์ ์ถ๋ ฅํ๋ค
=> Null ๊ฐ์ ์ถ๋ ฅํ ๋ ํด๋น ์ฅ๋น ์ด๋ฆ์ IP ์ฃผ์ ํน์ ์ฅ๋น Alias ์ด๋ฆ(๋ณ์นญ)์ผ๋ก ์ถ๋ ฅ๋จ
ALB๋ฅผ ์์ฑํ๊ณ ๋์ ๊ณผ์ ํ์ธํ๊ธฐ
์์ ๊ตฌ์ฑ๋ ๊ธฐ๋ณธ ํ๊ฒฝ ๊ตฌ์ฑ์ ๋ฐํ์ผ๋ก ALB๋ฅผ ์์ฑํด์ ๊ฐ ๊ฐ์ฉ ์์ญ๋ณ ๋ก๋ ๋ฐธ๋ฐ์ฑ ๋์ ๊ณผ์ ์ ํ์ธํด๋ณด์
(ALB๋ฅผ ELB-VPC ์ ๊ตฌ์ฑํจ)
1. ALB ์์ฑํ๊ธฐ
EC2 > ๋ก๋ ๋ฐธ๋ฐ์ฑ > ๋์ ๊ทธ๋ฃน ๋ฉ๋ด๋ฅผ ์ ํํ ํ ์ถ๋ ฅ๋๋ ํ์ด์ง์์ ๋์ ๊ทธ๋ฃน ์์ฑ์ ๋๋ฅธ๋ค
๊ทธ๋ฆผ์ฒ๋ผ ์ค์ ํด์ฃผ๊ณ ๋ค์์ ๋๋ฅธ๋ค
๋์ ๋ฑ๋ก์์ ์ค์ต์ ์ฌ์ฉํ ๋ชจ๋ ์ธ์คํด์ค๋ฅผ ์ฒดํฌํ ํ ์๋์ ๋ณด๋ฅ ์ค์ธ ๊ฒ์ ํฌํจ์ ๋๋ฅด๊ณ
์ ํํ ์ธ์คํด์ค๊ฐ ๋์์ผ๋ก ์ด๋๋ ๊ฒ์ ํ์ธํ ํ ๋์ ๊ทธ๋ฃน ์์ฑ์ ๋๋ฅธ๋ค
(๋์ ๊ทธ๋ฃน์ด ์์ฑ๋๊ฑธ ํ์ธํ ์ ์์)
EC2 > ๋ก๋๋ฐธ๋ฐ์์ ๋ค์ด๊ฐ์ ๋ก๋ ๋ฐธ๋ฐ์ ์์ฑ์ ๋๋ฅธ๋ค
๋ก๋ ๋ฐธ๋ฐ์ ์์ฑ ์ฐฝ์ ๋ค์ด๊ฐ๋ฉด
[๊ธฐ๋ณธ ๊ตฌ์ฑ]์์ ๋ก๋ ๋ฐธ๋ฐ์ ์ด๋ฆ์ 'ALB'๋ก ์ ๋ ฅํ๊ณ
[๋คํธ์ํฌ ๋งคํ]์์ VPC ๋ ELB-VPC ์ ํ
์ ํํ VPC์์ ์ฌ์ฉํ ๊ฐ์ฉ ์์ญ์ ๋ชจ๋ ์ฒดํฌ
[๋ณด์ ๊ทธ๋ฃน] ๋ณด์ ๊ทธ๋ฃน์ ๊ธฐ์กด default๋ฅผ ์ ๊ฑฐํ ํ elblab-ELBSG-XXXX ์ ํ
[๋ฆฌ์ค๋ ๋ฐ ๋ผ์ฐํ ] ๋ฆฌ์ค๋ HTTP:80 ๊ธฐ๋ณธ๊ฐ, ๋์ ๊ทธ๋ฃน์ ์์ ์ค์ ํ ALB-TG ์ ํ
์ด๋ ๊ฒ ํ ํ์ ๊ฐ์ฅ ์๋์ชฝ์ ์๋ ๋ก๋ ๋ฐธ๋ฐ์ ์์ฑ์ ๋๋ฅด๋ฉด ๋๋ค
์์ฑ๋ ๋ก๋ ๋ฐธ๋ฐ์๋ ์ผ์ ์๊ฐ(์ฝ 5๋ถ)์ด ์ง๋๋ฉด ํ๋ก๋น์ ๋ ์ํ์์ ํ์ฑํ ์ํ๋ก ๋ณ๊ฒฝ๋๋ค!
ALB ๋์ ํ์ธํ๊ธฐ
์ง๊ธ๊น์ง ALB ๋ก๋ ๋ฐธ๋ฐ์๋ฅผ ์์ฑํ์๊ณ ์ด์ ์์ฑ๋ ALB๊ฐ ์ด๋ป๊ฒ ๋์ํ๋์ง ์ดํด๋ด์ผ ํ๋ค!
์์ ์ค์ต์์ ALB-TG ๋์ ๊ทธ๋ฃน์ ์ธ์คํด์ค๋ค์ ํฌํจํ์ผ๋ฉฐ, ์์ฑ๋ ๋ก๋ ๋ฐธ๋ฐ์๋ ๋ ๊ฐ์ ๊ฐ์ฉ ์์ญ์ ๊ฐ๊ฐ ์์ฑ๋๋ค!
=> ์ด๋, ๋ก๋ ๋ฐธ๋ฐ์๋ ํต์ ์ ์ํ ENI๋ฅผ ์์ฑํ๊ณ ํผ๋ธ๋ฆญ IP ์ฃผ์๋ฅผ ํ ๋นํ๋ค
(๋ํ ALB ๋ก๋ ๋ฐธ๋ฐ์๊ฐ ์์ฑ๋๋ฉด ๊ฐ๊ฐ์ ALB๋ก ๋๋์ด์ ์ ๋ฌํ ์ ์๋๋ก ALB ๋๋ฉ์ธ ์ฃผ์๊ฐ ์์ฑ๋๋ค)
์ค์ต์ ํ๊ธฐ์ ์์ ์์ฑ๋ ALB์ ๋์์ ๊ฐ๋จํ ์ค๋ช ํ์๋ฉด
HTTP ํด๋ผ์ด์ธํธ ์ ์ฅ์ธ MyEC2์์ HTTP ์๋ฒ ์ ์ฅ์ธ SERVER-1,2,3 ์ผ๋ก ์ ๊ทผํ ๋, ๊ฐ๊ฐ์ ์ธ์คํด์ค๋ก ์ง์ HTTP ์ ๊ทผ์ ํ์ง์๊ณ ALB ๋๋ฉ์ธ ์ฃผ์๋ก ์ ๊ทผํ๊ฒ ๋๋ค
=> ์ด๋, ์์ ์ ์ํ ๋ก๋ ๋ฐธ๋ฐ์์ ๋ฆฌ์ค๋ ์ ์ฑ (HTTP:80์ ๋ํด ๋์ ๊ทธ๋ฃน์ผ๋ก ์ ๋ฌํ๋ ๊ท์น)์ ๋ฐ๋ผ ์์ฑ๋ ALB๋ฅผ ์ด์ฉํ์ฌ ๊ฐ ์๋ฒ๋ก ๋ก๋ ๋ฐธ๋ฐ์ฑ์ด ๋๋ค
1. MyEC2 ์ธ์คํด์ค์ SSH๋ก ์ ์ํ์ฌ ๋ช ๋ น์ด๋ฅผ ์ ๋ ฅํ๋ค
# MyEC2์ SSH ํฐ๋ฏธ๋
# ALB DNS ์ด๋ฆ ๋ณ์ ์ง์
ALB=ALB-1154727034.ap-northeast-2.elb.amazonaws.com # ๊ฐ์์ ALB DNS ์ด๋ฆ ์
๋ ฅ
# dig๋ก ๋๋ฉ์ธ์ ๋ํ ์ง์ ์ํ
dig $ALB +short
ALB ๋ณ์์๋ ๊ฐ์์ ALB DNS ์ด๋ฆ์ ์ ๋ ฅํด์ผ ํ๋ค
(ALB DNS ์ด๋ฆ์ AWS์ ๋ก๋ ๋ฐธ๋ฐ์ ํ์ด์ง์์ ์์ฑ๋ ๋ก๋ ๋ฐธ๋ฐ์๋ฅผ ํด๋ฆญํ๋ฉด ์ ์ ์๋ค)
์ด ๊ฒฐ๊ณผ์ฒ๋ผ dig ๋ช ๋ น์ด๋ก ALB DNS ๋๋ฉ์ธ ์ฃผ์์ ๋ํ ์ง์๋ฅผ ํ ๋๋ ๋ ๊ฐ์ ์ ๋ ๊ณต์ธ IP๊ฐ ์ถ๋ ฅ๋๋ค
(๊ฐ์ฉ ์์ญ๋น ๊ฐ๊ฐ ์์ฑ๋ ALB์ ENI ์ ๋ IP์)
=> ์ฆ, ์ฌ์ฉ์๊ฐ ALB ๋๋ฉ์ธ ์ฃผ์๋ก ์ ์์ ์๋ํ๋ฉด DNS ์ง์ ๊ฒฐ๊ณผ์ธ ์ ๋ ๊ณต์ธ IP๋ก ๋ฒ๊ฐ์ ๊ฐ๋ฉฐ ์ ์ํ๊ฒ ๋จ
2. curl ๋ช ๋ น์ด๋ฅผ ์ ๋ ฅํ๊ณ ๊ฒฐ๊ณผ๋ฅผ ํ์ธํ๋ค
# MyEC2์ SSH ํฐ๋ฏธ๋
# curl ์ ์ ํ
์คํธ - ALB๋ ๊ธฐ๋ณธ ๋ผ์ด๋ ๋ก๋น ๋ฐฉ์์ผ๋ก ๋์ ๋ถ์ฐ
curl $ALB
curl $ALB
# ๋ฐ๋ณต๋ฌธ์ ํ์ฉํ์ฌ curl ์ ์ ํ
์คํธ (for ๋ฌธ์ผ๋ก 20๋ฒ ๋ฐ๋ณต ์ ์์ ์ํํ ํ ๋์ผํ ๊ฒฐ๊ณผ ๊ฐ์ ๋ชจ์ ์ถ๋ ฅ)
for i in {1..20}; do curl $ALB --silent ; done | sort | uniq -c | sort -nr
# ๋ฐ๋ณต๋ฌธ์ ํ์ฉํ์ฌ curl ์ ์ ํ
์คํธ (for ๋ฌธ์ผ๋ก 90๋ฒ ๋ฐ๋ณต ์ ์์ ์ํํ ํ ๋์ผํ ๊ฒฐ๊ณผ ๊ฐ์ ๋ชจ์ ์ถ๋ ฅ)
for i in {1..90}; do curl $ALB --silent ; done | sort | uniq -c | sort -nr
๋ฐ๋ณต ์ ์ ์ํ ๊ฒฐ๊ณผ๋ ALB ๋๋ฉ์ธ ์ฃผ์๋ก ์ ์์ ์๋ํ๋ฉด ์ธ ๋์ ์น ์๋ฒ๊ฐ ๋ฐฐ์น๋ ๋์ ๊ทธ๋ฃน์ผ๋ก ๊ฑฐ์ 33% ๋น์ค์ผ๋ก ๊ท ๋ฑํ๊ฒ ๋ก๋ ๋ฐธ๋ฐ์ฑ์ด ๋๋ ๊ฒ์ ๋ณด์ฌ์ค๋ค
=> ์ด๋ ๊ฒ MyEC2์์ ALB ๋๋ฉ์ธ ์ฃผ์๋ก HTTP ์ ๊ทผ์ 90ํ ์๋ํ๋ฉด ALB ๋๋ฉ์ธ ์ฃผ์๋ฅผ IP ์ฃผ์๋ก ํด์ํด์ ๊ฐ๊ฐ์ ๊ฐ์ฉ ์์ญ์ ์๋ ALB ๋ก๋ ๋ฐธ๋ฐ์์ ์ ๋ฌํ๋ค
๊ทธ๋ฌ๋ฉด, ๋ฆฌ์ค๋ ๊ท์น์ ๋ฐ๋ผ HTTP 80๋ฒ ํฌํธ์ ํธ๋ํฝ์ ๋์ ๊ทธ๋ฃน์ผ๋ก ์ ๋ฌํ๋ฉฐ, ALB ๋ก๋ ๋ฐธ๋ฐ์๋ ๋ก๋ ๋ฐธ๋ฐ์ฑํด์ ๋์ ๊ทธ๋ฃน์ ์ํ SERVER-1,2,3์ ๋์ผํ ํธ๋ํฝ์ 30ํ์ฉ ์ ๋ฌํ๋ค
์ฝ๋์ ์ฃผ์์ ๋ณด๋ฉด ๊ธฐ๋ณธ์ ์ผ๋ก ๋ผ์ด๋ ๋ก๋น ๋ฐฉ์์ผ๋ก ๋ก๋ ๋ฐธ๋ฐ์ฑ์ด ๋์ํ๋ค๊ณ ๋์ด์๋๋ฐ
์ด๋ ์ฝ๊ฒ ๋งํด ๊ฐ ALB๋น ๋์ผํ ํธ๋ํฝ์ ์ ๋ฌํ๋ค๋ ๊ฒ์ด๋ค
=> ํ์ฌ ๊ฐ์ฉ ์์ญ์ ์๋ ์๋ฒ์ ์๊ฐ ๋ค๋ฅด๋ฏ๋ก ์ ์ ์์ ์๋ฒ์ ๋ ๋ง์ ๋ถํ๊ฐ ๋ฐ์ํ๋ ๊ฒ์ด๋ผ๊ณ ์์ํ ์ ์์
๊ทธ๋ผ์๋ ๋์ผํ ํ์๋ก ์ ๋ฌ๋๋ ์ด์ ๋ ์ ๋ฒ์ ๋ฐฐ์ ๋ ๊ต์ฐจ ์์ญ ๋ก๋ ๋ฐธ๋ฐ์ฑ ๊ธฐ๋ฅ ๋๋ฌธ์ด๋ค!
(๊ฐ์ฉ ์์ญ์ ๊ต์ฐจํ์ฌ ๋์ ์์์ ๊ท ๋ฑํ ๋ก๋ ๋ฐธ๋ฐ์ฑ์ ์ ๊ณต)
์ฐธ๊ณ ๋ก ELB ์ค ALB๋ ๊ต์ฐจ ์์ญ ๋ก๋ ๋ฐธ๋ฐ์ฑ์ด ๊ธฐ๋ณธ์ ์ผ๋ก ํ์ฑํ๋ ์ํ๋ก ๋์ํจ
ALB ๊ฒฝ๋ก ๊ธฐ๋ฐ ๋ผ์ฐํ ๊ธฐ๋ฅ์ ๊ตฌ์ฑํ๊ณ ํ์ธํ๊ธฐ
MyEC2 ์ธ์คํด์ค์ SSH๋ก ์ ์ํ์ฌ ๋ช ๋ น์ด๋ฅผ ์ ๋ ฅํด๋ณด์!
# MyEC2์ SSH ํฐ๋ฏธ๋
# /dev/index.html ์ ๊ทผ -> ๋ก๋ ๋ฐธ๋ฐ์ฑ ๊ธฐ๋ฅ์ผ๋ก SERVER-1๋ง ์ ๊ทผ ๊ฐ๋ฅ
curl $ALB/dev/index.html --silent
curl $ALB/dev/index.html --silent
curl $ALB/dev/index.html --silent
# /mgt/index.html ์ ๊ทผ -> ๋ก๋ ๋ฐธ๋ฐ์ฑ ๊ธฐ๋ฅ ๋๋ฌธ์ SERVER-2, 3๋ง ์ ๊ทผ ๊ฐ๋ฅ
curl $ALB/dev/index.html --silent
curl $ALB/dev/index.html --silent
curl $ALB/dev/index.html --silent
์ด ์ค์ต์ ์ํด ๋ฏธ๋ฆฌ ๊ฐ ์๋ฒ์ ์น ์ ๊ทผ์ ํ ๋ ์ฌ์ฉ๋๋ ๋ค๋ฅธ ์ด๋ฆ์ HTML ๊ฒฝ๋ก๋ฅผ ๋ง๋ค์ด ๋์๋ค!
์ ๊ฒฐ๊ณผ์ฒ๋ผ ์น ์ ๊ทผ์ ํ ๋ ์ฌ์ฉ๋๋ ๊ฒฝ๋ก๊ฐ ๋ค๋ฅผ ๊ฒฝ์ฐ์๋ ํด๋น ๊ฒฝ๋ก๋ฅผ ๊ฐ์ง ์๋ ์๋ฒ๋ ๋ก๋ ๋ฐธ๋ฐ์ฑ์ด ์์ฒญํ ์๋ต์ ์ค๋ฅ ๋ฉ์์ง๋ก ์ ๋ฌํ๋ ๊ฒ์ ํ์ธํ ์ ์๋ค
=> ๋ก๋ ๋ฐธ๋ฐ์ฑ์ ๊ธฐ๋ณธ ๋์์ด ๋ผ์ด๋ ๋ก๋น ๋ฐฉ์์ด๋ฏ๋ก ALB๋ฅผ ์์ฑํ ๋ ๋์ผํ ๋์ ๊ทธ๋ฃน์ ๋ฌถ์ฌ ์๋ ์๋ฒ์ ์์ฐจ์ ์ผ๋ก ์๋ต์ ์์ฒญํ๊ธฐ ๋๋ฌธ
์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ๋์ผํ ๊ฒฝ๋ก ์๋น์ค๋ฅผ ํ๋ ์๋ฒ๋ฅผ ๊ฐ ๋์ ๊ทธ๋ฃน์ผ๋ก ๋ฌถ๊ณ , ALB์ ๊ฒฝ๋ก ๊ธฐ๋ฐ ๋ผ์ฐํ ๊ธฐ๋ฅ์ ์ด์ฉํ์ฌ ์น์ ์ ๊ทผํ ๋ HTML ๊ฒฝ๋ก์ ํด๋นํ๋ ๊ทธ๋ฃน์ผ๋ก ์ ๊ทผํ๋ ๊ท์น์ ์์ฑํด๋ณด์!
(๋์ ๊ทธ๋ฃน ์ค์ ์ ์ด๋ฏธ ํ์์ผ๋ ๊ฐ๋จํ๊ฒ ํ ์คํธ๋ก ๋์ด๊ฐ๊ฒ ์)
1. ๋จผ์ DEV-TG ๋์ ๊ทธ๋ฃน์ ๋ง๋ค๊ธฐ ์ํด EC2 > ๋ก๋ ๋ฐธ๋ฐ์ฑ > ๋์ ๊ทธ๋ฃน์ ๋ค์ด๊ฐ ๋์ ๊ทธ๋ฃน ์์ฑ์ ๋๋ฅธ๋ค
2. ๊ทธ๋ฃน ์ธ๋ถ ์ ๋ณด ์ง์ ํ์ด์ง์์ ๋์ ๊ทธ๋ฃน ์ด๋ฆ์ 'DEV-TG', VPC์์ ELB-VPC๋ฅผ ์ค์ ํ๊ณ ๋ค์์ ๋๋ฅธ๋ค
3. ๋์ ๋ฑ๋ก ํ์ด์ง์์ ์ค์ต์ ์ฌ์ฉํ SERVER-1 ์ธ์คํด์ค๋ฅผ ์ฒดํฌํ ํ ์๋์ ๋ณด๋ฅ ์ค์ธ ๊ฒ์ผ๋ก ํฌํจ์ ๋๋ฅธ๋ค
4. ์์ ์ ํํ ์ธ์คํด์ค๊ฐ ๋์์ผ๋ก ์ด๋๋ ๊ฒ์ ํ์ธํ ํ ๋์ ๊ทธ๋ฃน ์์ฑ์ ๋๋ฅธ๋ค
5. ๋ค์ ์ฌ์ง๊ณผ ๊ฐ์ด ๋์ ๊ทธ๋ฃน์ด ์์ฑ๋ ๊ฒ์ ํ์ธํ ์ ์๋ค
6. DEV-TG ๋์ ๊ทธ๋ฃน์ ์์ฑํ ๋ฐฉ๋ฒ์ผ๋ก MGT-TG ๋์ ๊ทธ๋ฃน๋ ์์ฑํ๋ค
(๋์ ๋ฑ๋ก์์ ์ค์ต์ ์ฌ์ฉํ SERVER-2,3 ์ธ์คํด์ค ์ ํ)
์ด๋ ๊ฒ DEV-TG(SERVER-1)์ MGT-TG(SERVER-2,3)๋ก ๋์ ๊ทธ๋ฃน์ ๋ถ๋ฆฌํ๋ค
์ด์ด์ ๊ฒฝ๋ก ๊ธฐ๋ฐ ๋ผ์ฐํ ์ค์ ์ ์ํ ALB ๋ฆฌ์ค๋ ๊ท์น์ ์ถ๊ฐํด๋ณด์
1. EC2 > ๋ก๋ ๋ฐธ๋ฐ์์์ ์์ฑ๋ ALB๋ฅผ ์ฒดํฌํ๋ค. ๊ทธ ๋ค์, ๋ฆฌ์ค๋ ๋ฐ ๊ท์น ํญ์ ํด๋ฆญํ ํ ์์ฑ๋ ๋ผ์ฐํ ๊ท์น์ ์ฒดํฌํ๊ณ ์ค๋ฅธ์ชฝ์์ ๊ท์น ๊ด๋ฆฌ > ๊ท์น ์ถ๊ฐ๋ฅผ ์ ํํ๋ค
2, ๊ท์น ์ถ๊ฐ์์๋ Name์ 'dev'๋ฅผ ์ ๋ ฅํ ํ ๋ค์์ ๋๋ฅธ๋ค
3. ๊ท์น ์กฐ๊ฑด ์ ์์ ๊ท์น ์์ ์ ์์์
=> ์กฐ๊ฑด ์ถ๊ฐ ํด๋ฆญ ํ ๊ท์น ์กฐ๊ฑด ์ ํ์์ ๊ฒฝ๋ก ์ ํ
=> ๊ฐ ์์ญ์ 'dev/*' ์ ๋ ฅ ํ ํ์ธ > ๋ค์ ํด๋ฆญ
=> ์์ ์ ํ์์ ๋์ ๊ทธ๋ฃน์ผ๋ก ์ ๋ฌ ์ ํ
=> ๋์ ๊ทธ๋ฃน์ผ๋ก ์ ๋ฌ์์ DEV-TG ์ ํ ํ ๋ค์ ํด๋ฆญ
4. ๊ท์น ์ฐ์ ์์ ์ค์ ์์๋ ์์๋ก ์ฐ์ ์์๋ฅผ ์ค์ ํ ํ ๋ค์ > ์์ฑ์ ๋๋ฅด๋ฉด ๊ท์น์ด ์์ฑ๋๋ค
5. /dev/ ๊ท์น ์์ฑ๊ณผ ๋์ผํ ๋ฐฉ๋ฒ์ผ๋ก /mgt ๊ฒฝ๋ก ๊ท์น๋ ์์ฑํ๋ค
์ด๋ ๊ฒ ๊ท์น์ด ์์ฑ๋ ๊ฒ์ ํ์ธํ ์ ์๋ค!
์ค์ต์ผ๋ก ํ์ธํด๋ณด๋ฉด
# MyEC2์ SSH ํฐ๋ฏธ๋
# dev/index.html ์ ๊ทผ
curl $ALB/dev/index.html -- silent
for i in {1..3}; do curl $ALB/dev/ --silent ; done | sort | uniq -c | sort -nr
# /mgt/index.html ์ ๊ทผ
curl $ALB/mgt/index.html -- silent
for i in {1..6}; do curl $ALB/mgt/ --silent ; done | sort | uniq -c | sort -nr
# /index.html ์ ๊ทผ
for i in {1..9}; do curl $ALB --silent ; done | sort | uniq -c | sort -nr
๋ชจ๋ ์ ๊ทผ์ด ๊ท์น์ ๋งค์นญ๋์ด ๋์ ์ค์ธ ๊ฒ์ ํ์ธํ ์ ์๋ค!
ALB์ User-Agent๋ฅผ ํ์ฉํ ๋ก๋ ๋ฐธ๋ฐ์ฑ์ ๊ตฌ์ฑํ๊ณ ํ์ธํ๊ธฐ
์ด๋ฒ์๋ ALB ๊ณ ๊ธ ๋ผ์ฐํ ๊ธฐ๋ฅ ์ค์์ HTTP ํค๋ ๊ธฐ๋ฐ ๋ผ์ฐํ ์ ๊ตฌ์ฑํ๊ณ ๊ฒ์ฆํ๋ค
=> HTTP ํ๋กํ ์ฝ์ HTTP ํค๋๋ผ๋ ๊ณต๊ฐ์ ๋ค์ํ ์ ๋ณด๋ฅผ ๋ด์ ์ ๋ฌํ๋๋ฐ, ๊ทธ์ค User-Agent ํ๋์๋ HTTP ์์ฒญ์ ๋ณด๋ด๋ ํด๋ผ์ด์ธํธ ํ๋ก๊ทธ๋จ ์ ๋ณด๊ฐ ํฌํจ๋์ด ์๋ค!
(์ค์ ๋ก ์ด ์ ๋ณด๋ฅผ ์ด์ฉํ์ฌ ์๋น์ค๋ฅผ ์ ๊ณตํ๋ ์๋ฒ๋ ํด๋ผ์ด์ธํธ ํ๋ก๊ทธ๋จ์ ๋ง๋ ์ต์ ์ ๋ฐ์ดํฐ๋ฅผ ๋ณด๋ผ ์ ์์)
์ด๋ฒ์๋ ๊ฐ์ ์ค๋งํธํฐ์ ์ธํฐ๋ท ์น ๋ธ๋ผ์ฐ์ ์์ ALB ๋๋ฉ์ธ ์ฃผ์๋ก ์ ๊ทผํ ๋ User-Agent ์ ๋ณด๋ฅผ ํ์ธํด์ ํน์ ์ฅ์น์ ์ ๊ทผ์ ์ฐจ๋จํ๋ ์ค์ต์ ํด๋ณด์!
์ธ๋ฐ....

ํท๊ฐ๋ฆฌ๋๊ฒ ์๊ฒผ์ต๋๋ค ใ
ใ
์ผ๋จ ์ค์ต ๊ณผ์ ๋ถํฐ ์ดํด๋ณด๋ฉด
1. MyEC2 ์ธ์คํด์ค์ SSH๋ก ์ ์ํ์ฌ ๋ช ๋ น์ด๋ฅผ ์ํํ๊ณ ํ์ธํ๋ค
# MyEC2์ SSH ํฐ๋ฏธ๋
dig $ALB +short
2. ์ถ๋ ฅ๋ IP ์ฃผ์ ์ค ํ ๊ฐ๋ฅผ ์ ํํ๊ณ ์ค๋งํธํฐ์ ์ธํฐ๋ท ์น ๋ธ๋ผ์ฐ์ ์ ์ง์ ์ ๋ ฅํด์ ์ ๊ทผํด๋ณธ๋ค
=> ์ ์์ ์ผ๋ก ์ ๊ทผํ๊ณ ์๊ณ ์ด์ HTTP ํค๋์ User-Agent๋ฅผ ํตํด ํน์ ์ค๋งํธํฐ์ ์ ๊ทผ์ ๋ง๋ ๊ท์น์ ์์ฑํด๋ณด๊ฒ ์!
3. ๋ก๋ ๋ฒจ๋ฐ์์์ ์์ฑ๋ ALB๋ฅผ ์ฒดํฌํ๊ณ ๋ฆฌ์ค๋ ๋ฐ ๊ท์น ํญ์ ํด๋ฆญํ ํ ๊ท์น ๊ด๋ฆฌ > ๊ท์น ์ถ๊ฐ๋ฅผ ์ ํ
4. ๊ท์น ์ถ๊ฐ์์๋ Name์ 'User-Agent'๋ฅผ ์ ๋ ฅํ ํ ๋ค์์ ๋๋ฅธ๋ค
5. ๊ท์น ์กฐ๊ฑด ์ ์์ ๊ท์น ์์ ์ ์์์ ์ค์ ์ ํด์ค๋ค
=> ์กฐ๊ฑด ์ถ๊ฐ ํด๋ฆญ ํ ๊ท์น ์กฐ๊ฑด ์ ํ์์ HTTP ํค๋ ์ ํ
=> HTTP ํค๋ ์ด๋ฆ์ 'User-Agent' ์ ๋ ฅ
=> ๊ฐ์ 'iPhone'์ผ๋ก ์ ๋ ฅํ ํ ์๋ก์ด ๊ฐ ์ถ๊ฐ ํด๋ฆญ, ๋ค์ ๊ฐ์ 'Android'๋ก ์ ๋ ฅํ ํ ํ์ธ > ๋ค์ ํด๋ฆญ
=> [๊ท์น ์์ ์ ์] ์์ ์ ํ์์ ๊ณ ์ ์๋ต ๋ฐํ ์ ํ
=> ์๋ต ๋ณธ๋ฌธ์ 'iPhone or Android Access Deny' ์ ๋ ฅ ํ ๋ค์ ํด๋ฆญ
6. ๊ท์น ์ฐ์ ์์ ์ค์ ์์๋ ์์๋ก ์ฐ์ ์์๋ฅผ ์ค์ ํ ํ ๋ค์ > ์์ฑ์ ๋๋ฅด๋ฉด ๊ท์น์ด ์์ฑ๋ ๊ฒ์ ํ์ธํ ์ ์์
7. ALB ๋ฆฌ์ค๋์ HTTP ํค๋์ User-Agent๊ฐ 'iPhone' ์ด๋ 'Android' ๊ฐ์ด๋ฉด ์ฐ๊ฒฐ์ ๊ฑฐ๋ถํ๋ ๊ท์น์ ์ถ๊ฐํ์
Before
After
์ธ๋ฐ
์ฑ ์์ ๋ณด์ฌ์ฃผ๋ ์ค์ต๊ณผ ๋์ผํ๊ฒ ์งํ์ ํด๋ ๊ณ์ ํธ๋ํฐ์ผ๋ก ์ ์์ด ๋๊ธธ๋
์ด๋ ๊ฒ *iPhone* ์ผ๋ก ์ ๋ค์ ์์ผ๋ ์นด๋๋ฅผ ๋ถ์๋๋ ๋๋ค......
๋ด๊ฐ ์๊ธฐ๋ก๋ ๊ฐ์ iPhone์ ์ ์ผ๋ฉด User-Agent ๊ฐ์ iPhone ์ด๋ผ๋ ๋ฌธ์๊ฐ ํฌํจ๋์ด ์์ผ๋ฉด ๊ท์น์ด ์ ์ฉ๋์ด์
* ๋ฅผ ์ธ ํ์๊ฐ ์๋ค๊ณ ์๊ฐํ๋ค
(์ฑ
์์๋ *iPhone*์ด ์๋๋ผ iPhone์ผ๋ก ๊ฐ์ ์ ์)
iPhone์ผ๋ก User-Agent ๊ฐ์ ์ค์ ํ๊ณ SERVER-2์ ๋ก๊ทธ๋ฅผ ํ์ธํด ๋ณด๋ฉด User-Agent ๊ฐ์ iPhone ์ด ํฌํจ๋์ด ์์ด์ ์ฑ ์์ ์ดํดํ ๋ฐ๋ก๋ ๊ท์น์ด ์ ์ฉ๋์ด์ผ ํ ํ ๋ฐ ์ ์์ด ๋๋ฌด๋๋ฌด ์ ๋๋ค!
(๊ทธ๋์ ๊ท์น ์์๋ 1๋ฒ์ผ๋ก ๋ฐ๊ฟ๋ณด๊ณ ์ด๊ฒ ์ ๊ฒ ์ฐพ์๋ณด๋ฉด์ ์๋ํ๋ค๊ฐ ๋ฌธ์์ด์ iPhone์ด๋ผ๋ ๋จ์ด๊ฐ ์์ฌ์์ผ๋
*๋ฅผ ์ ๋ค์ ๋ถ์ด๋๊น ํด๊ฒฐ์ด ๋์์..)
์ฑ
์์๋ ๊ทธ๋ฅ iPhone์ผ๋ก ์ ๊ณ ๋ฌธ์์ด์ ํฌํจ๋์ด ์์ผ๋ฉด ์ ๊ทผ์ ๋ง์์ฃผ๋ ๋ฐฉ์์ธ๊ฑฐ ๊ฐ์๋ฐ
์ ์ ๋ ์ด๋ด๊น์,,,?
์๋ ค์ฃผ์๋ฉด ๊ฐ์ฌํ๊ฒ ์ต๋๋ค!!
ํ์ฌํผ ์ด๋ ๊ฒ ์ค๋งํธํฐ์์๋ ์ ์์ด ์๋๋ ์ํฉ์์
MyEC2 ์ธ์คํด์ค์์๋ ์ ์์ ์ผ๋ก ์ ๊ทผํ๋ ๊ฒ์ ํ์ธํ ์ ์๋ค
์ด๋ ๊ฒ ALB ๋ฆฌ์ค๋๋ HTTP ํค๋์ User-Agent ์ ๋ณด๋ฅผ ํ์ฉํ์ฌ ์ ๊ทผ์ ์ ์ดํ ์ ์๋๋ฐ ์ด๋ ALB๊ฐ HTTP ์ ๋ณด๋ฅผ ํ์ธํ ์ ์๋ L7 ๋ก๋ ๋ฐธ๋ฐ์์ด๊ธฐ ๋๋ฌธ์ด๋ค!
=> ALB ๋ก๋ ๋ฐธ๋ฐ์๋ ๊ธฐ๋ณธ์ ์ธ ๋ถํ๋ถ์ฐ ๊ธฐ๋ฅ๊ณผ ํจ๊ป ๋ค์ํ ๊ณ ๊ธ ๋ผ์ฐํ ์ ์ด์ฉํ ๋์์ ํ์ฉํ ์ ์๋ค
์ด๋ฒ์๋ ALB์ ๊ดํด ์ค์ต์ ์งํํ์๋๋ฐ 4์ฅ ์ค์ต์ ๋ด์ฉ์ด ๋ง์์ NLB๋ ๋ค์์ ๋ค๋ฃจ๋๋ก ํ๊ฒ ์ต๋๋ค!
'๐ Infra > AWS ๊ต๊ณผ์' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[AWS ๊ต๊ณผ์] 5์ฅ - AWS ์คํ ๋ฆฌ์ง ์๋น์ค(1) (3) | 2024.01.13 |
---|---|
[AWS ๊ต๊ณผ์] 4์ฅ - AWS ๋ถํ๋ถ์ฐ ์๋น์ค(3) (1) | 2024.01.12 |
[AWS ๊ต๊ณผ์] 4์ฅ - AWS ๋ถํ๋ถ์ฐ ์๋น์ค(1) (0) | 2024.01.07 |
[AWS ๊ต๊ณผ์] 3์ฅ - AWS ๋คํธ์ํน ์๋น์ค(5) (1) | 2024.01.07 |
[AWS ๊ต๊ณผ์] 3์ฅ - AWS ๋คํธ์ํน ์๋น์ค(4) (2) | 2024.01.07 |