본문 바로가기

AWS/램프 웹 서버 & 어플리케이션 로드 밸런서 구성

인프라 구축에 필요한 기본적인 네트워크 환경 구성

728x90

실제 아키텍처로 구현하는 순서를 알아보도록 하자.

실제 아키텍처로 구현

1. 기본 네트워크 환경 구성 (VPC / Subnet / Internet Gateway / Route Table )

1) VPC(Virtual Private Cloud) 생성

    VPC란 ?

    가상 네트에서 AWS 리소스를 시작할 수 있다. AWS의 확장 가능한 인프랄 사용한다는 이점이 있다. 

    기능은?

     VPC는 자체 데이터 센터에서 운영하는 기존 네트워크와 아주 유사한 가상 네트워크입니다. VPC를 생성한 후 서브넷을 추가할 수 있다.

VPC 생성 화면
VPC 설정

CIDR이란?  "ip주소를 할당하는 방법  중에 하나" 

 Classless Inter-Domain Routing의 약자이고 인터넷상의 데이터 라우팅 효율성을 향상시키는 IP 주소 할당 방법입니다. 인터넷에 연결되는 모든 컴퓨터, 서버 및 최종 사용자 디바이스에는 IP 주소라는 고유한 번호가 연결되어 있습니다. 디바이스는 이러한 IP 주소를 사용하여 서로 찾고 통신합니다. 조직에서는 CIDR을 사용하여 네트워크에 유연하고 효율적으로 IP 주소를 할당

CIDI block이란 ?

위 dev-vpc에서 사용할 IP 대역 또는 IP 범위

Tenancy란 ?

이 VPC에서 EC2 인스턴스를 생성을 할 때 전용 하드웨어를 사용할 것인가에 대한 항목인데 전용 하드웨어를 이제 사용하게 될 경우에는 Dedicate를 선택

VPC 생성 확인

VPC 탭에서 새로 생성된 dev-vpc 확인
dev-vpc 에서 우클릭 화면
DNS 호스트 이름 활성화 체크 확면

DNS 호스트 이름 활성화 왜 체크 하는 지 ?

dev-vpc에서 생성되는 EC2 인스턴스와 같은 리소스들이 DNS 호스트 네임을 생성할지 또는 사용할지를 선택하는 설정

* Amazon EC2는 각 사용 사례에 맞게 최적화된 다양한 인스턴스 유형을 제공합니다. 인스턴스 유형은 CPU, 메모리, 스토리지 및 네트워킹 용량의 다양한 조합으로 구성되며, 애플리케이션에 따라 적합한 리소스 조합을 선택할 수 있는 유연성을 제공합니다  

 

2) Subnet 생성 : vpc를 나누어 놓은 하위 네트워크 

서브넷을 생성하는 화면

위에서 만든 dev-vpc를 선택

서브넷 생성 화면

 

 

 

서브넷은 이 vpc의 CIDI블럭 즉, VPC의 IP대역을 나누는 것이기 때문에 dev-vpc에서 만드는 하위 네트워크인 서브넷을 만들 때는 이 subnet의 CIDI block 보다 작아야 된다는 점 기억할 것!

 

총 6개의 subnet을 만든다 (2개의 pobulic subnet과 4개의 privvate subnet)

네트워크가 범위: 11111111.11111111. 00000000.00000000  *표기법:  /16 OR 255.255.0.0

                              (네트워크 범위)

서브넷 범위: 11111111.11111111.11111111.00000000  *표기법: /24 OR 255.255.255.0 를 고려

                                                      (호스트 부분, IP를 나눠쓰는 부분 )

 

새 서브넷 추가 버튼을 통해서 추가가 가능

퍼블릭 서브넷1

 

퍼블릭 서브넷2

 

프라이빗 서브넷 1

 

프라이빗 서브넷2

 

프라이빗 서브넷3
프라이빗 서브넷4

이렇게 VPC와 서브넷을 생성하면 EC2 인스턴스와 같은 리소스들이 생성될 수있는 위치는 만들어졌다.

그러나 이 상태에서는 EC2인스턴스 등의 리소스를 만들더라도 인프라가 제대로 작동하기는 어렵다.

왜냐하면 아직 리소스들 사이에 또는 리소스들과 외부 인터넷 사이에 트래픽이 이동할 수 있는 경로들을 아직 구성해 주지 않았기 때문이다. 

이런 역할을 해주는 네트워크 요소가 바로 Internet Gateway와 Route Table

3) Internet Gateway 생성

사용설명서: 게이트웨이는 VPC를 다른 네트워크(외부 인터넷)에 연결합니다. 예를 들면, 인터넷 게이트웨이를 사용하여 VPC를 인터넷에 연결합니다.

Internet Gateway 생성 화면

 

Internet Gateway 설정

게이트웨이 생성 후 이제 게이트웨이가 어떤 vpc의 게이트웨이 역할을 할 것인지 특정 vpc에 연결해야 한다. 

VPC에 연결 위치
vpc에 연결 방법 1

 

vpc에 연결 방법 2

 인터넷 게이트웨이 연결을 하고 나면 dev-vpc-igw라고 하는 인터넷 게이트웨이가 dev-vpc에 정상적으로 attach가 된다. 

4) Route Table 생성 및 Route 설정

 라우트 테이블은 네트워크 간의 통신에 있어서 목적지, 대상지 등으로의 데이터 패킷 이동 정보를 구성하는 규칙이다. 즉, 서브넷에 위치한 EC2 인스턴스와 같은 리소스들이 destination(목적지)에 따라서 어떤 경로를 통해 트래픽에 이동할 것인지에 대한 규칙을 설정해 놓는 테이블 

라우팅 테이블 생성

 

라우팅 테이블 생성 화면

(Gateway를 dev-vpc에 attach했던 것처럼) 이 라우트 테이블이 어떤 서브넷에 대한 트래픽 경로인지를 정해줘야 되는데 이를 위해서 이 라우트 테이블을 우리가 만들었던 퍼블릭 서브넷 a1과 c1에 연결(subnet associations탭)  

서브넷 연결 편집

 

라우트 테이블에 퍼블릭 서브넷을 연결

 이 상태에서 퍼블릭 서브넷에 위치한 EC2 인스턴스의 리소스들이 외부 인터넷과 통신할 수 있도록 라우트 테이블에 조금 전에 생성한 인터넷 게이트웨이(dev-vpc-igw)를 경로로 추가한다. 

위 설명을 도식화 : " 퍼블릭 서브넷과 외부 인터넷이 연결이 되어야 한다!"

public-subnet-a1 위치한 EC2 resoucre <-- 라우팅 테이블 -->경로 추가<-- dev-vpc-igw(Internet Gateway) -->외부 인터넷 

 

 

라우팅 추가

라우팅 편집 - 라우팅 추가 설명

즉, 퍼블릭 서브넷안의 EC2 인스턴스 리소스의 트래픽이 igw-0d220912b8 게이트웨이를 통해 외부로 나간다는 의미  ( dev-vpc  외부)

10.1.0.0/16 목적지의 의미는?

이거는 기본적으로 dev-vpc의 CIDR 블록 내(dev-vpc 내부)에서는 이동이 가능하다는 것을 의미

 

private-subnet-route : private-subnet-a1, private-subnet c1 

라우팅 테이블 생성

private-subnet-a1-route 테이블 생성 

 

 

 퍼블릭 라우팅 테이블과 마찬가지로 Subnet association탭에서 private-subnet 연결 

private-subnet-a1-route 테이블에 연결 할 서브넷 선택 화면

private-subnet-c1-route 테이블 생성

Subnet association탭에서 private-subnet-c1 연결 

private-subnet-c1 연결 편집 화면

 

private-subnet-a2-route 테이블 생성

 

private-subnet-c2-route 테이블 생성

 

 

 

여기서 public-subnet과 private-subnet의 차이점 

public-subnet 테이블은 인터넷 게이트웨이를 통해서 나간다. (내부 + 외부 통신 가능)

퍼블릭 서브넷 테이블 예시

 

프라이빗 서브넷 라우트 테이블은 local 즉 dev-vpc CIDR 블록 내에서만 라우팅이 가능하다. (내부 통신 가능)

프라이빗 서브넷 테이블 예시

 

 

  다음에는 Public EC2 인스턴스 생성 및 LAMP 웹서버 구성을 해보겠습니다.

728x90