기존에는 VPC 같은 개념에 대해서 접할 일이 많지 않았는데, 우테코 활동을 하며 AWS 내의 VPN, 서브넷과 같은 개념을 접하게 되어 간단하게 정리해보고자 한다.
VPC란
Virtual Private Cloud의 약자로 AWS 클라우드 내에서 논리적으로 격리된 가상 네트워크를 말한다.
해당 네트워크 내에서 EC2 인스턴스와 같은 리소스를 실행할 수 있다.
간단하게 정리하자면 아래 이미지, 그리고 세 가지를 생각하면 좋다.
- AWS에 사설 네트워크 구축
- 세심한 네트워크 설정 가능
- 모든 리전에서 이용 가능
구성 요소
프라이빗 IP 주소, 퍼블릭 IP 주소, Elastic IP 주소
- Private IP : VPC 내부에서만 사용할 수 있는 IP 주소
- 서브넷의 범위에서 자동으로 할당되며, 동일 네트워크에서 인스턴스 간 통신에 사용 가능
- Public IP : 인터넷을 통해 연결할 수 있는 IP 주소
- Elastic IP 연결하지 않을 시 재부팅되면 새로 할당됨.
- Elastic IP : 동적 컴퓨팅을 위해 사용하는 동적 퍼블릭 IP 주소.
VPC와 Subnet
- Subnet : VPC 내부의 네트워크에서 서비스 목적에 따라 IP Block으로 나누어 구분한 것.
- 단일 가용 영역에만 사용할 수 있으며, 여러 가용 영역으로 확장될 수 없다.
- 서브넷을 나누는 이유는 더 많은 네트워크 망을 만들기 위해서이다.
VPC와 Subnet의 사이즈
- VPC를 생성할 때 지정한 VPC에서 사용할 IP 주소의 범위는 CIDR(Classless Inter-Domain Routing) 블록 형태로 지정해야 한다.
- ex) 10.0.0.0/24 → 256개의 IP 주소 지원, CIDR 블록을 각각 128개의 주소를 지원하는 2개의 서브넷으로 나눌 수 있음.
퍼블릭 서브넷과 프라이빗 서브넷
- 퍼블릭 서브넷 : 네트워크 트래픽이 인터넷 게이트웨이로 라우팅 되는 경우
- 프라이빗 서브넷 : 인터넷 게이트웨이로 라우팅 되지 않는 경우
EC2 인스턴스가 IP를 통해 인터넷과 통신할 수 있게 하려면 퍼블릭 IP나 탄력적 IP가 있어야 한다.
- 일반적으로 웹서버는 퍼블릭 서브넷 / DB 서버는 프라이빗 서브넷에 연결한다 (for 보안)
라우팅 테이블
- 라우팅 테이블 : 서브넷 외부로 나가는 아웃바운드 트래픽에 대해 허용된 경로들
- VPC의 서브넷 내에서 생성된 네트워크 패킷이 목적지 주소로 가기 위해 어떤 경로로 이동되어야 하는지 알려줌
- 서브넷 간의 통신이나 VPC 간의 원활한 통신을 위해 사용함.
주요 서비스
보안 그룹과 네트워크 액세스 제어 목록
네트워크 통신과 트래픽에 대해 IP와 포트를 기준으로 허용 및 차단하는 기능 제공
구분 | 보안그룹 | 네트워크 ACL |
서비스 범위 | 인스턴스 레벨에 적용 | 서브넷 레벨에 적용 |
적용 정책 | Allow (허용) 규칙만 적용 | Allow(허용) 규칙과 Deny(거부)규칙 적용 |
구동 방식 | 규칙에 상관없이 반환 트래픽 허용 | 반환 트래픽이 별도로 허용되어야 함 |
룰 검토 / 적용 | 해당 객체 내 모든 룰 검토 | 해당 객체 내 룰을 번호 순으로 처리 |
적용 방법 | 인스턴스에 보안그룹 추가 | 연결된 서브넷에 모든 인스턴스 자동 적용 |
VPC 피어링 연결
비공개적으로 두 VPC 간에 트래픽을 라우팅 할 수 있게 하기 위한 서로 다른 VPC 간의 네트워크 연결.
NAT 게이트웨이
외부 네트워크에 알려진 것과 다른 IP 주소를 사용하는 내부 네트워크에서, 내부 IP 주소를 외부 IP 주소로 변환하는 작업을 수행하는 서비스.
프라이빗 서브넷 내에 있는 인스턴스를 인터넷 또는 다른 AWS 서비스에 연결하고, 외부망 또는 인터넷에서는 해당 인스턴스에 접근하지 못하도록 하는 것이다.
- NAT 게이트를 생성하기 위한 퍼블릭 서브넷 지정
- NAT 게이트웨이와 연결할 Elastic IP 필요
- NAT 게이트웨이를 만든 후 인터넷 트래픽이 NAT 게이트웨이로 통신이 가능하도록 프라이빗 서브넷과 연결된 라우팅 테이블 업데이트
VPN 연결
기본적으로 Amazon VPN에서 서비스되는 인스턴스는 On-Premise에 있는 서버나 IDC 내의 시스템과 통신할 수 없다.
VPC 내 인스턴스와 IDC 내 시스템 간의 데이터 통신을 위해 VPC에 가상의 프라이버시 게이트웨이를 연결하고 사용자 지정 라우팅 테이블을 생성하며 보안 그룹의 규칙을 업데이트하고, AWS 관리형 VPN 연결을 생성하여 VPC에서 원격의 네트워크에 접속 가능하도록 하이브리드 클라우드 환경을 구성할 수 있다.
VPN 연결은 VPC와 자체 네트워크 사이의 연결을 의미한다.
참고자료
https://medium.com/harrythegreat/aws-가장쉽게-vpc-개념잡기-71eef95a7098
아마존 웹 서비스 AWS Discovery Book 책
'프로그래밍 공부' 카테고리의 다른 글
테스트 코드 시간 줄이기 (2) | 2022.10.07 |
---|---|
무중단 배포란? (0) | 2022.09.27 |
[TDD] 테스트 코드 작성 순서와 종류 (0) | 2022.05.19 |
도메인이란 무엇인가? (1) | 2022.05.15 |
[TDD] Test-Driven-Development란 무엇인가 (0) | 2022.02.24 |