패스트캠퍼스 챌린지 5일차
[강의] 다음은 패스트 캠퍼스 DevOps 운영 패키지를 통해 학습 및 정리한 내용입니다.
목차
1. VPC의 정의
2. VPC의 특징
3. VPC의 구성요소
VPC 정의
VPC(Virtual Private Cloud)는 사용자가 정의한 가상 네트워크로 AWS 리소스를 시작할 수 있다. 이 가상 네트워크는 AWS의 확장 가능한 인프라를 사용한다는 이점과 함께 고객의 자체 데이터 센터에서 운영하는 기존 네트워크와 매우 유사하다.
정의가 직관적으로는 와닿지 않는데, 이를 이해하기 위해서는 VPN(Virtual Private Network)에 대한 개념이 필요하다. VPN은 가상 사설망으로 실제 사설망이 아니다. 만약 실제 사설망이라면 인터넷 선 공사와 건물 내 내부선을 다 뜯어 전용선을 깔아줘야하는데 가상 사설망을 통해 이러한 소요를 없애줄 수 있다.
VPN이 적용되어진다면 논리적으로 다른 네트워크에 해당되지만 실제로는 같은 네트워크 상에 놓여있도록 설정할 수 있고, 마찬가지로 AWS 내 EC2 인스턴스들이 거미줄(실제 사설망의 내부선)처럼 연결되어 복잡해지는 것을 방지하기 위해 VPC 기능을 적용하여 필요한 네트워크를 구성할 수 있다.
VPC 특징
- 계정 생성 시 default로 VPC를 만들어 줌
- EC2, RDS, S3 등의 서비스 활용 가능
- 서브넷 구성
- 보안 설정(IP block, inbound outbound 설정)
- VPC Peering(VPC 간의 연결)
- IP 대역 지정 가능
- VPC는 하나의 Region에만 속할 수 있음(다른 Region으로 확장 불가능)
VPC 구축 방법
VPC를 구축하기 위해 VPC IP 범위를 사설 아이피 대역(RFC1918)에 맞춰 구축해야한다. 여기서 사설 아이피(Private IP)는 인터넷이 아닌 VPC 내에서 사용되어지는 아이피 주소이며 그와 반대로 공인 아이피(Public IP)는 인터넷과 연결되는 주소로 구분하여 적용이 되어져야한다. 이때 설정된 아이피의 대역은 수정할 수 없고, 각 VPC는 리전에 종속되어진다.
VPC에서 사용하는 사설 아이피 대역은 아래와 같다.
- 10.0.0.0 ~ 10.255.255.255(10/8 prefix)
- 172.16.0.0 ~ 172.31.255.255(182.16/12 prefix)
- 192.168.0.0 ~ 192.168.255.255(192.168/16 prefix)
VPC 구성 요소
- Availability Zone
- Subnet(CIDR)
- Route Table
- Internet Gateway
- Network Access Control List/security group
- NAT(Network Address Translation) instance/NAT gateway
- VPC endpoint
Subnet 생성 방법
VPC 생성 이후 VPC 하위 단위인 Subnet을 만들 수 있는데 이러한 Subnet은 하나의 AZ(Availability Zone)에서만 생성 가능하다. 이때 AZ 내에서 여러개의 Subnet을 생성시킬 수 있다. 이로 인해 IP 범위가 분할되고 더 많은 네트워크망을 만들 수 있게 된다.
Route Table 및 Router
네트워크 요청이 발생하면 데이터는 라우터로 향하게 되는데 Router는 목적지이고 Route Table는 목적지에 대한 이정표로, 요청된 네트워크는 각각 정의된 Subnet의 Route Table에 정의되어 있는 타겟에 맞춰 목적지로 이동하게 된다.
Internet Gateway
Internet Gateway는 VPC와 인터넷을 연결해주는 문으로 Subnet의 네트워크 요청이 Route Table의 타겟에 따라 선별되어 질 때 인터넷 연결이 필요한 네트워크 요청일 경우 Internet Gateway를 통해 연결을 받게 된다.
Network Access Control List/security group
NACL과 보안 그룹은 방화벽의 역할을 한다. 트래픽(데이터의 양)은 인바운드(내부로)와 아웃바운드(외부)로 나누어지는데 이 때 보안정책을 달리하여 보안을 강화한다.
NACL은 Stateless하게 작동되어 모든 트래픽을 기본설정하여 불필요한 트래픽을 막아야하고, 보안 그룹은 Stateful한 방식으로 모든 허용을 차단시켜 필요한 트래픽은 별도로 허용해주어야한다. 우선 적용되는 것은 보안 그룹으로 둘이 충돌될 경우 보안 그룹이 우선순위를 갖는다.
Network Address Translation instance/NAT gateway
NAT gateway는 Private Subnet이 인터넷과 통신하기 위한 특화된 기능을 갖는 서비스다. Private Subnet 내의 인스턴스가 펌웨어나 주기적인 업데이트 필요시 아웃바운드 트래픽을 허용해주어야 할 때 사용되어진다.
NAT gateway는 Public Subnet 내에 위치해있고 Private Subnet의 아웃바운드 트래픽 요청을 Route Table을 통해 전달받아 Internet Gateway에 연결되고, 이와 비슷한 기능을 하는 NAT instance의 경우에는 EC2 instance에 NAT gateway처럼 기능하도록 설정되어 인터넷에 연결시켜준다. 둘의 기능에 대한 차이는 다음에서 찾아보자.
Bastion host
Bastion host는 외부에서 접근 불가능한 Private instance에 접근하기 위해 Public Subnet에 위치한 EC2 instance이다. 이를 통해 특정 IP만 접근 가능하도록 설정할 수 있다.
VPC endpoint
VPC endpoint는 AWS 서비스들과 VPC를 연결시켜주는 중간 매개체이다. 이를 통해 AWS에서 제공되는 서비스를 사용하게 해주어 VPC 밖으로 트래픽이 나가지 않아 Private subnet에도 다양한 서비스를 연결시켜줄 수 있도록 지원해준다.
- Interface Endpoint : Private ip를 만들어 서비스로 연결해줌(SQS, SNS, Kinesis, Sagemaker 등 지원)
- Gateway Endpoint : 라우팅 테이블에서 경로의 대상으로 지정하여 사용(S3, Dynamodb 지원)
(~10/31) 최대 70% 최저가 특가 마지막 득템 찬스! | 패스트캠퍼스
fastcampus.co.kr
참고자료
https://galid1.tistory.com/365
본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다.