BE전문가 프로젝트

3. 가상 사설 클라우드 생성(VPC), Peering Connection 본문

AWS 실습

3. 가상 사설 클라우드 생성(VPC), Peering Connection

원호보고서 2021. 12. 15. 10:31

- VPC를 구축하고 서브넷 생성, VPC구성 요소 간에 트래픽을 보내는 방법을 알아보자

 

- 네트워크를 개인이 직접 구성하는 것은 전문기술이 필요하지만 Amazon VPC는 복잡한 요소를 거치지 않고 보안 프라이빗 네트워크를 간편하게 배포할 수 있다.

 

 

VPC생성

- VPC는 AWS 계정 전용 가상 네트워크이며 다른 가상 네트워크와 논리적으로 분리되어 있다. EC2 I와 같은 AWS리소스를 VPC에서 시작할 수 있다.

 

1. VPC를 선택 후 왼쪽 탐색창에 Your VPC를 선택한다음 Crate VPC를 누른다

- VPC의 CIDR범위는 10.0.0.0/16로 10.0.x.x로 시작하는 모든 Ip주소가 포함된다. 후에 Subnet을 만들어 분할할 예정이다.

 

2.  Name tag - optional : Lab VPC

    IPv4 CIDR: 10.0.0.0/16

    을 작성 후 Create VPC를 누른다음 Your VPC를 클릭한다.

 

3. 방금만든 Lab VPC를 선택하고 페이지 하단에 Tag탭을 클릭한다. 

- Tag는 식별을 보다 쉽게하기 위해서이다.

 

4. 위 VPC목록에서 Action을 클릭하고 Edit DNS hostName을 클릭한다.

 

5. Enable을 선택 후 save Changes를 클릭한다.

 

 

 

Subnet생성

-VPC 하위 범위의 IP주소이다. 

- 인터넷에 연결해야되는 리소스는 퍼블릭 서브넷을 이용하고 인터넷과 격리된 리소스를 사용하려면 프라이빗 서브넷을 이용한다.

 

 

퍼블릭 서브넷 생성

1. 왼쪽 탐색창에서 subnet을 클릭 후 Create subnet을 누른다.

 

2. VPC : Lab VPC

  Subnet name : Public Subnet

  Availability Zone : 목록에서 첫번째 가용영역을 선택한다.

  IPv4 CIDR block : 10.0.0.0/24 를 작성 후 Create Subnet을 클릭한다.

 

- Lab VPC의 CIDR 범위는 10.0.0.0/16이며 방금 생성한 Subnet의 범위는 10.0.0.0/24이다. 즉 Subnet의 범위는 VPC보다 작다는 것을 알 수 있다.

 

3. Public Subnet을 선택 한다.

 

4. Actions를 클릭하고 Edit subnet setting을 선택한 후 Enable auto-assign public IPv4 address를 선택한다.

 

5. Save버튼 클릭

- 이름은 Public이지만 default는 private이기때문에 아직은 Public이 아니다. Public Subnet에는 Internet GateWay가 있어야한다.

 

 

프라이빗 서브넷 생성

- 인터넷과 격리된 상태를 유지해야하는 리소스에 사용된다.

 

1. Public Subnet과 만드는 과정은 똑같으며 이름과 Ipv4 CIDR만 바꿔서 작성한다.

  VPC : Lab VPC

  Subnet name : Private Subnet

  Availability Zone : 목록에서 첫번째 가용영역을 선택한다.

  IPv4 CIDR block : 10.0.2.0/23 를 작성 후 Create Subnet을 클릭한다.

- CIDR블록 10.0.2.0/23에는 10.0.2.x 및 10.0.3.x로 시작하는 모든 IP주소가 포함되어있다. 

 

 

인터넷 게이트웨이 생성

- 수평적 확장으로 이중화를 지원하는 고가용성 VPC 구성요소로 VPC의 인스턴스인터넷 간 통신이 가능하도록 한다.

목적 라우팅 테이블에허 인터넷에 연결할 대상 제공
퍼블릭 IPv4 주소가 할당된 인스턴스 네트워크 주소 변환(NAT) 실행

1. 왼쪽 탐색 창에서 Internet GateWay를 클릭한 후 Create internet gateWay를 클릭한다.

Name tag : Lab IGW

 

2. Create internet gateway를 클릭한다. 

- 이제 사용자의 Lab VPC에서 게이트웨이를 연결할 수 있다.

 

3. VPC에서 만들어진 Lab VPC를 선택한 다음 Attach internet gateway를 선택한다.

- 인터넷 게이트웨이가 Lab Vpc에 연결되었지만 Public 서브넷 라우팅 테이블도 인터넷 게이트웨이를 사용할 수 있도록 구성해야하는 작업을 해야한다.

 

 

 

라우팅 테이블 구성하기

- 네트워크 트래픽이 향하는 방향을 결정하는 데 사용되는 경로라고 부르는 규칙 세트이다

- VPC에 있는 각 서브넷은 라우팅테이블에 연결되어 있어야한다.

- 인터넷게이트웨이(IGW)를 이용하려면 서브넷의 라우팅 테이블에 IGW로 가는 경로가 설정되어있어야한다.

- IGW로 가는 경로가 있는 라우팅 테이블에 서브넷이 연결되어 있는 서브넷을 Public Subnet이라고한다.

 

1. 왼쪽 탐색창에서 Route Table을 클릭한다.

 

2. VPC열에서 Lab VPC를 표시하는 라우팅 테이블을 선택한다.

 

3. Name에 Private Route Table로 입력한 다음 Save를 클릭한다.

 

4. 페이지 하단에서 Routes 탭을 클릭한다.

-  현재 경로는 Lab VPC에서 설정한 10.0.0.0/16(로컬)로 향하는 단 하나이며 모든 트래픽이 로컬로 라우팅 된다는 것을 확인할 수 있다. 따라서 VPC내 모든 서브넷이 서로 통신할 수 있다는 것을 의미한다,

 

5. Crate route table을 클릭 후 

Name-optional:Public Route Table

VPC : Lab VPC를 작성 후 Create route table을 클릭한다.

 

6. Routes 탭에서 Edit routes를 클릭한 후 0.0.0.0/0을 인터넷 게이트웨이로 보내는 경로를 추가한다.

 

7. add route를 클릭 후 

Destination : 0.0.0.0/0

Target : Internet GateWay 및 Lab IGW를 선택후 Save changes를 클릭한다.

 

9. Subnet Associations 탭을 클릭한 후 edit subnet associations를 클릭한다.

- 새로 생성한 라우팅 테이블을 퍼블릭 서브넷과 연결하는 작업이다 

 

10. Public Subnet이 있는 행을 선택 후 Save associations를 클릭한다.

 

 

앱 서버용 보안 그룹 생성

- 인바운드와 아웃바운드 트래픽을 제어하여 가상의 방화벽을 만든다. 보안그룹은 subnet수준이아니라 인스턴스 네트워크 인터페이스 수준에서 작동한다.

 

1. 왼쪽 탐색창에서 Security Groups를 클릭한다.

 

2. Create security group을 클릭하고 다음을 구성한다.

Security group name: App-SG

Description Allow web access

VPC : Lab VPC

 

3. inbound rules에서 Add Rule을 클릭한다

 Type : HTTP

 Source : anywhere-ipv4를 작성 후 Create security Group을 클릭한다.

 

퍼블릭 서브넷에서 앱 서버 시작

-VPC가 제대로 구성되었는지 테스트하기 위해 Amazon EC2 I를 퍼블릭 서브넷에서 시작하여 인터넷에서 앱 서버에 액세스 할 수 있는지 확인하자.

 

1. EC2를 선택 후 Launch instance를 클릭 후 Launch instance선택한다.

 

2. 다음을 구성하자

 

1단계 - AMI선택

AMI : Amazon Linux 2 AMI 64-bit

 

2단계 - 인스턴스 유형 선택

Instance Type : t3.micro

 

3단계 - 인스턴스 구성
NetWork : 
Lab VPC

Subnet : Public Subnet

IAM role : inventory-App-Role

 

Advanced Details를 확장 후 User data에 

#!/bin/bash
# Install Apache Web Server and PHP
yum install -y httpd mysql
amazon-linux-extras install -y php7.2
# Download Lab files
wget https://us-west-2-tcprod.s3.amazonaws.com/courses/ILT-TF-200-ARCHIT/v6.8.27/lab-2-webapp/scripts/inventory-app.zip
unzip inventory-app.zip -d /var/www/html/
# Download and install the AWS SDK for PHP
wget https://github.com/aws/aws-sdk-php/releases/download/3.62.3/aws.zip
unzip aws -d /var/www/html
# Turn on web server
chkconfig httpd on
service httpd start

4단계 - 스토리지 추가

기본설정

 

5단계 - 태그추가

addTag 클릭 후

key : Name

Value : App Server

 

6단계 - 보안 그룹 구성

- Select an existing security group을 클릭한다

- App-Sg를 선택한다.

- Review and Launch를 클릭한 후 Countinue

 

7단계 - 검토

- Launch클릭

- Proceed with out key pair

- i acknowledge that...을 선택

- Launch Instances를 클릭 

 

3. View Instance를 클릭한다

 

4. Instance가 실행 중이면 AppServer를 선택한다

 

5. Details 탭에서 IPv4 public IP 주소를 복사 후 웹 브라우저를 켠다.

- 제대로 구성이 되어있다면 Inventory 애플리케이션과 Please configure setting to connect to database 메시지가 표시될 것이다.

 

 

VPC Peering 구성

- Lab Subnet과 미리 생성되어있던 Shared Subnet을 연결하는 작업이다

- 마치 같은 네트워크에 있는 것처럼 둘을 통신하는 것이다

피어링 연결 생성

1. VPC를 클릭 후 왼쪽 탐색창에 Peering connections를 클릭한다.

 

2. Create Peering Connection을 클릭한 후

Name-optional : Lab-peer

VPC ID (Requester) : Lab VPC

VPC ID (Accepter) : Shared VPC 후 Create Peering Connection을 클릭한다.

 

3. Action을 클릭하고 Accept Request를 선택한 후 Accept request를 클릭한다

 

라우팅 테이블 구성

1. 왼쪽 탐색창에서 Route Tavbles를 클릭한다.

 

2. Public Route Table을 선택한다

 

3. Routes 탭에서 Edite routes를 클릭한 다음 add Route를 클릭한다.

Desination : 10.5.0.0/16(Shared VPC의 CIDR범위)

Target : Peering Connection을 선택하고 Lab-Peer을 선택한 후 Save changes를 클릭한다.

- 이제 Shared VPC에서 Lab VPC로 향하는 트래픽의 역방향 흐름을 구성한다.

 

4. 왼쪽 탐색 창에서 Route Tables를 클릭한다.

 

5. Shared-VPC Route Table을 선택하고 유일하게 선택한 라우팅 테이블인지 확인한다.

- SharedVPC용 라우팅 테이블이며 대상 IP주소가 Lab VPC 번위 내에 있는 경우 Peering 연결로 트래픽을 전송하도록 구성한다.

 

6. Route탭에서 Edit route를 클릭한다.

 

7. Add route를 클릭한다.

Desination : 10.0.0.0/16(Lab VPC의 CIDR범위)

Target : Peering Connectio을 선택 후 Lab-Peer를 선택한 후 Save routes를 클릭한다.

 

 

Peering test

- Datebase에 이미 공유 VPC프로비저닝이 되어있으며 peering connection을 통해 DB에 Access하도록 Inventory 애플리케이션을 구성하여 연결을 테스트한다.

 

1. 브라우저로 돌아가 Setting을 누른다.

ENDpoint : 현재 읽고있는 지침의 왼쪽에 표시되는 Endpoint 값을 붙여넣는다.

Database : inventory

UserName : dbadmin

Password : lab-password를 작성 후 save를 누른다.

 

 

Comments