[AWS] 3-Tier 구성 (1/n)

유유·2021년 7월 6일
1

aws

목록 보기
1/5

Overview

본 Hands-on에서는 AWS에서 여러 서버를 구성하여 웹페이지를 서비스하기 위한 기반 인프라 구축 방법에 대하여 설명합니다.

Architecture diagram

1. VPC(Virtual Private Cloud) 환경 구성하기

1.1 VPC(Virtual Private Cloud)란?

Amazon Virtual Private Cloud(VPC)를 사용하면 AWS 클라우드에서 논리적으로 격리된 공간을 프로비저닝하여 고객이 정의하는 가상 네트워크에서 AWS 리소스를 시작할 수 있습니다.

또한, IP 주소 범위 선택, 서브넷 생성, 라우팅 테이블 및 네트워크 게이트웨이 구성 등 가상 네트워킹 환경을 완벽하게 제어할 수 있습니다. VPC에서 IPv4와 IPv6를 모두 사용하여 리소스와 애플리케이션에 안전하고 쉽게 액세스할 수 있습니다.

VPC 구성 요소

  • Virtual Private Cloud(VPC) - 사용자의 AWS 계정 전용 가상 네트워크입니다.

  • 서브넷 - VPC의 IP 주소 범위입니다.

  • 라우팅 테이블 - 네트워크 트래픽을 전달할 위치를 결정하는 데 사용하는 라우팅이라는 이름의 규칙 집합입니다.

  • 인터넷 게이트웨이 - VPC의 리소스와 인터넷 간의 통신을 활성화하기 위해 VPC에 연결하는 게이트웨이입니다.

  • VPC 엔드포인트 - 인터넷 게이트웨이, NAT 디바이스, VPN 연결 또는 AWS Direct Connect 연결 없이도 PrivateLink로 구동하는 지원되는 AWS 서비스 및 VPC 엔드포인트 서비스에 비공개로 연결할 수 있게 합니다. VPC의 인스턴스는 서비스의 리소스와 통신하는 데 퍼블릭 IP 주소를 필요로 하지 않습니다. VPC와 기타 서비스 간의 트래픽은 Amazon 네트워크를 벗어나지 않습니다.

  • CIDR 블록 - 클래스 없는 도메인 간 라우팅입니다. 인터넷 프로토콜 주소 할당 및 라우팅 집계 방법입니다.

1.1.1 VPC

Virtual Private Cloud(VPC)는 사용자의 AWS 계정 전용 가상 네트워크입니다. VPC는 AWS 클라우드에서 다른 가상 네트워크와 논리적으로 분리되어 있습니다.

클라우드에서 생성하는 자원들은 기본적으로 특정 네트워크 위에서 생성되며 이에 접근하기 위한 프라이빗 IP를 가집니다. 이 리소스들은 특정한 VPC 위에서 만들어지며 CIDR 범위 안에서 적절한 IP를 할당 받게 됩니다. 192.168.0.0/24 CIDR 블록을 가진 VPC에서 생성한 EC2 인스턴스는 192.168.0.127이라는 IP를 할당 받을 수 있습니다. VPC의 범위 내에서 할당 가능한 IP가 모두 할당되면 더 이상 리소스를 만들 수 없기 때문에 적절한 크기의 VPC를 만들어야 합니다.

--
[참고]
VPC 생성 시 인터넷 연결이 필요한 경우 반드시 사설망 대역을 사용해야 하며, 인터넷 연결이 필요하지 않더라도 가능하면 사설망 대역을 사용하는 것을 권장합니다. 52.12.0.0/16을 CIDR 블록으로 지정한 경우 해당 VPC 에서 52.12.0.0/16로 접속하는 트래픽은 VPC 내부로 라우트 됩니다. 이 범위의 IP는 인터넷에서 사용할 수 있는 IP여서 해당 VPC에서는 52.12.0.0/16에 속한 인터넷 IP에 접근하는 것이 원천적으로 불가능합니다. 그렇기 때문에 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16와 같은 사설망 대역을 사용해야합니다.

10.0.0.0/24 일경우, IP 대역은 10.0.0.0 ~ 10.0.0.255 까지 256 개의 IP 가 사용 가능합니다. 하지만, AWS 에서 기본적으로 서비스를 위해 IP 앞대역 부분에서 4 개, 뒤쪽 대역에서 1 개를 미리 사용하기 때문에, 실제로 이용가능한 대역은 10.0.0.4~10.0.0.254 이고, 251 개의 IP 를 사용 가능합니다.

만약 하나의 서브넷 마다 좀 더 많은 IP 대역을 가지고 싶은 경우 10.0.0.0/20 = 10.0.0.0 ~ 10.0.15.255 = 4096 개 IP, 10.0.16.0/20 = 10.0.16.0 ~ 10.0.31.255 = 4096 개 IP 와 같이 이용 가능합니다.

AWS 에서 사용할 수 있는 가장 큰 대역은 10.0.0.0/16, 가장 작은 대역은 10.0.0.0/28 입니다.

CIDR 에 대해서 계산하기 힘들 경우, 아래와 같은 CIDR Calculator 를 이용하시면 편리합니다.

CIDR Calculator : CIDR to IPv4 Address Range Utility Tool | IPAddressGuide

--

1.1.2 서브넷(Subnet)

서브넷은 VPC 안에서 실제로 리소스가 생성될 수 있는 네트워크입니다.

하나의 VPC는 N개의 서브넷을 가질 수 있습니다. VPC와 동일한 크기의 서브넷을 하나만 만드는 것도 가능하며, 일반적으로 사용할 수 있는 가용존을 고려해서 적절한 크기의 서브넷들을 가용존 수만큼 생성해서 사용합니다. N개의 가용존 만큼 서브넷을 만들어 리소스를 분산하면 재해 대응 측면에서도 유리합니다.

서브넷의 넷마스크 범위는 Prefix /16(65535개)에서 /28(16개)을 사용할 수 있으며, VPC CIDR 블럭 범위에 안에 속하는 CIDR 블럭을 지정할 수 있습니다.

하나의 서브넷은 하나의 가용존과 연결 됩니다. 재해 대응을 위해 2개 이상의 가용존을 사용하는 게 일반적이며 그 안에 적절한 수의 서브넷을 생성하여 활용하면 됩니다.

1.1.3 라우트 테이블(Route Table)

라우트 테이블은 서브넷과 연결되어있는 리소스입니다. 서브넷에서 네트워크를 이용할 때는 이 라우트 테이블을 사용해서 목적지를 찾게 됩니다. 라우트 테이블은 서브넷과 연결되어있지만 VPC를 생성할 때 만들어지고 VPC에도 연결되어 있습니다. 이 라우트 테이블은 VPC에 속한 서브넷을 만들 때 기본 라우트 테이블로 사용됩니다.

1.1.4 인터넷 게이트웨이(Internet Gateway)

VPC는 기본적으로 격리되 네트워크 환경입니다. 따라서 VPC에서 생성된 리소스들은 기본적으로 인터넷을 사용할 수가 없습니다. 인터넷에 연결하기 위해서는 인터넷 게이트웨이가 필요합니다. 라우팅 테이블에 인터넷 게이트웨이를 향하는 적절한 규칙을 추가해주면 특정 서브넷이 인터넷과 연결됩니다. 하지만 서브넷과 인터넷 게이트웨이를 연결하는 것만으로는 인터넷을 사용할 수 없습니다. 인터넷을 사용하고자 하는 리소스는 퍼블릭 IP를 가지고 있어야합니다.

1.1.5 DHCP 옵션셋(DHCP options set)

DHCP 옵션셋은 TCP/IP 네트워크 상의 호스트로 설정 정보를 전달하는 DHCP 표준입니다. 이 기능을 사용하면 도메인 네임 서버, 도메인 네임, NTP 서버, NetBIOS 서버 등의 정보를 설정할 수 있습니다. 일반적으로 VPC 생성 시 만들어지는 DHCP 옵션셋을 그대로 사용합니다.

1.1.6 네트워크 ACL(Network ACL) / 시큐리티 그룹(Security Group)

네트워크 ACL은 주고(outbound) 받는(inbound) 트래픽을 제어하는 가상 방화벽입니다. 하나의 네트워크 ACL은 다수의 서브넷에서 재사용할 수 있습니다.

시큐리티 그룹은 인스턴스의 앞단에서 트래픽을 제어하는 가상 방화벽인 반면, 네트워크 ACL은 서브넷 앞단에서 트래픽을 제어하는 역할을 합니다. 따라서 네트워크 ACL의 규칙을 통과하더라도 시큐리티 그룹의 규칙을 통과하지 못 하면 인스턴스와는 통신하지 못 할 수 있습니다. 이 두 가지 리소스를 통해서 안전한 네트워크 환경을 구축할 수 있습니다.

1.2 VPC(Virtual Private Cloud) 생성하기

  • IP 주소 범위 선택 하기

  • 가용 영역(AZ)별 서브넷 설정

  • 인터넷으로 향하는 경로 설정하기(Route)

  • VPC로 부터의 트래픽 설정하기

1.2.1 IP 주소 범위 선택 하기
본 실습의 전 과정은 Seoul region에서 모든 작업을 수행 합니다. Console 화면에서 Region 을 “Asia Pacific Seoul)”을 선택 합니다.

“Service” → VPC 를 선택합니다.

“Your VPCs” → “Create VPC”

IDC에 비유하면 네트워크의 전반적인 골격을 우리는 VPC라는 형태로 생성할 수 있습니다.

  • Name tag : VPC의 이름(megazone-hands-on)

  • IPv4 CIDR block : VPC가 가지게될 IPv4 의 CIDR 대역 주소를 정의하며 RFC 1918 규격에 따라 Private IP 주소 범위에 속하는 CIDR block 을 정의하는 것을 권장 합니다.

  • IPv6 CIDR block : IPv6 CIDR block 을 VPC에 연결할 수 있는 옵션

  • Tenancy : 테넌시 옵션을 정의하며, VPC 에 속하는 리소스(예 EC2의 H/W 공유 옵션

기본적으로 VPC 를 생성하게 되면, Default Route table, Network ACL, DHCP options set 등이 자동으로 생성 됩니다.

“DNS hostname” 옵션을 enable 함으로써, VPC 내 속한 리소스(예, Ec2 인스턴스)들이 DNS Name을 가지도록 설정 합니다.

VPC 선택 → Edit DNS hostname 클릭 → DNS hostname 'Enable' 체크박스 선택

DNS hostnames 는 VPC에서 AWS 리소스가 시작하는 경우 Public DNS 혹은 Private DNS 를 제공하는 옵션이며, 일반적인 운영 환경에서 enable 하신 후 사용 합니다.

여기까지 수행 하셨다면, VPC 생성이 완료된 것 입니다 😀

1.2.2 서브넷 생성하기

VPC 생성으로 저희는 AWS 내의 가상의 네트워크를 만들었습니다.

이제부터 VPC 내에서 가용 영역(Available Zone)에 따라 Subnet 을 생성해 주도록 하겠습니다.

“Subnets” → “Create subnet”

서브넷은 VPC의 IP 주소 범위 이며, 가용 영역(Availability Zone)에 종속 됩니다. 아래와 같이 서브넷을 생성합니다.

  • VPC ID : 서브넷을 만들고자 하는 VPC를 선택 합니다. Subnet name : 서브넷의 이름을 입력할 수 있는 옵션입니다.

  • Availability Zone : 서브넷이 상주하게 될 가용영역을 선택합니다. “No Preference” 는 AWS가 가용영역을 자동으 로 선택하도록 합니다.

  • IPv4 CIDR block : 서브넷의 IPv4 CIDR 블록을 지정합니다.

  • IPv6 CIDR block : 만약 VPC 생성 시 IPv6를 선택하셨다면 생기는 옵션 입니다.

    AWS 환경에서 서브넷을 생성하였습니다.

이제 아래와 같이 나머지 서브넷들도 만들어 줍니다.

Subnet

subnet을 모두 2개 생성하였고, 용도에 맞게 적절하게 name과 IP 대역을 부여 하였습니다.

profile
하이

0개의 댓글