🌐 AWS VPCμ΄λž€?

2022λ…„ 7μ›” 13일

λ“€μ–΄κ°€λ©°

μ‚¬λ‚΄μ—μ„œ staging serverλ₯Ό κ΅¬μΆ•ν•˜κΈ° μœ„ν•΄ AWS EKSλ₯Ό ν™œμš©ν•˜μ—¬ clusterλ₯Ό μƒμ„±ν•˜λŠ” 도쀑 λ…Έλ“œ κ·Έλ£Ή μƒμ„±μ—μ„œ VPC μ΄μŠˆμ— λΆ€λ”ͺ히고 λ§μ•˜μŠ΅λ‹ˆλ‹€... 😒

ν•œλ²ˆ κ°œλ…μ •λ¦¬λ₯Ό ν™•μ‹€νžˆ 해놓기 μœ„ν•΄ μ—¬λŸ¬ λΈ”λ‘œκ·Έ 및 κ²Œμ‹œκΈ€μ„ 보게 λ˜μ—ˆλŠ”λ°, 이번 κΈ°νšŒμ— ν•œλ²ˆ 정리λ₯Ό 해보렀고 ν•©λ‹ˆλ‹€ !

VPN (Virtual Private Network)

VPN은 ν•œκ΅­μ–΄λ‘œ 가섀사섀망 이라고 ν•©λ‹ˆλ‹€. λ³΄μ•ˆμƒμ˜ 이유둜 λ„€νŠΈμ›Œν¬λ₯Ό λΆ„λ¦¬ν•˜κ³  μ‹Άλ‹€λ©΄ κΈ°μ‘΄ 인터넷 μ„  곡사도 λ‹€μ‹œν•΄μ•Όν•˜κ³ , 건물의 내뢀선을 λ‹€μ‹œ λœ―μ–΄λ‚΄λ©΄μ„œ 곡사λ₯Ό ν•΄μ•Όν•˜κΈ°μ— κ°€μƒμ˜ 망인 VPN을 μ‚¬μš©ν•˜κ²Œ λ©λ‹ˆλ‹€.

인터넷 ν”„λΌμ΄λ²„μ‹œλ₯Ό 지킀기 μœ„ν•œ λ„κ΅¬λ‘œ 널리 μ‚¬μš©λ˜κΈ° μ „μ—λŠ” 멀리 떨어진 λ„€νŠΈμ›Œν¬ ν™˜κ²½μ„ ν•˜λ‚˜μ˜ μ•ˆμ „ν•œ λ„€νŠΈμ›Œν¬λ‘œ λ§Œλ“œλŠ” 역할을 ν•˜μ˜€μŠ΅λ‹ˆλ‹€.

μš°λ¦¬κ°€ ν˜„μž¬ μ‚¬μš©ν•˜κ³  μžˆλŠ” 인터넷은 μ„œλ²„μ˜ ipμ£Όμ†Œμ— λ„€νŠΈμ›Œν¬ νŒ¨ν‚·μ„ μ£Όκ³  λ°›μœΌλ©° 톡신을 ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€. λ§Œμ•½, google.com에 μ ‘μ†ν•œλ‹€λ©΄ λ¨Όμ € DNS μ„œλ²„λ₯Ό 톡해 ipμ£Όμ†Œλ₯Ό λ°›μ•„μ˜€λ©° νŒ¨ν‚·μ„ λ³΄λ‚΄κ²Œ λ©λ‹ˆλ‹€.

μ£Όμ†Œμ°½μ— μž…λ ₯된 μ£Όμ†Œκ°€ http일 경우 평문(plain text)둜 κ·Έ λ‚΄μš©μ„ κ·ΈλŒ€λ‘œ μ£Όκ³  λ°›κ³ , https 일 경우 μ•”ν˜Έν™”λœ λ°μ΄ν„°λ‘œ μ£Όκ³  λ°›κΈ° λ•Œλ¬Έμ— μ€‘κ°„μ—μ„œ λˆ„κ΅°κ°€ κ·Έ λ‚΄μš©μ„ μ•Œ 수 μ—†μŠ΅λ‹ˆλ‹€.

VPN은 인터넷에 μ‚¬μš©λ˜λŠ” λͺ¨λ“  λ„€νŠΈμ›Œν¬ νŒ¨ν‚·μ„ μ•”ν˜Έν™”ν•΄μ„œ 믿을 수 μžˆλŠ” VPN μ„œλ²„μ— 보내고, κ·Έ μ„œλ²„κ°€ λ‚˜λ₯Ό λŒ€μ‹ ν•˜μ—¬ 인터넷에 μ ‘μ†ν•˜κ³  κ·Έ κ²°κ³Όλ₯Ό 돌렀주게 λ©λ‹ˆλ‹€. λ‚΄ 컴퓨터와 VPNμ„œλ²„ μ‚¬μ΄μ—λŠ” μ•ˆμ „ν•˜κ²Œ μ•”ν˜Έν™” λ˜μ–΄ κ·Έ λ‚΄μš©μ„ μ€€κ°„μ—μ„œ λ³Ό 수 μ—†κΈ° λ•Œλ¬Έμ— 인터넷이 μ•ˆμ „ν•˜λ‹€κ³  λ³Ό 수 μžˆμŠ΅λ‹ˆλ‹€. λͺ¨λ“  νŠΈλž˜ν”½μ„ μ•”ν˜Έν™”ν•΄μ„œ 보내기 λ•Œλ¬Έμ— μ„€λ Ή λ‚΄κ°€ μ ‘μ†ν•˜λ €λŠ” μ›Ήμ‚¬μ΄νŠΈκ°€ httpsλ₯Ό μ§€μ›ν•˜μ§€ μ•Šμ•„λ„ μ•ˆμ „ν•˜κ²Œ 접속이 κ°€λŠ₯ν•©λ‹ˆλ‹€.

Amazon VPC (Virtual Private Cloud)

vpc

μ‚¬μš©μžκ°€ μ •μ˜ν•˜λŠ” IP μ£Όμ†Œ λ²”μœ„ 선택, μ„œλΈŒλ„· 생성, λΌμš°νŒ… ν…Œμ΄λΈ” 및 λ„€νŠΈμ›Œν¬ κ²Œμ΄νŠΈμ›¨μ΄ ꡬ성 λ“± 가상 λ„€νŠΈμ›Œν‚Ή ν™˜κ²½

Amazon VPCλŠ” 인터넷에 μ—‘μ„ΈμŠ€ ν•  수 μžˆλŠ” μ›Ή μ„œλ²„λ₯Ό μœ„ν•΄ public subnet, 인터넷 μ—‘μ„ΈμŠ€κ°€ μ—†λŠ” private subnet에 데이터 λ² μ΄μŠ€λ‚˜ μ• ν”Œλ¦¬μΌ€μ΄μ…˜ μ„œλ²„ 같은 μ‹œμŠ€ν…œμ„ λ°°μΉ˜ν•˜κ³  λ³΄μ•ˆ κ·Έλ£Ή 및 λ„€νŠΈμ›Œν¬ μ—‘μ„ΈμŠ€ μ œμ–΄ λͺ©λ‘μ„ ν¬ν•¨ν•œ 닀쀑 λ³΄μ•ˆ 계측을 μ‚¬μš©ν•˜μ—¬ 각 subnetμ—μ„œ Amazon EC2 μΈμŠ€ν„΄μŠ€μ˜ μ—‘μ„ΈμŠ€λ₯Ό μ œμ–΄ν•  수 μž‡μŠ΅λ‹ˆλ‹€.

VPCλ₯Ό μ μš©ν•˜λ©΄ μœ„μ˜ κ·Έλ¦Όκ³Ό 같이 VPCλ³„λ‘œ λ„€νŠΈμ›Œν¬λ₯Ό ꡬ성할 수 있고 각각의 VPC에 따라 λ‹€λ₯΄κ²Œ λ„€νŠΈμ›Œν¬ 섀정을 ν•  수 μžˆμŠ΅λ‹ˆλ‹€. λ˜ν•œ 각각의 VPCλŠ” μ™„μ „νžˆ λ…λ¦½λœ λ„€νŠΈμ›Œν¬μ²˜λŸΌ λ™μž‘ν•˜κ²Œ λ©λ‹ˆλ‹€.

Region

AWS의 물리적 μ„œλ²„κ°€ μœ„μΉ˜ν•˜κ³  μžˆλŠ” κ΅­κ°€ λ‹¨μœ„μ˜ μœ„μΉ˜

Availiability Zone

Regionλ‚΄μ˜ 물리적 μ„œλ²„μ˜ 지역 λ‹¨μœ„μ˜ μœ„μΉ˜

Subnet

Pulic Subnet

μ™ΈλΆ€κ°€ κ°œλ°©λ˜μ–΄ μžˆμ–΄ 인터넷 연결이 κ°€λŠ₯ν•œ μ„œλΈŒλ„·μœΌλ‘œμ¨ 인터넷 게이트 μ›¨μ΄λ‘œ ν–₯ν•˜λŠ” λΌμš°νŒ…μ΄ μž‡λŠ” λΌμš°νŒ… ν…Œμ΄λΈ”κ³Ό μ—°κ²°λ˜μ–΄ μžˆλŠ” μ„œλΈŒλ„·

Private Subnet

μ™ΈλΆ€μ—μ„œ μ§μ ‘μ μœΌλ‘œ 접근이 λΆˆκ°€λŠ₯ν•œ λ„€νŠΈμ›Œν¬ μ˜μ—­μœΌλ‘œ μ„œλΈŒλ„·μ΄ 인터넷 κ²Œμ΄νŠΈμ›¨μ΄μ— λ“±λ‘λ˜μ–΄μžˆμ§€ μ•ŠμœΌλ―€λ‘œ ν•΄λ‹Ή μ„œλΈŒλ„·μ— μœ„μΉ˜ν•œ λ¦¬μ†ŒμŠ€λ“€μ€ μ™ΈλΆ€μ™€μ˜ 연결이 λΆˆκ°€λŠ₯

λ³΄μ•ˆμ— μ—„κ²©ν•˜κ²Œ λ‹€λ€„μ•Όν•˜λŠ” λ¦¬μ†ŒμŠ€λ“€μ„ μ•ˆμ „ν•˜κ²Œ κ΄€λ¦¬ν•˜κΈ° μœ„ν•΄ μ‚¬μš©

CIDR

1993년에 λ„μž…λ˜κΈ° μ‹œμž‘ν•œ μ΅œμ‹ μ˜ IP μ£Όμ†Œ ν• λ‹Ή λ°©λ²•μœΌλ‘œ IP Adress 그웁을 κ΄€λ¦¬ν•˜λ©° 기쑴의 IP Adress Class보닀 μœ μ—°ν•˜κ²Œ λ™μž‘

Routing Table

μ„œλΈŒλ„· λ˜λŠ” 게이트 μ›¨μ΄μ˜ λ„€νŠΈμ›Œν¬ νŠΈλž˜ν”½μ΄ μ „μ†‘λ˜λŠ” μœ„μΉ˜λ₯Ό κ²°μ •ν•˜λŠ”λ° μ‚¬μš©λ˜λŠ” λΌμš°νŒ…μ΄λΌλŠ” κ·œμΉ™μ˜ μ§‘ν•©μœΌλ‘œ ꡬ성

VPCλŠ” μƒμ‚°λŸ‰μ΄ μ œν•œλœ λΌμš°νŒ… ν…Œμ΄λΈ”μ„ μ‚¬μš©ν•˜μ—¬ λ„€νŠΈμ›Œν¬ νŠΈλž˜ν”½μ΄ μ „λ‹¬λ˜λŠ” μœ„μΉ˜λ₯Ό μ œμ–΄ν•©λ‹ˆλ‹€. VPC의 각 μ„œλΈŒλ„·μ„ λΌμš°νŒ… ν…Œμ΄λΈ”μ— μ—°κ²°ν•˜μ—¬ μ„œλΈŒλ„·μ— λŒ€ν•œ λΌμš°νŒ…μ„ μ œμ–΄ν•©λ‹ˆλ‹€.

μ„œλΈŒλ„·μ„ νŠΉμ • λΌμš°νŒ… ν…Œμ΄λΈ”κ³Ό μ—°κ²°ν•  수 있으며 μ—¬λŸ¬ μ„œλΈŒλ„·μ„ λ™μΌν•œ λΌμš°νŒ… ν…Œμ΄λΈ”μ— μ—°κ²° ν•  수 μžˆμŠ΅λ‹ˆλ‹€. (ν•˜μ§€λ§Œ μ„œλΈŒλ„·μ€ ν•œ λ²ˆμ— ν•˜λ‚˜μ˜ λΌμš°νŒ… ν…Œμ΄λΈ”μ—λ§Œ μ—°κ²° ν•  수 μžˆμŠ΅λ‹ˆλ‹€.)

λ˜ν•œ λΌμš°νŒ… ν…Œμ΄λΈ”μ„ 인터넷 κ²Œμ΄νŠΈμ›¨μ΄ / 가상 프라이빗 κ²Œμ΄νŠΈμ›¨μ΄ 와 μ—°κ²°ν•˜μ—¬ VPC둜 λ“€μ–΄μ˜€λŠ” μΈλ°”μš΄μŠ€ νŠΈλž˜ν”½μ— λŒ€ν•œ λΌμš°νŒ… κ·œμΉ™μ„ μ •ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

VPC Peering

물리적으둜 μ˜μ‘΄ν•˜μ§€ μ•ŠλŠ” 두 VPCκ°„μ˜ νŠΈλž˜ν”½μ„ λΌμš°νŒ… ν•  수 μžˆλ„λ‘ ν•˜κΈ° μœ„ν•œ 두 VPC μ‚¬μ΄μ˜ λ„€νŠΈμ›Œν‚Ή μ—°κ²°μž…λ‹ˆλ‹€.

λ™μΌν•œ 계정, λ™μΌν•œ λ„€νŠΈμ›Œν¬, λ‹€λ₯Έ Region의 VPCκ°„μ˜ 연결을 ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

NAT GateWay

μ™ΈλΆ€ 접속이 μ•ˆλ˜λŠ” private subnet의 μΈμŠ€ν„΄μŠ€κ°€ μ™ΈλΆ€μ˜ μ„œλΉ„μŠ€μ— μ—°κ²° ν•  수 μžˆλ„λ‘ λ„μ™€μ£ΌλŠ” μ„œλΉ„μŠ€μž…λ‹ˆλ‹€.

private subnet 의 μΈμŠ€ν„΄μŠ€λ₯Ό 인터넷 λ˜λŠ” λ‹€μ–‘ν•œ AWS μ„œλΉ„μŠ€μ— μ—°κ²°ν•˜μ—¬ 톡신 ν•  수 μžˆμŠ΅λ‹ˆλ‹€. 예λ₯Όλ“€μ–΄ 프라이빗 μ„œλΈŒλ„·μ˜ μΈμŠ€ν„΄μŠ€κ°€ μ™ΈλΆ€ 결제 μ‹œμŠ€ν…œμ„ μ‚¬μš©ν•΄μ•Όν•˜λŠ” 경우 ν˜Ήμ€ λ‹€λ₯Έ AWS μ„œλΉ„μŠ€μ— 데이터λ₯Ό μ „λ‹¬ν•΄μ•Όν•˜λŠ” 경우 NAT GateWayλ₯Ό public subnet에 두어 톡신을 ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

데이터λ₯Ό 인터넷에 λ…ΈμΆœν•˜μ§€ μ•Šκ³  VPC와 AWS λ˜λŠ” on-premiseμ—μ„œ ν˜ΈμŠ€νŒ…λ˜λŠ” μ„œλΉ„μŠ€ 간에 private 연결을 μ„€μ •

VPC μ—”λ“œν¬μΈνŠΈλ₯Ό μ‚¬μš©ν•˜λ©΄ 인터넷 κ²Œμ΄νŠΈμ›¨μ΄, NAT Device, VPN μ—°κ²°, AWS Direct Connect ν•˜μ§€ μ•Šκ³  VPCλ₯Ό λΉ„κ³΅κ°œμ μœΌλ‘œ μ—°κ²° ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

마무리

이번 κ²Œμ‹œκΈ€μ—λŠ” AWS VPC에 λŒ€ν•œ κ°œλ…μ„ μ •λ¦¬ν•΄λ΄€μŠ΅λ‹ˆλ‹€. λ‹€μŒ ν¬μŠ€νŒ…μ—λŠ” VPC ꡬ좕을 직접 해보고 정리해본 κ²°κ³Όλ₯Ό κ³΅μœ ν•΄λ“œλ¦¬κ³ μž ν•©λ‹ˆλ‹€. 😎


Reference

https://docs.veilduck.app/knowledge/vpn

https://medium.com/harrythegreat/aws-%EA%B0%80%EC%9E%A5%EC%89%BD%EA%B2%8C-vpc-%EA%B0%9C%EB%85%90%EC%9E%A1%EA%B8%B0-71eef95a7098

https://dontbesatisfied.tistory.com/13