AWS 스터디 1강. 네트워크

김준영·2023년 3월 7일
0

AWS 스터디

목록 보기
1/1
post-thumbnail

글에 있는 이미지는 공식 문서와 스터디에서 사용한 첨부 자료입니다.
CloudNet 팀에서 활동하시는 가시다님의 스터디 내용입니다.

들어가며

무릇 개발자라면 다양한 시스템을 접할 것이다.
MQ를 쓰더라도 SQS, Redis, key-value DB, RabbitMQ .. Cron을 쓰더라도 Linux의 Crontab, K8s의 Cronjob, Sentry의 Cron 등등 선택지는 넓다.
이 맥락에서 어떤 시스템 설계를 할때 상황에 맞는 좋은 프로세스를 만들기 위해 클라우드의 표준이 된 AWS를 아는 것은 기본이다.

AWS VPC


VPC는 Virtual Private Cloud의 약자로 사용자가 정의한 가상 네트워크상에서 다양한 AWS 리소스를 실행할 수 있게 지원한다.
처음 AWS 자격증 공부할때와 마찬가지로 지금도 네트워크 쪽은 항상 어렵다. 가상 라우터, 인터넷 게이트웨이, NAT 게이트웨이 등등.. 하지만 그림을 보면서 이해하고 실제로 구축해보면서 다양한 사례들을 보면 다른 공부와 마찬가지로 어려울 게 없다고 생각한다.

서브넷

서브넷은 네트워크 영역을 부분적으로 나눈 망이다.
서브넷의 IP대역은 VPC의 IP대역에 속해 있어야 하며, 서브넷은 1개의 가용 영역(AZ)에 종속되어야 한다.
-> VPC는 하나의 리전에 종속되는데 각 리전에 여러개의 가용 영역(AZ)가 있다면 그 각각의 네트워크 대역을 만드는 것이 서브넷이다.
서울(ap-northeast-2) 에는 4개의 데이터 센터가 있으니 AZ는 4개이다.

보통 서브넷의 IP를 볼때 192.168.0.0/24 이런식으로 되어 있는 것을 보았을 것이다.
192.168.0.0 는 개인 로컬 IP인 것은 알 것이고 /24로 되어 있는 부분은 무엇일까?
총 32 비트중에 24 비트는 빼고 8비트만 바뀔 수 있다는 것.
따라서 해당 서브넷에 할당된 IP 대역은 192.168.0.0 ~ 192.168.0.255 가 된다.
8비트.8비트.8비트.8비트 라고 생각하자.
vpc 생성시 vpc 이름과 CIDR을 정해줄 수 있다.
CIDR에 대한 정의는 아래와 같다.

CIDR (Classless Inter-Domain Routing) 블록은 인터넷 프로토콜(IP)에서 데이터 패킷 라우팅에 사용되는 IP 주소 집합입니다.

CIDR 블록의 형식은 XXXX/YY입니다. 여기서 XXXX는 네트워크 접두사이고 YY는 넷마스크 또는 접두사 길이입니다. 넷 마스크는 CIDR 블록 내에 포함된 IP 주소 범위를 정의합니다. 예를 들어 네트워크 접두사가 10.0.0.0이고 비트마스크가 /16인 CIDR 블록은 2^(32–16) = 65,536 IP 주소 범위를 정의합니다.

예를 들어 IPv4 CIDR 블록 10.0.0.0/16은 Amazon Web Services(AWS)의 Virtual Private Cloud(VPC)에 IP 주소 범위를 할당하는 데 사용됩니다. 이 CIDR 블록은 2^(32–16) = 65,536개의 IP 주소 범위를 지정하지만 이러한 주소 중 일부는 특수 용도로 예약되어 있으므로 65531개의 IP 주소만 추가 할당에 사용할 수 있습니다.

VPC 내에서 CIDR 블록의 IP 주소는 더 작은 범위로 더 분할되어 개별 서브넷에 할당될 수 있습니다. 예를 들어 예제의 퍼블릭 서브넷에는 2^(32–24) = 256개의 IP 주소로 구성된 10.0.0.0/24 범위가 할당됩니다. 그러나 이러한 주소 중 일부는 특수 용도로 예약되어 있으므로 해당 서브넷의 리소스에서 사용할 수 있는 IP 주소는 251개뿐입니다.

서브넷은 VPC 대역보다 낮게 설정해야함 (10.0.0.0/24)로 설정했다면 서브넷은 (10.0.0.0/24보다 큰거) 로 설정해야함

가상 라우터와 라우팅 테이블

VPC를 생성하면 자동으로 가상 라우터가 생성됨.
이 가상 라우터는 라우팅 테이블을 가지고 있어 목적지 네트워크로 라우팅 한다.

인터넷 게이트웨이


인터넷 게이트웨이는 VPC와 인터넷 간의 논리적 연결이다. VPC에서 인터넷 구간으로 나가는 관문이다.
인터넷 게이트웨이 관리 페이지로 들어가서 우측 상단의 인터넷 게이트웨이 생성 버튼을 클릭하여 이름을 정해주면 인터넷 게이트웨이는 쉽게 생성된다.

생성이 되었으면 VPC와 연결해주어야 한다.

인터넷 게이트웨이를 생성한 직후 위 그림의 초록색 팝업 메세지에서도 VPC에 연결을 하라고 안내가 나오며, 작업 버튼을 클릭해서도 VPC 연결 항목을 골라서 VPC에 연결할 수 있다.

라우팅 테이블

라우팅 테이블을 작성해주어야 한다. 라우팅 테이블을 수정하여 VPC 내의 데이터 패킷이 인터넷 게이트웨이로 향하는 경로를 만들어주어야 하는 것이다.
다시 서브넷 관리 콘솔로 들어와서 아까 생성한 서브넷을 클릭한 후 라우팅 테이블 항목을 클릭하면 라우팅 테이블 상태를 볼 수 있다. 지금은 10.0.0.0/24는 local로 향한다는 내용밖에 없다.

라우팅 테이블을 생성하려면 가상 프라이빗 클라우드 항목 아래의 라우팅 테이블을 클릭하여 라우팅 테이블 관리 페이지로 들어간다.
그 다음 라우팅 테이블 생성 버튼을 클릭하고 VPC 연결은 아까 만든 VPC에 연결하여 라우팅 테이블을 생성하면 된다.

라우팅 테이블을 생성한 뒤에 생성한 라우팅 테이블을 클릭하고 아래에서 라우팅 항목을 클릭하면 라우팅 테이블 정보가 표시된다. 이 때 오른쪽의 라우팅 편집 버튼을 눌러 라우팅 테이블을 수정한다.
좌측 하단의 라우팅 추가 버튼을 클릭하여 새 라우팅 정보를 입력한다. 대상 항목에는 0.0.0.0/0을 입력한다. (0.0.0.0/0은 외부 인터넷으로 향해야 하는 데이터 패킷을 의미) 그리고 그것들이 인터넷 게이트웨이를 거쳐야 외부 인터넷으로 향할 수 있기 때문에 두번째 대상 항목을 클릭하고 인터넷 게이트웨이 항목을 눌러 생성한 인터넷 게이트웨이를 선택해주고 변경사항을 저장해주면 된다.

마지막으로 '서브넷 연결 항목'을 클릭해 생성한 서브넷과 연결해주면 Public Subnet이 인터넷 게이트웨이를 통해 인터넷과 연결될 수 있는 VPC 환경이 만들어진다.

NAT 게이트웨이


NAT 게이트웨이도 외부 인터넷 구간과 연결하는 관문 역할을 하고 있는데 프라이빗 IP가 NAT 게이트웨이를 거쳐 퍼블릿 IP로 변환하여 통신한다.

보안 그룹과 네트워크 ACL

VPC는 인스턴스 레벨과 서브넷 레벨 상에서 대상을 필터링 할 수 있다.
보통 EC2가 접하기 쉬울테니 보안그룹이 더 익숙한 단어일 것이다.

보안그룹은 인스턴스 별로 지정하는 보안 기술이며 네트워크 ACL은 서브넷 별로 지정하는 보안 기술이다.

0개의 댓글