SAA-C02 자격증 합격 후기에 이어 공부했던 내용들을 간단하게 다시 정리하고 있습니다.
두 번째로는 VPC에 대해서 정리해 보겠습니다.
Amazon VPC는 EC2의 네트워크 계층이고, EC2 인스턴스를 비롯한 여러 AWS 서비스에 네트워크 리소스를 담을 수 있는 가상 네트워크입니다.
모든 VPC는 기본적으로 다른 모든 네트워크와 격리돼 있지만, 필요할 때는 인터넷 및 다른 VPC 등과 연결할 수 있습니다.
VPC는 한 AWS 리전 안에서만 존재할 수 있으며, 한 리전에 만든 VPC는 다른 리전에서는 보이지 않습니다.
하나의 계정에 여러 VPC를 둘 수 있고 단일 리전에 여러 VPC를 만들 수 있습니다.
VPC는 하나 이상의 연속적 IP 주소 범위로 구성되며, CIDR(Classless Inter Domain Routing) 블록으로 표시합니다. ('싸이더'라고 읽습니다)
VPC에서 허용된 CIDR 접두사 길이는 /16부터 /28까지
이고, 다음의 사설망(private) RFC 1918 규격 내에서 VPC CIDR 블록을 지정하는 것이 좋습니다.
VPC를 만든 후에도 추가적으로 보조 CIDR 블록을 지정할 수 있습니다.
보조 CIDR 블록은 기본 CIDR 주소 범위나 퍼블릭에서 라우팅이 가능한 범위 내에서 생성돼야 하고, 기본 블록 또는 다른 보조 블록과 겹치지 않아야 합니다.
서브넷은 VPC 내에 있는 논리 컨테이너로 EC2 인스턴스를 배치하는 장소입니다.
서브넷을 통해 인스턴스를 서로 격리하고, 인스턴스 간 트래픽 흐름을 제어하고, 인스턴스를 기능별로 모아둘 수 있습니다.
서브넷 트래픽이 인터넷 게이트웨이로 라우팅되는 경우 해당 서브넷을 퍼블릭 서브넷이라고 합니다.
(위 그림에서 0.0.0.0/0 -> igw-id
로 매핑되는 서브넷)
반대로 인터넷 게이트웨이로 라우팅되지 않는 서브넷을 프라이빗 서브넷이라고 합니다.
서브넷의 CIDR은 VPC CIDR의 일부이면서, VPC 내에서 고유해야 합니다.
AWS는 모든 서브넷에서 처음 4개 IP 주소와 마지막 IP 주소를 예약하며, 이 주소는 인스턴스에 할당할 수 없습니다.
VPC는 보조 CIDR를 가질 수 있지만, 서브넷에는 하나의 CIDR만 있습니다.
VPC에 기본 CIDR와 보조 CIDR가 있는 경우, 그 중 하나에서 서브넷 CIDR를 생성할 수 있습니다.
기본 서브넷은 메인 라우팅 테이블이 인터넷 게이트웨이로 서브넷의 요청을 보내기 때문에 기본적으로 public 서브넷입니다.
인터넷 게이트웨이로 향하는 기본 destination인 0.0.0.0/0
라우팅을 제거하고 private 서브넷으로 만들 수도 있습니다.
기본 서브넷에서 시작한 EC2 인스턴스는 public IPv4 주소와 private IPv4 주소를 모두 받을 수 있고, 반대로 기본 VPC 안의 일반 서브넷에서 시작한 인스턴스는 public 주소를 받지 못합니다.
단, 일반 서브넷에서 인스턴스 시작 마법사로 인스턴스를 생성하면 예외적으로 public 주소를 지정할 수 있습니다.
서브넷은 하나의 가용 영역(AZ, Availabiliy Zone) 내에서만 존재할 수 있습니다.
AWS 리전의 가용 영역들은 서로 프라이빗하게 연결돼 있으며, 한 가용 영역에 장애가 발생하더라도 다른 영역에 장애의 영향이 미치지 않도록 설계되어 있습니다.
서로 다른 가용 영역에 서브넷을 하나씩 만든 다음 인스턴스를 각각 서브넷에 분산해서 만들면, 애플리케이션은 복원성을 확보할 수 있습니다.
애플리케이션의 가용성을 높이는 대표적인 방법입니다.
탄력적 네트워크 인터페이스(ENI, Elastic Network Interface)를 사용하면 인스턴스가 AWS 서비스, 다른 인스턴스, 온프레미스 서버, 인터넷 등 다른 네트워크 리소스와 통신할 수 있게 됩니다.
모든 인스턴스에는 기본 ENI가 있어야 하며 이 인터페이스는 하나의 서브넷에만 연결됩니다.
ENI는 인스턴스와 독립적으로 존재할 수 있는데, 먼저 ENI를 생성하고 나중에 인스턴스에 연결할 수도 있습니다.
기존 ENI를 가져와서 기존 인스턴스에 보조 ENI로 연결할 수 있으며, 장애가 있는 인스턴스에서 ENI를 분리해 작동하고 있는 다른 인스턴스에 연결하면 트래픽을 장애 인스턴스에서 정상 인스턴스로 전환할 수 있습니다.
참고로 ENI는 인스턴스가 stopped 상태가 되더라도 분리되지 않습니다.
VPC Peering Connection은 서로 다른 두 VPC 간에 트래픽을 라우팅할 수 있도록 하는 네트워킹 연결입니다.
VPC 피어링 연결은 원활한 데이터 전송에 많은 도움이 되는데요.
예를 들어 AWS 계정이 두 개 이상인 경우 이들 계정을 대상으로 VPC를 피어링하여 파일 공유 네트워크를 만들 수 있습니다.
VPC 피어링 연결을 사용하여 다른 VPC가 사용자의 VPC 중 하나에 있는 리소스에 액세스하도록 허용할 수도 있습니다.
Peering Connection이 항상 가능한 것은 아닌데요, 다음과 같은 상황에서는 피어링 구성이 지원되지 않습니다.
보안 그룹은 EC2 인스턴스에 대한 방화벽 역할을 합니다.
어떤 IP에서 오는 트래픽을 통과시킬지, 인스턴스 수준에서 인바운드 트래픽과 아웃바운드 트래픽을 모두 제어하는 일종의 규칙 집합입니다.
다음과 같은 특징들을 잘 알아두어야 합니다.
보안 그룹보다 좀 더 큰 개념으로 Network ACL이 있는데요, 보안 그룹이 인스턴스 레벨에서 제어하는 규칙이었다면, ACL은 서브넷 간의 통신 규칙을 관리합니다.
보안 그룹과 동작 방식이 다르기 때문에 비교해서 정확하게 알아두는 것이 좋습니다.
ACL에는 다음과 같은 특징이 있습니다.
VPC와 AWS 서비스를 private 연결할 수 있도록 하는 서비스입니다.
인터넷 게이트웨이는 퍼블릭 IP 주소를 할당받은 인스턴스가 인터넷과 연결돼서 인터넷으로부터 요청을 수신하는 기능을 제공합니다.
VPC에는 하나의 게이트웨이만 연결할 수 있습니다.
인터넷 게이트웨이에는 관리형 IP 주소나 네트워크 인터페이스가 없는 대신, 식별을 위해 AWS 리소스 ID가 할당됩니다.
리소스 ID는 igw-
로 시작하며 그 뒤에 영숫자 문자열이 옵니다.
네트워크 주소 변환은 인터넷 게이트웨이에서 이뤄지지만, 다음 두 가지 서비스도 네트워크 주소 변환을 수행합니다.
AWS는 이를 NAT 디바이스
라고 하며, 인스턴스가 인터넷에 액세스할 수 있게 하면서 인터넷상의 호스트에서는 인스턴스에 직접 도달하지 못하게 할 때 사용합니다.
이 기능은 인스턴스가 업데이트 패치를 받거나 데이터를 업로드할 때 인터넷에 연결할 필요는 있지만, 클라이언트 요청에 응답할 필요는 없을 때 유용합니다.
이러한 특성 때문에 시험에 자주 등장하니 다음 서비스를 잘 알아두면 좋습니다.
NAT 게이트웨이는 AWS에서 관리하는 NAT 디바이스이며, 인터넷 게이트웨이처럼 하나의 NAT 게이트웨이로 어떠한 용량의 요청도 처리할 수 있습니다.
보통 NAT 디바이스를 사용해야 한다면 NAT 게이트웨이로 구성을 하게 됩니다.
NAT 게이트웨이를 생성할 때 EIP도 함께 할당해서 연결해야 하고, 퍼블릭 서브넷 한 곳에 배포해서 인터넷에 액세스할 수 있게 해야 합니다.
NAT 인스턴스는 사전 구성된 Linux 기반 AMI를 사용하는 일반적인 EC2 인스턴스이며, 여러 면에서 NAT 게이트웨이처럼 작동하지만 NAT 인스턴스는 몇 가지 중요한 다른 점이 있습니다.
NAT 게이트웨이와는 달리 NAT 인스턴스는 대역폭 요구가 증가하더라도 자동으로 확장되지 않습니다.
따라서 적절한 성능을 갖춘 인스턴스 유형을 선택히는 것이 중요한데요, 대역폭 요구가 증가하면 직접 더 큰 인스턴스 유형으로 업그레이드해야 합니다.
만약 인스턴스나 가용 영역에 장애가 발생하면 다른 NAT 인스턴스로 확장하는 정도로는 간단히 대처할 수 없는데, 이는 기본 라우팅에 여러 NAT 인스턴스를 대상으로 경로를 지정할 수 없기 때문입니다.
그리고 NAT 인스턴스에는 ENI가 있으므로 보안 그룹을 적용해야 하고 퍼블릭 IP 주소도 할당해야 합니다.
NAT 인스턴스의 한 가지 이점은 배스천 호스트(Bastion Host, 또는 점프 호스트)로 사용해서 퍼블릭 IP가 없는 인스턴스에 연결할 수 있다는 것이며, NAT 게이트웨이로는 이 작업을 수행할 수 없습니다.
VPN 연결 옵션을 사용하여 Amazon VPC를 원격 네트워크 및 사용자에 연결할 수 있습니다.
출처: https://wbluke.tistory.com/55 [함께 자라기:티스토리]
댓글 영역