AWS/AWS 공부

[AWS] VPC(Virtual Private Cloud), 서브넷(Subnet)

Yuco 2023. 6. 17. 19:16

 

1. Amazon VPC(Virtual Private Cloud)

 

* 예시 없는 간단한 설명글 입니다. 

 

Amazon VPC는 사용자가 정의한 논리적으로 격리된 가상 네트워크에서 AWS 리소스를 시작할 수 있도록 하는 서비스입니다. 결과적으로 클라우드 환경에서 가상의 네트워크를 생성할 수 있게 해주는 서비스를 의미합니다. 

여기서 리소스 EC2 인스턴스, NAT 게이트웨이, Network Load Balancer 등을 의미합니다. VPC를 사용하면 리소스의 배치나 연결 및 보안을 포함하여 가상 네트워킹 환경을 완전히 제어 가능합니다. IP 주소의 범위 선택이나, 서브넷 생성, 라우팅 테이블 및 네트워크 게이트웨이 구성 등 가상 네트워킹 환경을 완전히 제어할 수 있게 된다는 의미입니다. 

 

사용자는 VPC 내에서 IP 대역, 인터페이스, 서브넷, 라우팅 테이블, 인터넷 게이트웨이, 보안 그룹, ACL 등을 생성하고 제어할 수 있습니다. 사용자는 자기가 원하는 대로 IP 주소 범위 선택, 서브넷 생성, 라우팅 테이블 및 네트워크 게이트웨이 구성 등 가상 네트워크 환경을 구성해 VPC를 생성할 수 있습니다. 

 

즉, VPC는 사용자의 AWS 계정 전용 가상 네트워크로 논리적으로 공간을 격리 하는데, 우리가 사용하는 EC2, RDS 등이 이 격리된 공간 위에서 리소스를 생성하는 것입니다. 하나의 계정에서 생성한 리소스들만의 '격리된 네트워크'를 만들어주는 기능이 바로 VPC이고, 격리되어 있기 때문에 다른 사람들은 접근하고 보는 것이 불가능해 집니다.

 

* 현재 모든 사용자에게 VPC 적용이 강제적으로 부여됐기 때문에, 대부분의 서비스는 VPC 없이 사용할 수 없습니다. 그렇기에 사용자는 직접 VPC를 생성해서 사용할 수도 있고, 계정을 생성 시 리전 별로 디폴트로 생성되는 VPC를 사용할 수도 있습니다. 

 

AWS 공식 사이트의 글을 참조하시면 더 이해하기 편할 것입니다. 

https://docs.aws.amazon.com/ko_kr/vpc/latest/userguide/what-is-amazon-vpc.html

 

Amazon VPC란 무엇인가? - Amazon Virtual Private Cloud

이 페이지에 작업이 필요하다는 점을 알려 주셔서 감사합니다. 실망시켜 드려 죄송합니다. 잠깐 시간을 내어 설명서를 향상시킬 수 있는 방법에 대해 말씀해 주십시오.

docs.aws.amazon.com

https://docs.aws.amazon.com/ko_kr/vpc/latest/userguide/how-it-works.html

 

Amazon VPC 작동 방식 - Amazon Virtual Private Cloud

이 페이지에 작업이 필요하다는 점을 알려 주셔서 감사합니다. 실망시켜 드려 죄송합니다. 잠깐 시간을 내어 설명서를 향상시킬 수 있는 방법에 대해 말씀해 주십시오.

docs.aws.amazon.com

 

1.1 VPC의 구성 요소

VPC의 구성요소에는 인스턴스, AZ(가용영역), 서브넷, 인터넷 게이트웨이, NACL, 보안그룹, 라우팅 테이블, NAT 게이트웨이 등이 있습니다. 

VPC는 아래 그림과 같이 하나의 리전 내 여러개의 가용 영역(AZ)에 걸쳐 생성하는 게 가능합니다. VPC 안에서는 여러개의 서브넷을 생성할 수 있는데, 하나의 서브넷은 VPC 안에서 하나의 가용영역에만 생성이 가능합니다. 

 

VPC의 구성 요소

 

* VPC를 생성할 때 IP 주소 범위를 지정하고 서브넷과 게이트웨이를 추가하고 보안 그룹을 연결합니다. 서브넷은 VPC의 IP 주소 범위로, EC2 인스턴스와 같은 AWS 리소스를 서브넷으로 실행할 수 있습니다. 

 

VPC를 생성하기 위해서 아래의 단계를 걸쳐야 합니다.

1. 사용자는 VPC의 IP 주소 범위를 지정합니다. 이는 VPC 내에서 사용 가능한 IP 주소 범위를 정의하는 것입니다. VPC에서 한 번 설정된 IP 대역은 수정할 수 없으며, 각각의 VPC는 독립적이기 때문에 서로 통신할 수 없습니다. 만약 통신을 원한다면 VPC 피어링(Peering) 서비스를 통해 VPC 간에 트래픽을 라우팅할 수 있도록 설정할 수 있습니다. 

2. 이러한 IP 주소 범위 내에서 서브넷을 생성할 수 있습니다. 이러한 서브넷은 EC2와 같은 AWS 리소스를 실행할 때 사용됩니다. 서브넷에 대한 설명은 아래에서 이어집니다. 

3. VPC는 인터넷과의 통신을 위해 게이트웨이를 추가할 수 있습니다. 게이트웨이는 VPC와 인터넷간의 트래픽을 전달하는 역할을 합니다.

4. VPC 내의 리소스에 대한 네트워크 보안을 관리하기 위해 보안 그룹을 사용할 수 있습니다. 보안 그룹은 인바운드 및 아운바운드 트래픽 규칙을 정의하여 트래픽의 허용 여부를 결정합니다. 따라서 보안 그룹을 서브넷과 연결하여 VPC 내의 리소스에 대한 보안을 제어할 수 있습니다. 

 

2. 서브넷 (Subnet)

VPC를 생성하고, VPC의 IP 주소 범위를 지정한 후 각각의 서브넷을 생성해야 합니다. (서브넷은 VPC를 잘게 나눈 것이기 대문에 당연히 VPC 보다 대역폭이 낮아야 합니다.)

서브넷이란 거대한 네트워크 대역의 VPC 주소를 잘게 쪼갠 네트워크 주소를 의미합니다. 즉, VPC의 IP 주소 범위를 말하며, 리소스가 배치되는 물리적인 주소 범위를 뜻합니다. VPC가 논리적인 범위를 의미한다면, 서브넷은 VPC 안에서 실제로 리소스가 생성될 수 있는 네트워크 영역이라고 생각하면 됩니다. 실제로 RDS, EC2와 같은 리소스를 생성할 수 있습니다.

 

AWS는 VPC 안에서 다른 가용영역(AZ)에 같은 서브넷 대역을 사용할 수 없습니다. 서브넷은 하나의 가용 영역 안에 종속되어야 하며, 여러 영역으로 확장할 수 없습니다. 아래 처럼 여러 AZ에 걸쳐 서브넷을 생성할 수 없습니다. 

 

 

1.1 Public Subnet / Private Subnet

* 인터넷과 연결되어 있는 서브넷을 Pubilc Subnet 이라고 하고, 인터넷과 연결되어 있지 않은 서브넷을 Private Subnet이라고 합니다. 

 

Public Subnet은 인터넷에 접근 가능한 서브넷으로 VPC 외부 / 내부와 통신이 가능합니다. 하지만 Private Subnet은 인터넷에 접근 불가능한 서브넷으로 VPC 내부에서만 통신 가능합니다.

즉, Public Subnet에 존재하는 인스턴스는 Public IP와 Elastic IP를 보유하여 인터넷에 연결되어 인바운드, 아웃바운드 트래픽을 주고 받을 수 있는 반면, Private Subnet은 외부에 노출이 되어 있지 않기 때문에 접근할 수 없습니다.

(인바운드 트래픽은 외부에서 인스턴스로 오는 트래픽을 의미하며, 아웃바운드 트래픽은 인스턴스에서 외부로 가는 트래픽을 의미합니다.) 

 

그러므로, Private Subnet에 민감한 데이터 정보들을 저장해 보안을 강화하는 식으로 설계를 하는 편입니다. 이처럼 Private Subnet 내부의 인스턴스들은 오직 다른 서브넷과만 연결이 가능한데, 만일 데이터를 업데이트 하는데 인터넷 연결이 필수라면 NAT 인스턴스를 통해 Private 내부의 인스턴스들이 인터넷을 가능하게 만들 수도 있습니다. (NAT 게이트웨이를 이용하게 되면 외부로 단방향 통신(내부 -> 외부) 만 가능합니다.)

 

 

 

'AWS > AWS 공부' 카테고리의 다른 글

[AWS] Amazon S3 정리  (0) 2023.06.18
[AWS] EC2 정리  (0) 2023.06.18
[AWS] 리전과 가용영역  (0) 2023.06.17
[CDK] Stack 배포 시 Url 생성  (0) 2023.03.31
[CDK] DynamoDB 권한 추가  (0) 2023.03.31