아마존 클라우드

[클라우드] Amazon VPC 사용하기

트리스탄1234 2023. 8. 12. 07:42
728x90
반응형

자료 출처 : Amazon

이번 포스팅에서는  Amazon VPC를 생성을 하고, 인터넷에 접속할 수 있는 Public Subnet 1개, Private Subnet 2개를 생성을 하고, WEB Server는 Public에 MySQL RDS는 Private Subnet에서 호스팅을 하고 테스트를 해보겠습니다. 
 
아마존 VPC는 클라우드 상에서 격리된 공간을 만들어서. AWS를 원하는 목적에 따라 격리된 공간에 위치를 시키고 서비스를 게시를 할수 있습니다.  간단하게 애기를 하면 VPC는 하나의 논리적인 네트웍을 만드는 것이라고 생각을 하면 될것 같습니다.
 
이런 VPC들은 AWS 계정별도 따로 만들어 지고, VPC는 Region기반의 Resource 입니다. 
 

VPC 생성하기 

그럼 이제 위의 다이어그램 처럼 VPC를 구성해 봅시다.

 위의 그림 처럼 AWS 서비스 검색창에서 VPC를 입력 하고, VPC를 클릭을 합니다.

위의 그림 처럼 VPC생성을 클릭을 합니다.

위의 빨간색 박스와 같이 값들을 입력 하고 VPC생성을 클릭을 합니다.
이제 VPC를 생성을 했습니다. 그럼이제 VPC안에 Public Subnet을 생성해 봅시다.

Public Subnet 생성하기

위의 화면과 같이 왼족 메뉴에서 서브넷을 클릭을 하고 오른쪽 상단의 서브넷 생성을 클릭을 합니다.

위의 그림과 같이 앞서 만든 VPC를 선택을 하고, 서브넷 이름에는 주고 싶은 서브넷 이름을 주고, 가용 영역은 첫번째 AZ인 us-west-2a를 선택을 합니다. 그리고 CIDR을 10.0.1.0/24를 주고 서브넷 생성을 클릭 합니다.
 
여기서 주의할 점은 Subnet의 CIDR범위는 VPC의 CIDR 범위안에 있어야 합니다. 

그럼 이제 생성된 Subnet을 위의 그림 처럼 Check를 하고, 작업 버튼을 드랍 다운 하고, 서브넷 설정 편집을 클릭을 합니다. 

반응형

그럼 위의 그림 처럼 퍼블릿 IPV4 주소 자동 할당 활성화를 클릭 합니다. 이 기능을 설정을 하면 해당 서브넷에 생성되는 리소스들은 자동으로 Public ip가 할당이 되어서, 별도의 Public IP를 설장할 필요가 없습니다. 그리고 저장을 클릭을 합니다.
 

Internet Gateway 생성하기

이제 Public Subnet으로 만들기 위해서는 인터넷 연결이 가능해야 되는데, 인터넷 연결을 가능하게 해주는 리소스가 Internet Gateway 입니다. 이 리소스를 생성하고, Subnet에 연결을 하면 해당 Subnet에 있는 리소스는 인터넷에 연결이 가능해지게 됩니다. 
 
IGW의 주요 기능은 VPC에서 라우팅 테이블 상에서 인터넷으로 나가기 위한 포인트를 제공하는 기능과, VPC내의 인스턴스들에 대한 NAT기능을 수행을 합니다.

화면의 왼쪽 메뉴에서 인터넷 게이트 웨이를 클릭을 하고 오른쪽 상단의 인터넷 게이트웨이 생성을 클릭을 합니다.

그럼 IGW의 이름 태그를 원하는 값을 입력 하고 화면의 오른쪽 하단에 인터넷 게이트웨이 생성을 클릭을 합니다. 

그럼 이제 igw가 생성이 되었고, 생성된 igw를 vpc에 연결을 하기 위해 위의 화면과 같이 화면 오른쪽의 작업을 클릭 하고 VPC에 연결을 선택 합니다. 

그러면 위의 화면에서 앞서 생성했던 VPC를 선택을 하고 인터넷 게이트 웨이 연결을 클릭 합니다. 
VPC에 IGW를 연결을 했어도 VPC내의 인스턴스에게 인터넷 경로에 대한 정보를 알려 주어야 합니다. 
그렇게 하기 위해서는 라우팅 테이블을 생성을 하고, 경로를 추가를 하고 퍼블릿 서브넷을 연결을 해야 됩니다. 

라우팅 테이블 생성, 경로 추가 및 퍼블릭 서브넷 연결 하기

인터넷으로 가는 트래픽을 인터넷 게이트웨이로 보내는 경로가 있는 라우팅 테이블에 연결된 서브넷을 퍼블릭 서브넷이라고 합니다.

위의 그림 처럼 화면 왼쪽에서 라우팅 테이블을 클릭을 하고 라우팅 테이블 생성을 클릭 합니다. 

이름에는 원하는 값을 입력을 하고 VPC는 우리가 생성을 했던 VPC를 선택을 한후 라우팅 테이블 생성 버튼을 클릭 합니다. 

위의 그림과 같이 라우팅 텝을 클릭을 하고 라우팅 편집 버튼을 클릭을 합니다. 

라우팅 추가 버튼을 클릭 한후 위의 그림과 같이 대상에 디폴트 경로를 의미하는 0.0.0.0/0 을 입력을 하고 두번째 대상에서 돋보기 버튼을 클릭 하고 인터넷 게이트웨이를 선택을 합니다.  
 
여기서 첫번째 대상은 목적지 주소를 의미를 하고 두번째 대상은 목적지로 가는 게이트웨이를 의미를 합니다. 
인터넷 게이트 웨이를 클릭을 하고 나면 앞서 생성한 igw가 표시가 됩니다. 해당 IGW를 클릭을 합니다. 

변경 사항을 클릭을 하면 아래와 같이 로컬 경로 하나와 디폴트 경로 하나가 생성이 됩니다. 

아래 그림 처럼 서브넷 연결 텝을 클릭을 한후 서브넷 연결 편집 버튼을 클릭을 합니다. 

그럼 앞서 만들어 두었던 Public-01 서브넷을 클릭을 하고 연결 저장 버튼을 클릭 합니다. 

이제 Public-01 서브넷은 라우팅 테이블과 연결이 되었고, 해당 라우팅 테이블은 IGW로 가능 경로를 포함하고 있기 때문에 Public Subnet이 되었습니다. 

웹 서버용 보안 그룹 생성하기

보안 그룹은(Security Group) 인스턴스에 대한 인바운드 및 아웃바운드 트래픽을 제어하는 가상 방화벽 역활을 합니다.  기기본적으로 VPC에서 실행 되는 인스턴스는 최대 5개의 보안 그룹을 가질 수 있습니다. 
보안 그룹은 네트워크의 ACL이 아니라 서버의 방화벽 설정과 같은 기능을 합니다. 

위의 그림과 같이 왼쪽 메뉴에서 보안 그룹을 클릭을 하고 화면 오른쪽의 보안 그룹 생성을 클릭을 합니다. 

그럼 이제 위의 그림과 같이 이름은 넣고 싶은 값을 넣고. 설명도 알아 보기 쉬운 설명을 넣고 VPC는 앞에서 만든 VPC를 클릭을 하고 인바운드 규칙의 규칙 추가 버튼을 클릭 합니다. 
 
그리고 유형에서 HTTP를 선택을 하고 소스에 Anywhere-IPV4를 클릭한 후 보안 그룹 생성 버튼을 클릭 합니다. 
이 규칙의 의미는 인스턴스로 들어 오는 트래픽 중 프로토콜이 http이고 소스는 아무 IPV4나 모두 허용을 한다는 의미 입니다. 
 
퍼블릭 서브넷에서의 인스턴스 기본 보안 그룹 정책은 인바운드는 모두 막혀 있고, 아웃바운드는 모두 열려 있는 상태 입니다. 

퍼블릭 서브넷에서 웹 서버 시작하기 

이제 생성한 퍼블릭 서브넷에 EC2 인스턴스에서 실행되는 웹서버를 생성을 하고 테스트를 진행해 보겠습니다. 
AWS 서비스 검색창에서 EC2를 검색을 하고 클릭을 합니다. 

위의 그림과 같이 인스턴스 시작 버튼을 클릭 합니다. 

이름은 사용하고 싶은 이름을 주고, 아래로 드래그를 하면 아래와 같이 키페어 설정 부분에서 키페어 없이 계속 진행을 선택을 합니다. 

네트워크 설정 부분에서 편집 버튼을 클릭을 하고 아래와 같이 값을 입력 하고 아래로 드래그 합니다. 

아래 화면과 같이 고급 세부 정보에서 세부 정보를 보기 위해 클릭을 하고 드래그 해서 user-data 부분까지 이동을 합니다. 

#!/bin/bash -ex
yum -y update
yum -y install httpd php mysql php-mysql
chkconfig httpd on
service httpd start
cd /var/www/html
wget https://us-west-2-aws-training.s3.amazonaws.com/courses/spl-13/v4.2.27.prod-ce5abbb0/scripts/app.tgz
tar xvfz app.tgz
chown apache:root /var/www/html/rds.conf.php

user-data부분에서 위의 코드를 복사해서 아래 화면과 같이 붙여 넣습니다. 

위의 그림에서 인스턴스 시작 버튼을 클릭 합니다. 

모든 인스턴스 보기 버튼을 클릭을 합니다. 

인스턴스의 상태가 실행 중으로 변할때 까지 기다립니다. 실행 중으로 바뀌고 나면 네트워크 텝을 클릭을 하고 위의 화면과 같이 퍼블릭 IPV4주소를 복사를 합니다.  복사한 주소를 새로운 웹브라우저의 주소창에 붙여 넣고 엔터를 입력 하면 
 
아래와 같은 화면을 볼수 있습니다. 웹에서 ui를 표시를 해줍니다. 하지만 데이터 베이스와 연결이 아직 되지 않아서 데이터를 입력하고 Sumit을 클릭 하여도 데이터가 입력이 되지 않습니다. 

MySQL 서버용 프라이빗 서브넷 생성하기 

이제 데이터 베이스를 Private Subnet에서 시작하기 위해서 Private Subnet을 만듭니다. 
Amazon 서비스 검색창에서 VPC를 입력 하고 클릭을 합니다. 화면 왼쪽에서 서브넷을 클릭을 하고 서브넷 생성을 클릭을 합니다. 

VPC는 우리가 만든 VPC를 클릭을 하고 아래 그림과 같이 값들을 입력 후 서브넷 생성을 클릭 합니다. 

이제 두번째 서브넷을 생성하기 위해서 서브넷 생성 버튼을 다시 클릭 하고 아래와 같이 값을 입력 후 서브넷 생성 버튼을 클릭 합니다. 

데이터베이스 서버용 보안 그룹 생성 하기

이제 데이터 베이스에 적용할 보안 그룹을 생성해 봅시다. 

화면 왼쪽의 보안 글부을 클릭을 하고 보안 그룹 생성 버튼을 클릭을 합니다. 

위와 같이 값을 입력 합니다. 인바운드 규칙에 규칙 추가 버튼을 클릭을 하고 유형에 mYsql/Aurora를 클릭 하고 소스는 사용자 지정에서 돋보기를 클릭 후 검색해서 Web server 보안 그룹을 검색해서 선택을 하고 보안 그룹 생성 버튼을 클릭 합니다. 

데이터베이스 서브넷 그룹 생성하기

Amazon RDS는 데이터 베이스 서브넷 그룹이 필요합니다. 이유는 RDS는 최소 2개의 AZ에서 각 1개씩의 RDS 서버를 그룹으로 만들어 장애 발생이 Fail over를 수행 하는 구조라 서브넷 그룹을 생성을 해야 합니다. 
 
그럼 서브넷 그룹 생성을 해보겠습니다. 

Amazon 서비스 검색창에서 RDS를 입력 후 클릭을 합니다. 그럼 위의 화면과 같이 화면 왼족의 서브넷 그룹을 클릭을 합니다. 

DB 서브넷 그룹 생성을 클릭 합니다. 

이름과 설명은 입력 하고 싶은 값을 입력 후 VPC는 우리가 생성한 VPC를 클릭을 하고 가용 영역은 Private Subnet을 생성한 AZ 2개를 선택을 하고 서브넷 부분에서 각 Private Subnet에 할당한 CIDR을 클릭을 한후 생성 버튼을 클릭 합니다. 

Amazon RDS 데이터베이스 생성하기 

이제 RDS를 실행하기 위한 환경이 준비가 되었습니다. 

위의 그림과 같이 화면 왼쪽의 데이터 베이스를 클릭을 하고 데이터 베이스 생성을 클릭 합니다. 

아래 화면과 같이 선택 후 드래그 해서 페이지 아래로 내려 갑니다. 

템플릿 부분에서 개발/테스트를 클릭을 합니다. 

설정 부분에서 아래와 같이 입력 하고 싶은 값을 입력을 합니다

인스턴스 구성에서 아래와 같이 선택을 합니다. 

스토리지 부분에서 자동 조정 활성화를 체크 해제 합니다. 

연결 부분에서 아래와 같이 설정을 합니다. 

모니터링 부분에서 ENHANCED 모니터링 활성화를 체크 해제 합니다. 

추가 구성 부분에서 아래 빨간색 부분과 같이 설정을 하고 데이터 베이스 생성을 클릭 합니다. 

이제 앞에서 웹브라우저에서 실행한 Web ui 창에서 아래 정보를 입력 하면 주소록에 접속을 할수 있습니다. 

  • Endpoint(엔드포인트): MySQL 엔드포인트를 붙여 넣습니다.
  • Database(데이터베이스): myDB
  • Username(사용자 이름): admin
  • Password(암호): lab-password

Sumit를 클릭 합니다.

 
그럼 VPC생성과 Public Subnet, Privat Subnet과 RDS및 WEB Server를 실행해 보았습니다.
여러분에게 도움이 되었기를 바랍니다. 
 

728x90
반응형