AWS 클라우드 인프라 구축의 시작 - VPC
June/AWS

AWS 클라우드 인프라 구축의 시작 - VPC

개요

이제는 클라우드의 시대이다.
많은 서비스들이 클라우드 환경에서 제공되는데, 만일 인프라 구성이 처음이라면 POC를 받지 않는 한 많은 어려움이 있을 것이다. 이제 처음 클라우드 환경에 인프라를 구축한다는 느낌으로 VPC의 개념부터 서버 구성까지 진행해보자.

해당 글에서 구축되는 인프라는 아래의 조건을 만족하게 된다.

- 보안성을 갖춘 인프라
- 테라폼을 활용하여 관리되는 인프라

그 첫 번째로, 각 개념에 대하여 이해하여 보자.

용어

VPC
(Virtual Private Cloud)

사용자의 AWS 계정 전용 가상 네트워크
다른 네트워크와 논리적으로 분리되어 있음
* VPC를 생성함으로써 각자의 서비스를 구현할 내 영역이 생긴다고 보면 된다.
Subnet
VPC IP의 주소 범위
* VPC를 통하여 내 영역을 만들었다면 이제는 영역을 구분 지어 놓는 것이라고 보면 된다.
Route Tables
네트워크 트래픽을 전달할 위치를 결정하는데 사용되는 라우팅이라는 규칙 집합 테이블
* VPC의 각 서브넷들이 라우팅 테이블에 연결이 되고, Public과 Private 서브넷을 논리적으로 분리해 줄 수 있는 요소이다.(말이 조금 어렵지만 천천히 따라가다 보면 이해할 수 있다.)
Internet Gateway
VPC의 인스턴스와 인터넷 간 통신을 가능케 해주는 기능
* 즉, 나의 VPC를 인터넷과 연결시켜주는 입/출구 라고 보면 된다.
NAT Gateway
(Network Address Translation)
NAT 디바이스를 사용하여 Private subnet의 인스턴스를 인터넷에 연결하는 한편,
인터넷에서 해당 인스턴스와의 연결을 시작하지 못하도록 지정하는 기능
* 즉, 서브넷을 Private 용도로 사용하기 위하여 아무나 접근하지 못하게 지정하는 것이다.

- VPC 기본 구성도

출처: AWS 공식 홈페이지 매뉴얼


위의 아키텍쳐를 살펴보기 전에 왜 Subnet을 Public과 Private으로 구분 짓는 것일까?
바로 보안적인 요소와 밀접하게 관계되어 있기 때문이다.
서비스를 제공하는 데 있어서 사용자에게 노출되고 접근되는 영역을 서비스의 앞단이라 표현하고,
중요한 데이터를 저장하고 내부적인 기능들로 보안성을 필요로 하는 영역을 서비스의 뒷단이라고 하면,

Public에는 LB나 NAT Gateway를 생성하여 보수/관리 하고,
Private에는 톰캣이나 DB 와 같이 외부에 노출되거나 공격에 취약한 영역들을 관리한다.

Public과 Private을 논리적으로 구분 지어 주는 것이 바로 Route Table인데,
Public은 라우트 테이블을 통해 바로 Internet Gateway를 거쳐 외부와 연결되는 한편,
Private은 라우트 테이블을 통해 NAT gateway를 한번 더 거치기 때문에 외부에는 접속 할 수 있지만
외부에서는 허용된 IP 대역과 통신 방법만 접근이 가능하게 된다.


이제부터는 메인은 아니지만 꼭 알아야 하는 Side 용어들을 익혀보자.

CIDR(사이더) 블록
VPC가 논리적으로 구분될 수 있게 하는 IP 범위 지정 방식
* 이를 위해서는 CIDR IP주소의 구조에 대해서 이해해야 한다.
자세한 사항은 구글에 CIDR 혹은 넷마스크/호스트 표기 등의 키워드로 검색해 보자.
DHCP 옵션셋
TCP/IP 네트워크 상의 호스트로 설정 정보를 전달하는 DHCP 표준
* VPC 생성 시에 기본으로 생성되기 때문에 별도로 해줘야 하는 작업은 없지만,
해당 기능이 있어야 도메인 네임이나 각 종 서버 정보를 설정할 수 있기에 필수이다.
Network ACL
(Access Control List)
접근 제어 목록으로써 서브넷 내부와 외부의 트래픽을 제어하기 위한 방화벽 보안 계층
* Subnet에 접근 하기 전에 차단 또는 허용과 같은 룰들을 설정할 수 있다. 추후에 특정 IP로 부터 공격이 들어온다면 nACL을 통해 해당 IP를 차단과 같은 기능을 수행할 수 있다.


이제 기본 용어들에 대한 이해가 되었다는 기반으로(헷갈리시면 지속적으로 아키텍쳐를 봐주세요!)
다음에는 테라폼을 활용하여 AWS에서 해당 인프라를 구축해 보는 실습을 기록하고자 한다.

참조

https://www.44bits.io/ko/post/understanding_aws_vpc

 

만들면서 배우는 아마존 VPC(Amazon VPC) 입문: AWS 네트워크의 기초

아마존 버추얼 프라이빗 클라우드(Amazon VPC)는 아마존 웹 서비스(Amazon Web Service)의 가장 기본이 되는 네트워크 서비스이자 리소스입니다. AWS에서 제공하는 대부분의 리소스들은 아마존 VPC를 기반으로 실행됩니다. 따라서 VPC를 이해하고 있어야 AWS 서비스를 십분 활용할 수 있습니다. 이 글에서는 기본 VPC와 같은 구성을 직접 만들어보면서 VPC의 기본 개념과 리소스들을 소개합니다.

www.44bits.io

AWS 공식 가이드 매뉴얼