본문 바로가기

메가존 클라우드 2기 교육/실무 심화

AWS - 네트워크 서비스(VPC, Route53, 네트워크 ACL)

AWS 네트워크 서비스

AWS는 전 세계에서 가장 높은 수준의 안정성, 가장 많은 보안 기능 및 최고의 성능을 갖춘 가장 방대하고 세분화된 네트워킹 서비스 세트를 제공한다. 이러한 네트워킹 서비스를 활용하면 클라우드에서 모든 종류의 워크로드를 실행할 수 있다.

AWS의 보안은 핵심 인프라에서 시작된다. AWS 네트워킹 기능은 전 세계에서 가장 엄격한 보안 요구 사항을 충족하도록 설계되었습니다. AWS 인프라는 24/7 모니터링을 통해 데이터의 기밀성, 무결성가용성을 보장한다.

 


VPC (Virtual Private Cloud: 격리형 클라우드 리소스)

VPC

VPC 클릭

서울 리전의 VPC
상파울루의 VPC

 내 계정 내에서 VPC들은 ID값은 다 다르지만 다 같은 아이피를 사용한다.


서브넷을 보면 VPC가 위에서 본 서울 VPC의 ID이다. 즉, 서울 VPC를 서브넷팅 해서 4개의 가용 영역을 만든 것이다.(16개 중 4개)

new-ami-webserver의 아이피
webserver의 아이피

둘의 가용 영역이 달라 네트워크 주소가 다름을 알 수 있다.

하지만, 서로 통신이 가능하다. 그 이유는 라우팅 테이블에 라우팅 정보가 세팅 됐기 때문.


라우팅 테이블에서 라우팅을 보면 세팅이 됐음을 알 수 있다.

내부 아이피(172.31.0.0/16)은 local로 보낸다. 그 외의 모든 아이피(0.0.0.0/0)은 '인터넷 게이트웨이'로 이동


보안 그룹에서 web의 인바운드 규칙 수정

인바운드 규칙에 All ICMP에 '172.31.0.0/16'을 추가

서로 라우팅 정보가 세팅 되어있기 때문에 인바운드 규칙만 수정해주면 서로 다른 네트워크여도 통신이 된다.

VPC 생성

필자가 배정받은 아이피 대역(10.11.0.0/16)을 20비트로 서브넷팅 하면 다음과 같이 나눠진다.

https://jodies.de/ipcalc?host=10.11.0.0&mask1=16&mask2=20 

 

IP Calculator / IP Subnetting

 

jodies.de

  • new-vpc 10.11.0.0/16
  • new-public-subnet-2a 10.11.0.0/20
  • new-public-subnet-2b 10.11.16.0/20
  • new-public-subnet-2c 10.11.32.0/20
  • new-public-subnet-2d 10.11.48.0/20

이렇게 총 4개의 서브넷을 고르겠다.

이제 다음과 같은 순서로 VPC를 생성할 것이다.

1. vpc 생성 (dhcp + rtb + nacl + default sg)
2. 서브넷 생성
3. 인터넷 게이트웨이 생성(new-igw와 new-vpc 연결)
4. 라우팅 테이블 설정

 


VPC 생성 클릭.

위에서 계산한 아이피 값을 입력한다.
VPC 생성 클릭

생성 성공. VPC를 생성하기만 했는데 DHCP 기능, 기본 라우팅 테이블(rtb), 기본 네트워크 ACL(보안 그룹과 유사), default 보안 그룹(사진에선 안보임)이 자동으로 추가됨.

VPC - 서브넷 생성

우측 상단의 서브넷 생성 클릭

 위에서 정리한 서브넷들을 입력하여 (꼭 가용 영역 확인) 서브넷 생성.


생성 성공.

VPC - 인터넷 게이트웨이 생성

우측 상단의 인터넷 게이트웨이 생성 클릭

이름만 설정하면 끝. 이전의 실습과 달리 굉장히 쉽게 생성 가능.

생성 성공. 하지만, 아직 상태가 'Detached'이다. 아직 연결이 안된 것인데, 꼭 반드시 new-vpc와 연결해줘야 한다.(매우 중요)

VPC와 꼭 연결해줘야 한다. 그러므로, 우측 상단의 'VPC에 연결' 클릭 or 작업을 눌러 'VPC에 연결' 클릭


new-vpc에 연결까지 해서 마무리 해줘야한다. 연결 클릭

Attached 까지 돼야 게이트웨이 생성 끝

VPC - 라우팅 테이블 설정

세부 정보를 확인해서 'new-vpc'의 라우팅 테이블을 찾고 이름을 바꿔주자.

현재 라우팅 정보를 보면 설정한 '10.11.0.0/16' 대역폭 끼리는 통신이 잘 된다. 이제 나머지 아이피에 대해서 인터넷 게이트웨이로 라우팅 하도록 라우팅을 추가한다. 라우팅 편집 클릭

모든 아이피(0.0.0.0/0), '인터넷 게이트웨이' 로 설정 후 저장

라우팅 테이블 설정 끝

설정

 

현재 네트워크 망도

 

 


Route53

도메인 구매

이제, 본격적으로 퍼블릭 클라우드를 만들 것이므로, 이에 맞는 도메인 이름이 필요하다.

https://www.gabia.com/

 

웹을 넘어 클라우드로. 가비아

그룹웨어부터 멀티클라우드까지 하나의 클라우드 허브

www.gabia.com

해당 홈페이지에서 가입한 후, 도메인을 구매하면 된다.

여기서, 도메인은 이벤트 도메인을 이용한다면, 처음 1년은 500원에 사용 가능하므로 추천한다.


Route53 원리

출처: https://www.stormit.cloud/blog/amazon-route-53/

 

Amazon Route 53 Basics and Routing Policies | StormIT

In this article, you will learn: All websites, computers, and connected devices communicate with each other using IP addresses. Since the IP address is difficult to remember, the IP address is assigned a domain name that’s usually easy to remember. For i

www.stormit.cloud

1. 사용자가 웹 브라우저를 열고 www.site.com에 대한 요청을 보냅니다.
2. www.site.com의 요청은 일반적으로 인터넷 서비스 공급자(ISP)가 관리하는 DNS 확인자로 라우팅됩니다.
3. ISP DNS 확인자는 www.site.com의 요청을 DNS 루트 이름 서버로 전달합니다.
4. DNS 해석기는 www.site.com의 요청을 이번에는 .com 도메인의 최상위 도메인(TLD) 이름 서버 중 하나로 다시 전달합니다. .com 도메인 이름 서버는 example.com 도메인과 연결된 4개의 Route 53 이름 서버 이름으로 응답합니다. DNS 확인자는 나중에 사용할 수 있도록 4개의 Route 53 이름 서버를 캐시합니다.
5.DNS 확인자는 Route 53 이름 서버를 선택하고 www.site.com의 요청을 해당 Route 53 이름 서버로 전달합니다.
6. Route 53 이름 서버는 호스팅 영역 site.com에서 www.site.com 레코드를 찾고 단순 라우팅의 경우 Amazon CloudFront 배포 의 별칭과 같은 값을 가져옵니다 .
7. DNS 확인자는 마침내 사용자에게 필요한 올바른 경로(CloudFront IP)를 갖게 되고 사용자의 웹 브라우저에 대한 값을 반환합니다.
8. 웹 브라우저는 www.site.com에서 CloudFront 배포의 IP 주소로 요청을 보냅니다.
9. 예제 CloudFront 배포는 www.site.com의 캐시 또는 원본 서버에서 웹 브라우저로 웹 페이지를 반환합니다.


Route53 설정 - 호스팅 영역 생성

Route53 검색 후 클릭

'DNS 관리'의 '호스팅 영역 생성' 클릭

구매한 도메인 명을 입력
호스팅 영역 생성 클릭

호스팅 영역 생성 성공. NS의 주소 4개를 기억해놓자.

가비아에서 'My 가비아' 페이지에 들어가서 우측의 '도메인 통합 관리툴' 클릭

도메인 이름을 클릭하여 세부 정보 확인

네임서버의 설정 클릭
기존 내용을 다 지우고, AWS의 Route53에서의 주소 4개 입력
소유자 인증을 한 뒤, 적용 클릭

적용 완료.

 Route53 - 레코드 생성

레코드 생성 클릭

레코드 이름과 값에 webserver의 퍼블릭 아이피를 입력. 레코드는 A 레코드 사용

생성한 레코드 주소를 복사하고 웹 페이지로 접속해보자.

레코드 주소로 접속 성공.

 

 

 


Network ACL (네트워크 접근 제어)

 Network ACL - 차단 설정

보안 그룹과 달리 Network ACL을 이용한다면 원하는 아이피의 접속을 '차단'을 할 수 있다.

네트워크 ACL은 VPC에 있다. VPC로 접속

좌측 메뉴의 '네트워크 ACL' 클릭
VPC ID가 new-vpc인 네트워크 ACL을 찾아 이름을 변경한다.

헌데, 아직은 인스턴스가 'new-vpc'가 아닌 'default-vpc'에 있다. 'default-vpc'의 하단의 인바운드 - 인바운드 규칙 편집 클릭

참고로 위에 있을 수록(규칙번호가 낮을 수록) 우선순위가 높다는 점을 숙지하자.

현재 모든 아이피를 허용하는 인바운드 규칙이 적용됐다.

 

위와 같이 규칙을 추가한다. (소스에 '[본인 아이피]/32'. 여기서 /32는 아이피 단 한개를 의미)

이제 제일 먼저 99번 규칙이 적용돼서, 현재 아이피로는 접근이 차단된다.

 하지만, 다른 아이피들은 접속이 잘 된다. 스마트폰을 통해 확인을 해보면 접속이 잘 되는 것을 알 수 있다.


테스트를 위해 추가한 규칙이니 다시 추가했던 규칙을 삭제해주자.


다음 실습을 위한 삭제

인스턴스 제거

인스턴스 제거

Route53 제거

Route53 - A 레코드만 삭제

영역 삭제 클릭

VPC는 삭제하지 않는다.


 AMI 삭제

AMI를 지워야지 삭제가 가능하다.

결과

 위와 같은 리소스들만 남는다. (인스턴스는 종료돼도 바로 사라지지 않기 때문에 3개라 표시됨)


VPC 실습 환경 구성

서브넷 설정 편집

'서브넷 설정 편집' 클릭
new-public 들의 '퍼블릭 IPv4 주소 자동 할당 활성화' 체크

실습용 인스턴스 생성

'인스턴스 시작' 클릭

 

#!/bin/bash
yum install -y httpd
systemctl enable --now http
echo "<h1>web01</h1>" > /var/www/html/index.html

만일, '퍼블릭 자동 할당' 부분의 디폴트 값이 '비활성화'이면 세팅이 불완전한 것이니, 위의 서브넷 세팅을 확인한다.

vpc별로 보안 그룹이 존재하기 때문에 전에 생성했던 보안그룹은 없다.


Route53

호스팅 영역 생성 클릭


NS 유형에 있는 주소 4개 복사 (끝의 ' . ' 제거)

https://my.gabia.com/

 

웹을 넘어 클라우드로. 가비아

그룹웨어부터 멀티클라우드까지 하나의 클라우드 허브

www.gabia.com

My가비아에 들어가서, 사용하는 도메인 관리 메뉴에서 '네임서버'를 편집