aws

[AWS]VPC (2)

하리하링웹 2024. 7. 13. 20:17

1편 링크

https://jjongsk.tistory.com/entry/AWSVPC-1

 

[AWS]VPC (1)

Amazon VPC 개요Amazon Virtual Private Cloud (VPC)는 AWS 클라우드에서 논리적으로 격리된 네트워크를 생성할 수 있도록 지원하는 서비스이다. VPC는 네트워크 계층에서 EC2 인스턴스와 기타 AWS 리소스를 포

jjongsk.tistory.com

 

네트워크 주소 변환

ENI와 퍼블릭 IP 주소를 연결한 뒤에도 ENI는 여전히 private IP 주소를 유지하며 새로운 설정이 필요 없다. 대신 NAT(Network Address Translation) 과정을 통해 인터넷 게이트웨이가 퍼블릭 IP 주소를 ENI의 private IP 주소로 매핑한다.

NAT 디바이스

네트워크 주소 변환은 인터넷 게이트웨이에서 이루어지지만, 다음 두 서비스도 NAT 작업을 수행한다:

  • NAT 게이트웨이
  • NAT 인스턴스

AWS의 NAT 디바이스는 인스턴스가 인터넷에 접속할 수 있게 하면서도 인터넷 상의 호스트가 인스턴스에 직접 접속하지 못하도록 한다. 이를 통해 인스턴스가 인터넷에 접속할 때 퍼블릭 IP 주소 할당이 필요 없다.

NAT 디바이스를 위한 라우트 테이블 설정 변경

NAT 디바이스를 사용하는 인스턴스는 인터넷으로 연결된 트래픽을 NAT 디바이스로 보내고, NAT 디바이스는 이를 인터넷 게이트웨이로 전달한다. 따라서 NAT 디바이스와 인스턴스의 기본 라우트는 서로 달라야 하며, 라우트 테이블은 별도의 서브넷에 존재해야 한다.

 

NAT 게이트웨이

NAT 게이트웨이는 인터넷 게이트웨이처럼 하나의 NAT 게이트웨이로 여러 요청을 처리할 수 있다. NAT 게이트웨이를 생성할 때 EIP를 할당해 연결해야 하며, 인터넷 접속이 가능하도록 퍼블릭 서브넷에 생성한다. AWS는 해당 서브넷의 private IP 주소를 NAT 게이트웨이에 할당한다.

NAT 게이트웨이 생성 후 기본 라우트를 설정해 인스턴스에서 인터넷으로 향하는 트래픽이 NAT 게이트웨이로 전달되도록 하면 정상적으로 동작한다.

NAT 게이트웨이는 ENI를 사용하지 않기 때문에 보안 그룹을 적용할 수 없지만, NACL을 사용해 트래픽을 제어할 수 있다.

NAT 인스턴스

NAT 인스턴스는 Linux 기반 AMI로 생성된 EC2 인스턴스의 일종이며, 다른 인스턴스 생성 방법과 동일하다. NAT 인스턴스는 NAT 게이트웨이와 달리 대역폭 요구가 증가하더라도 자동으로 확장되지 않기 때문에 처음부터 적절한 성능의 인스턴스를 선택해야 한다.

NAT 인스턴스는 ENI를 가지고 있어 보안 그룹을 적용할 수 있으며, 퍼블릭 IP도 직접 할당해야 한다. 또한, 직접 NAT 인스턴스 ENI에서 소스/대상 주소 옵션을 비활성화해야 NAT 인스턴스가 자신의 IP로 트래픽을 송수신하지 않게 된다.

장점

  • NAT 인스턴스는 퍼블릭 IP가 없는 인스턴스와 연결할 수 있다.
  • 사용자는 기본 라우트를 생성하여 인터넷 연결 트래픽을 NAT 인스턴스로 보낼 수 있다.

단점

  • NAT 인스턴스는 인스턴스나 AZ의 장애 발생 시 다른 NAT 인스턴스로 대체하거나 문제를 해결하기 어렵다. 기본 라우트를 하나만 정의해 사용하기 때문에 다른 NAT 인스턴스를 가리키도록 할 수 없다. 네트워크 복원성이 중요하다면 NAT 게이트웨이를 사용하는 것이 좋다.

현재 AWS에서는 NAT 인스턴스보다 NAT 게이트웨이를 권장한다.

 

AWS PrivateLink

AWS PrivateLink는 인터넷을 우회하여 VPC 리소스, AWS 서비스, 온프레미스 리소스가 안전하게 통신할 수 있는 방법을 제공한다.

VPC 피어링

VPC 피어링은 프라이빗 AWS 네트워크를 통해 하나의 VPC에 포함된 인스턴스가 다른 VPC와 통신할 수 있도록 하는 기능이다. 피어링 연결을 활성화한 후, VPC 간에 point-to-point 연결을 설정한다. VPC 간 1:1 피어링만 허용되므로 여러 VPC를 연결하려면 각각의 VPC에 대해 1:1 피어링 연결을 설정해야 한다.

 

하이브리드 클라우드 네트워킹

AWS는 온프레미스와 VPC를 프라이빗 연결 서비스로 연결할 수 있도록 다양한 서비스를 제공한다:

  • AWS Site-to-Site VPN
  • AWS Transit Gateway
  • AWS Direct Connect

AWS Site-to-Site VPN

퍼블릭 인터넷을 통해 VPC와 데이터 센터, 사무실 등의 온프레미스 네트워크를 연결할 수 있다.

AWS Transit Gateway

AWS Transit Gateway는 Direct Connect 링크와 VPN을 사용하여 다수의 VPC 및 온프레미스 네트워크를 연결할 수 있는 서비스이다. 먼저 Transit Gateway를 생성한 후, VPC, VPN 연결, Direct Connect 게이트웨이 또는 다른 Transit Gateway에 부착한다. 그런 다음 Transit Gateway 라우트 테이블을 통해 서로 연결한다.

Transit Gateway 라우트 테이블은 VPC 라우트 테이블과 유사하지만, 타겟은 VPC, VPN 연결, Direct Connect Gateway, 다른 Transit Gateway만 지정할 수 있으며 ENI나 인터넷 게이트웨이는 지정할 수 없다.

AWS Transit Gateway 활용 예시

  • 중앙화 라우터: 모든 VPC 및 온프레미스 트래픽을 중앙화 라우터로 제어
  • 격리 라우터: 여러 VPC를 보유한 상황에서 온프레미스 네트워크와의 연결성을 유지하며 VPC 간 격리성을 유지
  • 공유 서비스: 격리된 보안 상태에서 Transit Gateway를 이용해 공유 환경 구성
  • 피어링: 서로 다른 리전 간에 피어링 가능
  • 멀티캐스트: VPC 간 멀티캐스트 지원
  • 블랙홀 라우트: Transit Gateway 라우트 테이블에 블랙홀 엔트리를 추가하여 특정 트래픽 차단

AWS Direct Connect

AWS Direct Connect는 AWS 리소스에 대해 프라이빗하고 저지연성 연결을 제공한다. 대량의 데이터 전송, 실시간 데이터 전송, 법적 규제로 인해 퍼블릭 인터넷을 통한 데이터 전송이 불가능한 경우에 유용하다. 아래 두 가지 연결 타입을 제공한다.

전용 연결 타입

물리적인 단일 연결이다. Direct Connect 지점에 자체 장비를 추가해야 하며, 각 연결 지점은 AWS 리전과 연결되어 있다.

호스트 연결 타입

Direct Connect 연결 지점에서 데이터센터, 사무실을 잇는 라스트-마일 연결을 제공한다.

Direct Connect Gateway

Direct Connect Gateway는 리전 내 여러 VPC를 하나의 연결 지점에서 접속할 수 있도록 해주는 글로벌 리소스이다. AWS 측에서는 Transit Gateway 또는 VPG가 Direct Connect Gateway로서 역할을 하며, 사용자 측에서는 Direct Connect Gateway가 온프레미스 장비와 BGP 세션을 유지한다.

가상 인터페이스

Direct Connect 연결 방식에 따라 하나 이상의 가상 인터페이스를 생성할 수 있다. 세 가지 가상 인터페이스를 제공한다.

  • 프라이빗 가상 인터페이스: 단일 VPC 내의 EC2 또는 RDS 인스턴스 등의 리소스의 private IP 주소에 연결할 수 있다.
  • 퍼블릭 가상 인터페이스: 퍼블릭 엔드포인트를 가진 AWS 서비스의 퍼블릭 IP 주소에 연결할 수 있으며, 온프레미스 애플리케이션을 AWS 서비스에 연결할 때 유용하다.
  • Transit 가상 인터페이스: 여러 VPC에 분산된 리소스를 연결할 때 주로 사용된다.

 

고성능 컴퓨팅(HPC)

고성능 컴퓨팅(HPC)은 다수의 인스턴스를 이용해 병렬적으로 연산을 처리하는 방식이다. HPC 클러스터는 상호작용 수준에 따라 두 가지 카테고리로 나뉜다.

  • 느슨하게 연결된 클러스터: 인스턴스가 독립적으로 작업을 수행할 수 있도록 세분화되며, 이미지 프로세싱, DNA 염기 배열 분석 등의 업무에 사용된다.
  • 긴밀하게 연결된 클러스터: 인스턴스가 단일 슈퍼컴퓨터처럼 작동해야 하며 고속 네트워크와 높은 컴퓨팅 파워가 필요하다. 복합 시뮬레이션, 머신러닝, 기상 예측 등의 작업에 사용된다.

Elastic Fabric Adapter (EFA)

EFA는 전통적인 TCP/IP 네트워크 연결을 지원하는 특수한 형태의 ENA이다. OS의 기본 TCP/IP 스택을 우회하여 EFA에 직접 접속할 수 있도록 함으로써 HPC를 위한 높은 처리량과 저지연성을 제공한다. 트래픽의 라우팅 제어가 불가능하므로 모든 인스턴스는 동일한 서브넷에 있어야 하며, 동일한 보안 그룹에 부착되어야 한다. 보안 그룹은 유입 및 유출되는 모든 트래픽을 허용해야 하며, 네트워크 전송 지연을 최소화해야 한다.

AWS ParallelCluster

AWS ParallelCluster는 Linux 기반 HPC 클러스터를 자동으로 관리한다. 클러스터 인스턴스 프로비저닝 작업을 수행하고 공유 파일 시스템을 자동으로 생성한다. 공유 파일 시스템은 마스터 인스턴스의 EBS에 저장되며 NFS를 통해 공유된다. ParallelCluster는 AWS Batch를 이용해 배치 스케줄러를 생성하고, HPC 컴퓨팅 작업에 맞춰 자동으로 클러스터를 확대 또는 축소한다.

 

정리

  • VPC는 EC2 및 다른 AWS 서비스를 활용하기 위한 네트워크 서비스이다.
  • 리전별 기본 VPC는 서브넷, 라우트 테이블, 보안 그룹, NACL과 함께 제공된다.
  • 추상화된 VPC에서는 전통적인 네트워크처럼 높은 수준의 유연성을 체감하기 어렵지만, 클라우드에서는 네트워크 유연성보다 어플리케이션 인프라 전체의 가용성과 탄력성을 중시한다. 따라서 VPC와 이에 연결된 EC2 요소의 융합에 신경 써야 한다.
  • VPC 작업 시작 시 CIDR을 설정하는 것으로 시작된다. 기본 CIDR 생성 시, 모든 인스턴스를 수용할 수 있을 정도의 주소 범위와 향후 보조 CIDR을 생성할 여유 주소를 확보하는 것이 좋다.
  • VPC CIDR은 서브넷으로 나눌 수 있으며, 서브넷은 AZ별로 존재하는 주소 컨테이너이다. 서브넷에 인스턴스를 만들고 나면 변경할 수 없다.
  • 인스턴스의 ENI에는 보안 그룹을 연결해야 하므로 먼저 보안 그룹을 구성해야 한다. NACL은 보안 그룹보다 높은 수준의 유연성을 제공하며, 필요 시 서브넷에 NACL을 연결하거나 서브넷과 NACL을 함께 생성해서 사용할 수 있다.
  • 퍼블릭 인터넷 접속을 위해서는 인터넷 게이트웨이를 추가하고, 기본 라우트를 생성한 후 퍼블릭 IP 주소를 할당해야 한다. NAT 게이트웨이, NAT 인스턴스, VPC 피어링을 사용하기 위해서도 라우트 테이블을 수정해야 한다.

 

'aws' 카테고리의 다른 글

[AWS]데이터베이스 (2)  (0) 2024.07.18
[AWS]데이터베이스 (1)  (0) 2024.07.16
[AWS]VPC (1)  (0) 2024.07.09
[AWS]스토리지 (2)  (0) 2024.07.01
[AWS]스토리지(1)  (0) 2024.06.28