AWS에서 Virtual Private Cloud(VPC)를 사용하면 EC2 인스턴스, 데이터베이스 등의 AWS 리소스를 시작할 수 있는 클라우드에서 개인 네트워크를 설정할 수 있습니다. 2계층 아키텍처는 클라우드 애플리케이션에서 가장 일반적인 설정 중 하나로, 공개 구성 요소와 비공개 구성 요소를 명확하게 구분합니다. 일반적으로 이 아키텍처에는 공개 계층과 비공개 계층의 두 가지 주요 계층이 있습니다.
이 문서에서는 VPC의 2계층 아키텍처, 구성 요소, 구성 방법과 AWS에서 VPC를 배포하고 탐색하는 방법을 이해하는 데 도움이 되는 사용 사례를 살펴보겠습니다.
2계층 아키텍처란 무엇인가요?
2계층 아키텍처는 다음과 같은 디자인입니다.
- 1층(공개 레이어)웹 서버 등 인터넷에서 접근해야 하는 구성 요소가 포함되어 있습니다.
- 2층(개인 레이어)데이터베이스 서버와 같이 직접 인터넷에 접근할 수 없는 구성 요소를 포함합니다.
2계층 아키텍처의 구성 요소
AWS에서 2계층 VPC 설정의 기본 구성 요소를 살펴보겠습니다.
1.공개 서브넷
공용 서브넷은 VPC의 일부이며 인터넷에 직접 연결됩니다. 웹 서버나 로드 밸런서와 같은 이러한 서브넷의 리소스는 인터넷과 통신할 수 있습니다.
2.개인 서브넷
개인 서브넷은 인터넷에서 분리되어 있습니다. 보안상의 이유로 이러한 서브넷의 리소스(예: 데이터베이스 서버나 내부 서비스)는 인터넷에 직접 액세스할 수 없습니다.
3.퍼블릭 계층의 EC2 인스턴스
이러한 EC2 인스턴스는 일반적으로 애플리케이션을 호스팅하는 웹 서버입니다. 그들은에 위치하고 있습니다공개 서브넷인터넷에서 Elastic IP나 로드 밸런서를 통해 접근할 수 있습니다.
4.데이터베이스 인스턴스(프라이빗 티어)
데이터베이스(예: Amazon RDS 또는 데이터베이스가 있는 EC2)는 다음 위치에 있습니다.개인 서브넷인터넷에 직접 노출되지 않도록 합니다. 퍼블릭 서브넷의 EC2 인스턴스만 통신할 수 있습니다.
5. NAT게이트웨이
나트게이트웨이개인 서브넷의 EC2 인스턴스가 소프트웨어 업데이트나 API 호출과 같은 작업을 수행하기 위해 인터넷에 액세스할 수 있도록 허용하되, 이를 수신 인터넷 트래픽에 노출시키지 않습니다.
6.메인 라우팅 테이블
VPC의 기본 경로 테이블은 네트워크의 기본 경로를 정의하고 VPC 내부와 인터넷(인터넷 게이트웨이를 통해)으로 트래픽을 전달합니다.
7.공개 서브넷 경로 테이블
공개 서브넷의 경로 테이블은 인터넷으로 향하는 트래픽을 다음으로 라우팅합니다.인터넷 게이트웨이.
8.인터넷 게이트웨이
인터넷게이트웨이VPC를 인터넷에 연결하여 공개 서브넷의 리소스가 외부 세계와 통신할 수 있도록 합니다.
9. VPC 엔드포인트
VPC엔드포인트인터넷을 통해 트래픽을 라우팅하지 않고도 VPC를 S3 또는 DynamoDB와 같은 AWS 서비스에 비공개로 연결할 수 있습니다.
사용 사례: 간단한 웹 애플리케이션 설정
AWS에서 2계층 아키텍처를 사용하여 간단한 웹 애플리케이션을 설정하는 탐색 단계를 살펴보겠습니다. 이 예에서는 웹 애플리케이션에 EC2 인스턴스(공개 서브넷)를 사용하고 데이터베이스에 RDS 인스턴스(개인 서브넷)를 사용합니다.
1단계: VPC 생성
- AWS 콘솔에서 VPC 대시보드로 이동합니다.
- AWS 메인 콘솔에서 다음으로 이동하세요.VPC 섹션.
- 딸깍 하는 소리VPC 생성CIDR 블록을 지정합니다(예:
10.0.0.0/16
).
- 공개 및 비공개 계층에 대한 서브넷을 만듭니다.
- 공개 서브넷: CIDR 블록으로 서브넷을 생성합니다.
10.0.0.0/24
VPC와 동일합니다. - 개인 서브넷: CIDR 블록과 유사한 다른 서브넷을 생성합니다.
10.0.1.0/24
개인 계층.
- 공개 서브넷: CIDR 블록으로 서브넷을 생성합니다.
2단계: 라우팅 테이블 설정
- 주요 라우팅 테이블:
- AWS는 VPC에 대한 기본 경로 테이블을 자동으로 생성합니다. 이것을 사용하면 서브넷 간 라우팅을 수행할 수 있습니다.
- 공개 서브넷의 라우팅 테이블:
- 공개 서브넷에 대한 새로운 경로 테이블을 만들고 이를 공개 서브넷과 연결합니다.
- 인터넷 게이트웨이에 추가경로.
- 개인 서브넷 라우팅 테이블:
- 개인 서브넷에 대한 새로운 경로 테이블을 만듭니다.
- 에 추가하다NAT 게이트웨이이를 통해 개인 리소스에서 나가는 인터넷 트래픽이 허용됩니다.
3단계: EC2 인스턴스(공용 계층) 설정
- 공개 서브넷에서 EC2 인스턴스를 시작합니다.
- AWS 콘솔로 이동EC2.
- 공개 서브넷의 공개 IP로 EC2 인스턴스를 시작합니다. Amazon Linux나 Ubuntu와 같은 기본 웹 서버 AMI를 사용할 수 있습니다.
- 인스턴스가 다음 위치에 있는지 확인하세요.공개 서브넷HTTP/HTTPS 트래픽(포트 80 및 443)을 허용하는 보안 그룹을 연결합니다.
- 웹 서버를 설치하고 구성하세요.
- EC2 인스턴스가 실행되면 인스턴스에 SSH를 실행하고 웹 서버(예: Apache 또는 Nginx)를 설정합니다.
4단계: RDS 데이터베이스 설정(개인 계층)
- RDS 인스턴스를 만듭니다.
- AWS 콘솔로 이동RDS(알디에스)
- 새 데이터베이스 인스턴스를 시작하고 데이터베이스 엔진(예: MySQL, PostgreSQL)을 선택한 다음 실행되도록 구성합니다.개인 서브넷달려들다.
- 확실하게 하다대중 접근성로 설정아니요,인터넷에 직접 접속하는 것을 방지합니다.
- EC2 인스턴스를 RDS 데이터베이스에 연결합니다.
- RDS 인스턴스의 내부 DNS 이름이나 개인 IP 주소를 사용하여 RDS 인스턴스에 연결하도록 웹 서버를 구성합니다.
5단계: NAT 게이트웨이 설정
- 공개 서브넷에 NAT 게이트웨이를 만듭니다.
- 입력하다VPC그리고 선택NAT 게이트웨이.
- 공개 서브넷에 새로운 NAT 게이트웨이를 만들고 이를 Elastic IP와 연결합니다.
- 개인 서브넷의 라우팅 테이블을 업데이트합니다.
- 개인 서브넷의 경로 테이블에서 인터넷으로 향하는 트래픽이 NAT 게이트웨이로 라우팅되는지 확인하세요.
6단계: 인터넷 게이트웨이에 연결
- 인터넷 게이트웨이를 만들고 연결합니다.
- 로 가다VPC, 다음으로 이동인터넷 게이트웨이.
- 새로운 인터넷 게이트웨이를 만들어 VPC에 연결합니다.
7단계: 아키텍처 테스트
- 웹 서버에 대한 액세스 테스트:
- 웹 브라우저를 열고 EC2 인스턴스의 공용 IP로 이동합니다. 웹 애플리케이션이 실행되는 것을 볼 수 있습니다.
- 테스트 데이터베이스 액세스:
- 퍼블릭 서브넷의 EC2 인스턴스가 프라이빗 서브넷의 RDS 인스턴스와 통신할 수 있는지 확인하세요.
요약
AWS의 이 2계층 VPC 아키텍처에서 퍼블릭 서브넷은 인터넷에 노출된 EC2 인스턴스를 호스팅하는 반면, 프라이빗 서브넷은 직접 노출되지 않은 데이터베이스(RDS)를 호스팅합니다. NAT 게이트웨이는 개인 리소스가 업데이트 및 서비스를 위해 인터넷에 액세스할 수 있도록 보장하는 반면, 인터넷 게이트웨이는 공개 리소스가 전 세계와 통신할 수 있도록 합니다.
이 아키텍처는 클라우드 애플리케이션에 보안, 확장성, 고가용성을 제공합니다. 이 솔루션은 민감한 데이터와 내부 서비스에 외부에서 접근할 수 없도록 보장하는 동시에 웹 계층과 데이터베이스 계층을 분리해야 하는 사용 사례에 이상적입니다.