AWS VPC에 대하여

FineLee·2022년 1월 13일
0

Cloud

목록 보기
1/8
post-thumbnail

클라우드 코멘토 직무부트 캠프를 하며 스스로 공부하는 내용에 대해 적어본다.

AWS VPC란?

(Amazon Virtual Private Cloud)

Amazon VPC를 사용하면 aws클라우드에서 다른 가상네트워크와 논리적으로 분리된 AWS 클라우드 섹션을 프로비저닝 할 수 있습니다.
※ (프로비저닝(provisioning)은 사용자의 요구에 맞게 시스템 자원을 할당, 배치, 배포해 두었다가 필요 시 시스템을 즉시 사용할 수 있는 상태로 미리 준비해 두는 것)

  1. 사용자 고유의 IP주소 범위 선택
  2. 서브넷 생성
  3. 경로 테이블 및 네트워크 게이트웨이 구성 등 가상 네트워킹 환경을 완벽하게 제어할 수 있습니다.
    또한, 기업 데이터 센터와 VPC간에 하드웨어 VPN(가상 사설망) 연결을 생성하고, 기업 데이터 센터의 확장으로 AWS클라우드를 활용할 수도 있습니다.
    Amazon VPC에 대한 네트워크 구성을 쉽게 사용자 지정할 수 있습니다.
    쉽게말하면, 클라우드 내의 가상 데이터 센터라고 합니다.

참고
참고2

아마존 VPC의 구성요소

1. Virtual Private Cloud : AWS클라우드에서 논리적으로 분리된 가상 네트워크, 선택한 범위에서 VPC 의 IP 주소공간 정의

2. 서브넷 : 거대한 네트워크 대역의 VPC주소를 잘게 쪼갠 네트워크 주소
※ (세그먼트는 프로그램에 정의된 특정영역)
※ 생성할때는 서브넷에 대한 CIDR블록을 지정해야하며, 한개의 가용영역 안에서만 존재한다.
※ 1 Subnet = 1 Availability Zone(가용영역) 한개의 서브넷을 여러 가용영역에는 불가능
※ VPC를 만든 후 각 가용영역에 하나 이상의 서브넷을 추가할 수 있습니다.

2-1. 서브넷의 종류

public Subnet : 내부에 Internet Gateway, ELB, Public IP/ Elastic IP를 가진 인스턴스를 내부에 생성할 수 있으며, Internet Gateway 연결(3번 참고)을 통해서 외부와 통신할 수 있습니다.
공인인터넷 허용

Private Subnet :
외부와 차단되어있습니다. Private Subnet 내의 인스턴스들은 Private IP만을 가지고있으며, internet inbound/outbound가 불가능하고, 오직 다른 서브넷과의 연결만 가능합니다. Nat Instance 를 Public Subnet 내에 위치생성하여 Private Subnet 내에 있는 instance만이 인터넷 가능하게 합니다.
공인인터넷 차단

2-2. 서브넷팅 하는 이유
1. IP 주소를 효율적으로 사용하기 위해 서비스의 행위별로 IP를 분리하여 효율적으로 운영할 수 있습니다.

  1. 네트워크를 분리하여 보안성을 강화하기 위해서 외부에 노출되선 안되는 서비스를 별도로 관리할 수 있습니다.

2-3. aws에서의 서브넷

각 서브넷 CIDR 블록에서 첫 4개의 IP 주소와 마지막 IP 주소는 사용자가 사용할 수 없으므로 인스턴스에 할당할 수 없습니다. 예를 들어 10.0.0.0/24 CIDR 블록의 서브넷에서는 5개 IP 주소는 아래 목적으로 예약되어 있습니다.

출처
10.0.0.0: 네트워크 주소.
10.0.0.1: AWS에서 VPC 라우터용으로 예약
10.0.0.2: DNS 서버의 IP 주소는 기본 VPC 네트워크 범위에 2를 더한 주소를 사용합니다
10.0.0.3: AWS에서 나중에 사용하려고 예약
10.0.0.255: 네트워크 브로드캐스트 주소. VPC에서는 브로드캐스트를 지원하지 않으므로, 이 주소를 예약합니다.

※ CIDR 이란?
도메인간 라우팅 기법(Classless Inter-Domain Routing)
각 네트워크 대역을 구분짓고 Inter-Domain과 같이 구분된 네트워크간 통신을 위한 주소체계
IP뒤에 123.456.78.9/24 에서 /24가 사이더 표기법이다.
이 숫자는 비트단위이며 0~32까지 표현이 가능하다.
IP는 옥텟이라는 단위로 나뉘고, 하나의 옥텟은 8비트, 일반적으로 사용하는 Ipv4주소는 4개의 옥텟으로 이루어져 있음.
따라서 사이더는 0~32 까지 총 32비트까지 사용가능

자세한 설명 참고

2-1-1. 라우팅이란?
VPC에는 암시적인 라우터가 있으며 라우팅 테이블을 사용하여 네트워크 트래픽이 전달되는 위치를 제어함. VPC의 각 서브넷을 라우팅 테이블에 연결해야 함. 테이블에서는 서브넷에 대한 라우팅을 제어함.

※ 라우팅 테이블 (Routing Table)
라우팅 테이블은 컴퓨터 네트워크에서 목적지 주소를 목적지에 도달하기 위한 네트워크 노선으로 변환시키는 목적으로 사용된다. 각 라우터의 라우팅 테이블은 모든 목적지 정보에 대해 해당 목적지에 도달하기 위해서 거쳐야 할 다음 라우터의 정보를 가지고 있다.

한 서브넷이 다른 서브넷으로 가기 위해서는 Routing이 필요하다. (서로 다른 네트워크 영역이기 때문)

3. 인터넷 게이트웨이: 아마존 VPC측면에서의 공공 인터넷 연결 활성화
네트워크 트래픽에 가용성 위험이나 대역폭 제약 조건이 발생하지 않음.
인터넷으로 나아가기 위한 수단
aws 공식문서

3.1 인터넷 게이트웨이 목적
인터넷 게이트웨이는 인터넷 라우팅 가능 트래픽에 대한 VPC라우팅 테이블에 대상을 제공하고, 퍼블릭 IPv4주소가 할당된 인스턴스에 대해 NAT (네트워크 주소 변환)을 수행하는 두가지 목적이 있다.

외부 인터넷과 통신할 때 갖춰야 할 조건 참고
1. Internet 통신하고자 하는 Resource가 공인 IP를 보유할것
2. Resource가 소속된 Subnet의 Routing Table 에 '0.0.0.0/0' 목적지로 갖는 Routing 'Internet Gateway'이 있을것
3. Network ACL과 Security Group규칙에서 허용할 것

3.2 인터넷 액세스 활성화
VPC의 서브넷에 속한 인스턴스에 대해 인터넷 송수신 액세스를 활성화 하려면 다음을 수행해야 한다.

  • 인터넷 게이트웨이를 생성하여 VPC에 연결
  • 인터넷 바인딩된 트래픽을 인터넷 게이트웨이로 전달하는 라우팅을 서브넷의 라우팅 테이블에 추가
  • 서브넷의 인스턴스에 전역적으로 고유한 IP주소 (퍼블릭 IPv4 주소, 탄력적 IP 주소 또는 IPv6 주소)가 있는지 확인
  • 네트워크 액세스 제어 목록 및 보안 그룹 규칙에서 관련 트래픽이 인스턴스로, 그리고 인스턴스에서 흐르도록 허용하는 지 확인

4. NAT 게이트웨이 : 네트워크 주소 변환을 통해 프라이빗 서브넷에서 인터넷
또는 기타 서비스에 연결하는 게이트웨이

과정
EC2(Private Subnet) -> NAT Gateway -> Internet Gateway -> 외부인터넷

설정순서
1. Internet Gateway 의 Public Subnet 에 Nat Gate way생성해야함, 공인 IP할당
2. Private Subnet이 사용하는 Routing Table 에 0.0.0.0/0 에 대하여 Nat Gateway 로 라우팅 되도록 설정해야함.

<기초 설명>
NAT : IP패킷의 TCP/UDP포트 숫자와 소스 및 목적지의 IP주소 등을 재기록 하면서 라우터를 통해 네트워크 트래픽을 주고받는 기술을 말한다.
NAT을 이용하는 이유는 대개 사설(Private) 네트워크에 속한 여러개의 호스트가 하나의 공인 IP주소를 사용하여 인터넷에 접속하기 위함이다. NAT가 호스트간의 통신에 있어서 복잡성을 증가시킬 수 있으므로, 네트워크 성능에 영향을 줄 수있는것은 당연하다.
즉, 외부 인터넷으로 나아가기 위해 사설 IP가 공유기를 지나 공인 IP를 가지고 원하는 목적 주소로 향하게 하는것

5. Virtual private gateway: VPC에서의 VPN연결
6. Peering Connection : 프라이빗 IPv4 주소 또는 IPv6 주소를 사용하여 두 VPC 간에 트래픽을 라우팅할 수 있도록 하기 위한 두 VPC 사이의 네트워킹 연결
다른/같은 AWS계정의 VPC와 연결 가능
7.VPC Endpoints : 가상 장치로서 인터넷 게이트웽, NAT디바이스, VPN연결 또는 AWS Direct connect연결을 필요로 하지 않고, VPC와 AWS 서비스를 전용 연결(private connection)할 수 있도록 한다
내부에 Endpoint를 형성한뒤, 이 Endpoint를 통해 AWS외부 서비스에 도달 할 수 있도록 한다.

7-1 인터페이스 엔드 포인트
서브넷마다 Elastic network Interface(ENI)를 생성하여 외부 서비스에 접근하기 위한 Interface endpoint로 지정합니다. 외부 인터넷을 사용하지 않고, 해당 ENI를 통해 외부서비스로 접근이 가능합니다.
공인 IP없이도 접근이 가능하게 된다.
7-2 게이트웨이 엔드포인트
S3, Dynamo DB두개 서비스만 사용가능하다
인터페이스가 추가되지않고, Routing이 자동으로 추가된다.

8.Egress-only Internet Gateway : 송신 전용 게이트웨이, VPC에서 인터넷으로 IPv6트래픽에 대한 송신전용 액세스를 제공하는 상태저장 게이트웨이

9. Amazon VPC의 인터네트워크 트래픽 프라이버시
자세한 내용은 공식문서 참고

9-1-1네트워크 ACL
1개 이상의 서브넷 내부와 외부의 트래픽을 제어하기 위한 방화벽 역할을 하는 VPC를 위한 선택적 보안 계층. 보안그룹과 비슷한 규칙으로 네트워크 ACL을 설정하여 VPC에 보안계층을 더 추가할 수 있음. Subnet을 오가는 트래픽을 제어하는 역할을 함.
즉 Subnet 의 Access List를 책임진다.
Subnet내의 모든 트래픽은 Network ACL의 규칙 적용을 받는다.

특징
1. 인바운드/아웃바운드 규칙나뉨
2. 허용/거부 규칙 생성가능
3. 규칙에 값이 매겨져 가장 작은값을 지니는 규칙이 우선
4. 하나의 Subnet에는 하나의 Network ACl
5. 상태를 저장하지 않아 한 번 인바운드를 통과하는 트래픽은 아웃바운드의 규칙적용을 받음
6. 상태를 저장하지 않아 한 번 아웃바운드를 통과하는 트래픽은 인바운드의 규칙적용을 받음

9-1-2보안그룹
보안 그룹은 연결된 Amazon EC2 인스턴스에 대한 방화벽 역할을 하여 인스턴스 수준에서 인바운드 트래픽과 아웃바운드 트래픽을 모두 제어합니다.
인스턴스를 시작할 때 생성한 하나 이상의 보안 그룹과 인스턴스를 연결할 수 있습니다. VPC의 각 인스턴스는 서로 다른 보안 그룹 세트에 속할 수 있습니다. 인스턴스를 시작할 때 보안 그룹을 지정하지 않을 경우 VPC에 대해 인스턴스는 기본 보안 그룹과 자동으로 연결됩니다.

Security Group의 특징
1. 인바운드 규칙과 아웃바운드 규칙으로 나뉨
2. 허용규칙만 생성가능
3. 기본적으로 모든 Security Group의 아웃 바운드 규칙은 모든 아웃바운드 트래픽 허용
4. 하나의 인스턴스에는 최대 5개의 Security Group동시 적용가능
5. 상태를 저장하여 한번 인바운드를 통과하는 트래픽은 아웃바운드의 규칙 적용을 받지 않음
6. 상태를 저장하여 한번 아웃바운드를 통과하는 트래픽은 인바운드의 규칙 적용을 받지 않음

공식문서 캡쳐
둘의 비교

9-1-3 VPC Flow Logs
VPC의 네트워크 인터페이스에서 양방향으로 이동하는 IP 트래픽에 대한 정보를 캡처합니다. VPC, 서브넷 또는 개별 네트워크 인터페이스에 대한 flow 로그를 생성할 수 있습니다. 플로우 로그 데이터는 CloudWatch Logs 또는 Amazon S3에 게시되며 과도하게 제한하거나 과도하게 허용하는 보안 그룹과 네트워크 ACL 규칙을 진단하는 데 도움이 됩니다.

왜 아마존 VPC를 사용해야할까?

  • Amazon VPC는 VPN, 하드웨어 또는 물리적 데이터 센터 없이도 AWS 클라우드에서 가상 네트워크를 구축할 수 있도록 해준다.
  • 자신만의 네트워크 공간을 정의하고 네트워크 내부의 네트워크와 Amazon EC2 리소스가 인터넷에 어떻게 노출되는지 제어할 수 있다.
  • 또한 Amazon VPC의 향상된 보안 옵션을 활용하여 가상 네트워크의 Amazon EC2 인스턴스에 보다 세분화된 액세스를 제공할 수 있다.
  • AWS의 자원들을 더욱 안전하게 관리할 수 있다.

VPC의 사용

VPC - > VPC 마법사 시작 을 택하여 VPC생성가능하다.
네트워크 아키텍쳐에 대한 네가지 기본 옵션이 제공된다고 한다.
옵션 선택 후 IP주소 범위를 수정할 수 있다.
네지 옵션은 다음과 같다.
1. Amazon VPC with a single public subnet only
2. Amazon VPC with public and private subnets
3. Amazon VPC with public and private subnets and AWS Site-to-Site VPN access
4. Amazon VPC with a private subnet only and AWS Site-to-Site VPN access

VPC의 연결성

  • 인터넷
  • 가상 개인 게이트웨이를 통해 AWS사이트간 VPN연결을 사용하는 기업 데이터 센터
  • Both the internet and your corporate data center (utilizing both an internet gateway and a virtual private gateway)
  • Other AWS services (via internet gateway, NAT, virtual private gateway, or VPC endpoints)
  • Other Amazon VPCs (via VPC peering connections)
profile
해송의 벨로그

0개의 댓글