๐Ÿ›ณ DevOps/Cloud Infra

AWS VPC ๊ตฌ์ถ•ํ•˜๊ธฐ

DevPoong 2023. 6. 17. 20:57

VPC (Virtual Private Cloud)

๋…๋ฆฝ์ ์ธ ๊ฐ€์ƒ์˜ ๋„คํŠธ์›Œํฌ ๊ณต๊ฐ„์œผ๋กœ ์‚ฌ์šฉ์ž์˜ ์„ค์ •์— ๋”ฐ๋ผ ์ž์œ ๋กญ๊ฒŒ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ๋Š” Space

์„œ๋ธŒ๋„ท ์ƒ์„ฑ, ๋ผ์šฐํŒ… ํ…Œ์ด๋ธ”, ์ธํ„ฐ๋„ท ๊ฒŒ์ดํŠธ์›จ์ด ๋“ฑ์„ ๊ตฌ์„ฑํ•˜์—ฌ ์‚ฌ์šฉ์ž๊ฐ€ ์›ํ•˜๋Š” ๋Œ€๋กœ ๋„คํŠธ์›Œํฌ ํ™˜๊ฒฝ์„ ๊ตฌ์„ฑ ๋ฐ ์ œ์–ด

์‚ฌ์šฉ๊ฐ€๋Šฅ ์‚ฌ์„ค IP ๋Œ€์—ญ (RFC 1918)

  • 10.0.0.0 ~ 10.255.255.255
  • 172.16.0.0 ~ 172.32.255.255
  • 192.168.0.0 ~ 192.168.255.255

์„œ๋ธŒ๋„ท

์„œ๋ธŒ๋„ท์€ VPC์•ˆ์— ๋” ๋งŽ์€ ๋„คํŠธ์›Œํฌ ๋ง์„ ๊ตฌ์„ฑํ•˜๊ธฐ ์œ„ํ•ด ๋” ์ž˜๊ฒŒ ๋‚˜๋ˆ„๋Š” ๊ฒƒ์ด๋‹ค. 

๋ผ์šฐํŠธ๋ž€?

๋„คํŠธ์›Œํฌ ์š”์ฒญ์ด ๋ฐœ์ƒํ•˜๋ฉด ๋ฐ์ดํ„ฐ๋Š” ๋ผ์šฐํ„ฐ๋กœ ํ–ฅํ•˜๊ฒŒ ๋˜๊ณ  ๋ผ์šฐํŒ… ํ…Œ์ด๋ธ”์ด๋ผ๋Š” ์ด์ •ํ‘œ๋ฅผ ๋”ฐ๋ผ ์ด๋™ํ•˜๋ฉฐ ์š”์ฒญ์ด ์ฒ˜๋ฆฌ๋œ๋‹ค.
VPC์—๋Š” ๊ธฐ๋ณธ Route Table์ด ์กด์žฌํ•˜์ง€๋งŒ ์„œ๋ธŒ๋„ท๋งˆ๋‹ค ๋ณ„๋„์˜ Route Table์„ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ์—ฌ๋Ÿฌ ์„œ๋ธŒ๋„ท๊ณผ ์—ฐ๊ฒฐํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

 

Internet Gateway

VPC์—์„œ ์ƒ์„ฑ๋œ ๋ฆฌ์†Œ์Šค๋“ค์ด ์™ธ๋ถ€ ์ธํ„ฐ๋„ท๊ณผ ์—ฐ๊ฒฐ๋˜๊ธฐ ์œ„ํ•œ Gateway
๋ผ์šฐํŒ… ํ…Œ์ด๋ธ”์— ์ธํ„ฐ๋„ท ๊ฒŒ์ดํŠธ์›จ์ด๋กœ ํ–ฅํ•˜๋Š” ๊ทœ์น™์„ ์ถ”๊ฐ€ํ•ด์ฃผ๋ฉด ํŠน์ • ์„œ๋ธŒ๋„ท์ด ์ธํ„ฐ๋„ท๊ณผ ์—ฐ๊ฒฐ๋œ๋‹ค.

Network ACL / Security Group

Network ACL์€ ์„œ๋ธŒ๋„ท ์•ž๋‹จ์—์„œ outbound(๋ณด๋‚ด๊ณ ), inbound(๋ฐ›๋Š”) ํŠธ๋ž˜ํ”ฝ์„ ์ œ์–ดํ•˜๋Š” ๊ฐ€์ƒ ๋ฐฉํ™”๋ฒฝ
ํ•˜๋‚˜์˜ Network ACL์€ ์—ฌ๋Ÿฌ ์„œ๋ธŒ๋„ท์—์„œ ์žฌ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

Security Group์€ ์ธ์Šคํ„ด์Šค์˜ ์•ž๋‹จ์—์„œ ํŠธ๋ž˜ํ”ฝ์„ ์ œ์–ดํ•˜๋Š” ๊ฐ€์ƒ ๋ฐฉํ™”๋ฒฝ

Network ACL์ด ๋” ์•ž๋‹จ์— ์žˆ์œผ๋ฏ€๋กœ ์ด ์˜์—ญ์„ ํ†ต๊ณผํ•˜๋”๋ผ๋„ Security Group์˜ ๊ทœ์น™์„ ํ†ต๊ณผํ•˜์ง€ ๋ชปํ•˜๋ฉด ๋ง‰ํžˆ๊ฒŒ ๋œ๋‹ค.

 

Multi AZ(Availability Zone)๋ž€?

ํ•˜๋‚˜ ์ด์ƒ์˜ Availability Zone์— ์œ ์‚ฌํ•œ ๋ฆฌ์†Œ์Šค๋ฅผ ๋™์‹œ์— ๋ฐฐ์น˜ํ•˜๋Š” ๊ธฐ๋Šฅ
AZ๋Š” ๋ฌผ๋ฆฌ์  ๊ณต๊ฐ„์œผ๋กœ ๋ถ„๋ฆฌ๋˜์–ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด์ค‘ํ™” ๊ตฌ์„ฑํ•˜์—ฌ ํ•˜๋‚˜์˜ AZ์— ์žฅ์• ๊ฐ€ ๋ฐœ์ƒํ•˜๋”๋ผ๋„ ์„œ๋น„์Šค์— ๋ฌธ์ œ๊ฐ€ ์—†๋‹ค.

ํ•˜๋‚˜๋Š” Active ์ƒํƒœ์ด๊ณ  ๋‹ค๋ฅธ ๊ฒƒ์€ Stand By ์ƒํƒœ๋ฅผ ๊ฐ€์ง„๋‹ค. Active ์ƒํƒœ์ธ ๊ฒƒ์ด ์žฅ์• ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด Stand By ์ƒํƒœ์˜€๋˜ ๊ฒƒ ์ค‘ ํ•˜๋‚˜๊ฐ€ Active ์ƒํƒœ๊ฐ€ ๋œ๋‹ค.

 

NAT Gateway (Network Address Translation)

Private Subnet์ด ์ธํ„ฐ๋„ท๊ณผ ํ†ต์‹ ํ•˜๊ธฐ ์œ„ํ•œ ์•„์›ƒ๋ฐ”์šด๋“œ ์ธ์Šคํ„ด์Šค

Private Subnet์€ Internet Gateway๊ฐ€ ์—†์–ด์„œ ์™ธ๋ถ€ ์ธํ„ฐ๋„ท๊ณผ ์—ฐ๊ฒฐ๋˜์ง€ ์•Š๋Š”๋‹ค.
ํ•˜์ง€๋งŒ ์˜ˆ๋ฅผ ๋“ค์–ด Private Subnet ๋‚ด๋ถ€์˜ CentOS ์—์„œ apt update๋ฅผ ํ•ด์•ผํ•˜๋Š” ์ƒํ™ฉ์ฒ˜๋Ÿผ ์™ธ๋ถ€๋กœ ์•„์›ƒ๋ฐ”์šด๋“œ ์š”์ฒญ์„ ๋ณด๋‚ด์•ผ ํ•˜๋Š” ์ƒํ™ฉ์ด ์žˆ๋‹ค.

๋”ฐ๋ผ์„œ ์ธ๋ฐ”์šด๋“œ๋Š” ์ฐจ๋‹จํ•˜๋”๋ผ๋„ ์•„์›ƒ๋ฐ”์šด๋“œ ํŠธ๋ž˜ํ”ฝ์„ ํ—ˆ์šฉํ•  ํ•„์š”๊ฐ€ ์žˆ์–ด NAT Gateway๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

ํ•˜์ง€๋งŒ AWS NAT Gateway๋Š” ๋น„์šฉ์ด ๋น„์‹ธ์„œ ๊ฐ„๋‹จํ•œ ๊ฒƒ์—์„œ๋Š” EC2๋ฅผ ์ด์šฉํ•œ NAT instance๋กœ ๋Œ€์ฒดํ•  ์ˆ˜ ์žˆ๋‹ค.

 


๊ตฌ์ถ• ์‹ค์Šต

 

์„œ๋ธŒ๋„ท์„ ์„ค์ •ํ•˜๊ณ ๋‚˜๋ฉด ๋ผ์šฐํŒ… ํ…Œ์ด๋ธ”์ด ํ•˜๋‚˜ ์ƒ๊ธฐ๋Š”๋ฐ ๊ฑฐ๊ธฐ์„œ
External์šฉ Router์— Public Subnet์„ ์ฒดํฌํ•˜์—ฌ ๋“ฑ๋กํ•˜๊ณ 
Internal์šฉ Router์— Private Subnet์„ ์ฒดํฌํ•˜์—ฌ ๋“ฑ๋กํ•œ๋‹ค. 

 

Internet Gateway ๋“ฑ๋ก

์™ธ๋ถ€ ์ธํ„ฐ๋„ท๊ณผ ํ†ต์‹ ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๊ฒฐ๊ตญ Internet Gateway๊ฐ€ ์žˆ์–ด์•ผ ํ•œ๋‹ค.

์•„๊นŒ ๋“ฑ๋กํ•œ VPC๋ฅผ ์ƒˆ๋กœ ์ƒ์„ฑํ•œ Internet Gateway์— ์—ฐ๊ฒฐํ•œ๋‹ค.

 

External Roturer ๋ผ์šฐํŒ… ์ˆ˜์ •

์•„๊นŒ ์ƒ์„ฑํ•œ ์ธํ„ฐ๋„ท ๊ฒŒ์ดํŠธ์›จ์ด๋ฅผ ์™ธ๋ถ€ ๋ผ์šฐํ„ฐ์˜ ๋ผ์šฐํŒ…์— ์ถ”๊ฐ€ํ•ด์ค€๋‹ค.


NAT Gateway ๋Œ€์‹  NAT instance ์„ค์ •

Private Subnet์— ์žˆ๋Š” ์ž์›์ด ์™ธ๋ถ€๋กœ ํ†ต์‹ ์„ ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” NAT instance ์—ญํ• ์„ ํ•ด์ค€๋‹ค.

๊ทธ๋ฆฌ๊ณ  ์—ฌ๊ธฐ์„œ๋Š” NAT instance์— ๋˜ ๋‹ค๋ฅธ ์—ญํ• ์ด ์žˆ๋‹ค.
Bastion Host์˜ ์—ญํ• ๋„ ํ•˜๋Š”๋ฐ ์›๋ž˜๋Š” NAT instance์™€ Bation Host๋ฅผ ๋ถ„๋ฆฌํ•˜์ง€๋งŒ ์—ฌ๊ธฐ์„œ๋Š” ๋น„์šฉ ๋ฌธ์ œ๋กœ ํ•˜๋‚˜๋กœ ํ•ฉ์ณค๋‹ค.

Bastion Host๋Š” ๋‚ด๋ถ€์™€ ์™ธ๋ถ€ ๋„คํŠธ์›Œํฌ ์‚ฌ์ด์—์„œ ๊ฒŒ์ดํŠธ ์—ญํ• ์„ ํ•˜๋Š” Host์ด๊ณ  ์™ธ๋ถ€์—์„œ ์ ‘๊ทผ ๊ฐ€๋Šฅํ•˜๋„๋ก Public IP๋ฅผ ๋ถ€์—ฌํ•ด์•ผ ํ•œ๋‹ค.

์™ธ๋ถ€์—์„œ Private Subnet 22๋ฒˆ ํฌํŠธ๋กœ ๋‹ค๋ฅธ ์™ธ๋ถ€์ธ์€ ์ ‘๊ทผํ•˜๋ฉด ์•ˆ๋˜์ง€๋งŒ ๋‚˜๋Š” ์–ด์ฉ” ์ˆ˜ ์—†์ด ์ ‘๊ทผํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ NAT instance์—์„œ ์—ฐ๊ฒฐํ•ด์ค€๋‹ค. ๋”ฐ๋ผ์„œ NAT instance๊ฐ€ ํ•œ๋ฒˆ ํ•„ํ„ฐ๋งํ•ด์ฃผ๋Š” ๋ณด์•ˆ ์—ญํ• ์„ ํ•ด์ค€๋‹ค๊ณ  ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

EC2์—์„œ AMI ์„ ํƒ์—์„œ NAT๋ฅผ ์ž…๋ ฅํ•˜์—ฌ ์ปค๋ฎค๋‹ˆํ‹ฐ์ชฝ์—์„œ ๊ฐ€์žฅ ์œ—์ชฝ๊ฒƒ์„ ์„ ํƒํ•ด์ค€๋‹ค.

 

๋‹ค์Œ ๋„คํŠธ์›Œํฌ ์„ค์ •์—์„œ ๋„คํŠธ์›Œํฌ์—์„œ๋Š” ์ƒ์„ฑํ•œ VPC๋ฅผ ์„ ํƒํ•˜๊ณ  ์„œ๋ธŒ๋„ท์—์„œ๋Š” public-subnet์„ ์„ ํƒํ•œ๋‹ค.

ํ‚ค ํŽ˜์–ด๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ์ธ์Šคํ„ด์Šค๋ฅผ ์‹œ์ž‘ํ•œ๋‹ค.

 

ํƒ„๋ ฅ์  IP ์„ค์ •

NAT instance์— ๊ณ ์ • IP๋ฅผ ํ• ๋‹นํ•˜๊ธฐ ์œ„ํ•ด ํ•ด๋‹น ์ธ์Šคํ„ด์Šค์— ๊ณ ์ • IP๋ฅผ ๋ถ€์—ฌํ•ด์ค€๋‹ค.

 

์ธ๋ฐ”์šด๋“œ ๊ทœ์น™ SSH ์ ‘์† ๋‚ด IP๋งŒ ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋ณ€๊ฒฝ


Internal Router Routing ํŽธ์ง‘

๋‚˜๋Š” ์ง€๊ธˆ NAT Gateway๊ฐ€ ๋น„์šฉ์ด ๋น„์‹ธ์„œ NAT instance๋กœ ๋Œ€์ฒดํ•˜์˜€์œผ๋‹ˆ instance๋ฅผ ์„ ํƒํ•ด์ค€๋‹ค.

 


NAT ์ธ์Šคํ„ด์Šค์— ์ ‘์† (ec2-user๋กœ ์ ‘์†)

๋จผ์ € ์ ‘์†ํ•˜๊ธฐ ์ „์— ๋‹ค์šด๋ฐ›์•˜๋˜ pem ํ‚ค ํŒŒ์ผ์˜ ๊ถŒํ•œ์„ ๋ณ€๊ฒฝํ•ด์ค˜์•ผ ํ•œ๋‹ค.

chmod 600 ex-key.pem
ssh -i mission-key.pem ec2-user@{IP์ฃผ์†Œ}

 

 

ec2-user๋Š” ๋ณด์•ˆ์ƒ์˜ ์ด์œ ๋กœ ์‚ฌ์šฉ ๊ธˆ์ง€

์ƒˆ๋กœ์šด ๊ณ„์ •์„ ์ƒ์„ฑํ•œ๋‹ค.

์ด๋ฒˆ์—๋Š” ํŒจ์Šค์›Œ๋“œ๋กœ๋งŒ SSH ์ ‘์†ํ•  ์ˆ˜ ์žˆ๋„๋ก ์„ค์ •ํ•˜๊ณ ์ž ํ•œ๋‹ค.

๊ณ„์ •์„ 1์ธ๋‹น 1๊ฐœ๋กœ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ ๊ฐ€ ์ฑ…์ž„์˜ ์†Œ์žฌ๋‚˜ ์›์ธ์„ ํŒŒ์•…ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋ผ๊ณ  ํ•œ๋‹ค.

sudo -i
useradd khsadmin
passwd khsadmin
cat /etc/passwd //์ƒ์„ฑ๋œ ๊ณ„์ • ํ™•์ธ

vi /etc/sudoers.d/cloud-init //ec2-user์™€ ๋™์ผํ•œ ๊ถŒํ•œ ๋ถ€์—ฌ
admin ALL=(ALL) NOPASSWD:ALL //ํŒŒ์ผ ์ €์žฅ

vi /etc/ssh/sshd_config // ๋ฃจํŠธ๋กœ ๊ณ„์ • ๋ณ€๊ฒฝ
-> PasswordAuthentication yes๋กœ ๋ณ€๊ฒฝ

service sshd restart //sshd ๋ฐ๋ชฌ ์žฌ์‹œ์ž‘