AWS 네트워크 환경 구축 (2) - VPC, 서브넷

jonghyukLee·2022년 9월 6일
0
post-thumbnail

이번 글에서는 VPC, 서브넷 생성 및 외부 인터넷과 연결하기 위한 설정들을 진행해보겠습니다.
목표하는 아키텍처 구조는 아래 그림과 같습니다.

이번 목표!

VPC 생성

  1. 리전은 서울(ap-northeast-2)
  2. VPC 서비스로 이동하여 VPC 생성 버튼 클릭
  3. VPC 이름과 IPv4 CIDR 만 설정하고 생성했다.

서브넷 생성

  1. VPC 서비스로 이동
  2. 좌측 메뉴에서 서브넷 클릭 → 서브넷 생성 버튼 클릭
  3. 앞에서 만든 VPC 선택
  4. 각 영역별로 public, private 서브넷을 생성해준다. 한번 생성할 때 여러개를 생성할 수 있다.
    설계한대로 총 4개를 생성한다.
    (이하 생략)
  5. 대부분의 리소스를 Private 서브넷에 배치하므로, Private 서브넷의 범위를 Public 서브넷의 두배로 가져가도록 하였다.

Internet GateWay (IGW)

현재 public 이름으로 생성한 서브넷은 아직 public이 아니다. 외부 인터넷망과 연결되지 않았기 때문이다.
따라서, Internet GateWay를 연결하여 public 서브넷을 진짜 public 서브넷으로 만들어준다.

  1. VPC 서비스로 이동
  2. 좌측 메뉴에서 인터넷 게이트웨이 클릭 → 인터넷 게이트웨이 생성 버튼 클릭
  3. 간단하게 이름만 입력해서 생성해준다.
  4. 생성 완료 후 나타나는 화면에서, VPC에 연결을 클릭하여 앞에서 생성한 VPC에 연결해준다.

라우팅 테이블

서브넷에 라우팅 테이블을 연결하여 전달 방식을 설정합니다.

  1. VPC 서비스로 이동
  2. 좌측 메뉴에서 라우팅 테이블 클릭 → 라우팅 테이블 생성 버튼 클릭
  3. 라우팅 테이블 이름, VPC 설정
  4. 생성 완료 후 나타나는 화면에서
    서브넷 연결 탭 → 서브넷 연결 편집 클릭 → public 서브넷 선택 후 연결 저장
  5. 생성한 라우팅 테이블에 Public 서브넷들이 매핑된 것을 확인하실 수 있습니다.
  6. 이제 Public 서브넷과 연결한 라우팅 테이블에 앞에서 생성했던 Internet GateWay를 연결해주면 됩니다.
    생성한 라우팅 테이블 선택 → 하단 라우팅 탭 클릭 → 라우팅 편집
  7. 라우팅 추가 → 모든 IPv4 → 인터넷게이트웨이 → 생성한 igw 선택 → 저장
  8. 이제 Public 서브넷이 외부 인터넷과 양방향 통신이 가능해졌습니다.

[참고] Private 서브넷의 라우팅 테이블

  • VPC를 만들면 main route table이 자동적으로 만들어 지고, main route table 은 Private 서브넷 이 참조하는 route table 로 이용된다.
  • main route table을 포함한 모든 route table에는 default route(VPC_IP_CIDR local) 가 등록되는데, 삭제할 수 없고, default route로 인해 VPC내 모든 인스턴스는 서로간 통신가능
  • 따라서 Private 서브넷을 외부와 연결할 필요가 없다면, 별도 라우팅 테이블을 설정하지 않아도 된다.

NAT GateWay

이제 Private 서브넷이 외부에 통신하기 위한 NAT GateWay를 생성하겠습니다.

  1. VPC 서비스 이동
  2. 좌측 메뉴에서 NAT 게이트웨이 클릭 → NAT 게이트웨이 생성 버튼 클릭
  3. 설정정보를 입력 후, 탄력적 IP 할당 버튼을 눌러 할당받고 저장해줍니다.
    (NAT 게이트웨이는 Public 서브넷과 연결된 인터넷 게이트웨이를 통해 Private 서브넷을 외부와 통신할 수 있도록 해줍니다. 따라서, 반드시 외부와 연결된 Public 서브넷에 위치하도록 구성해야 합니다.)
  4. 새로운 라우팅 테이블 생성 후 Private 서브넷과 연결 (이전과 동일)
  5. 라우팅 편집 → 생성한 NAT 게이트웨이 연결

이렇게 VPC와 서브넷 생성, public/private 서브넷 분리 및 외부 인터넷 연결까지 진행해 보았습니다.

다음 게시글에서는 Private 서브넷에 접근하기 위한 Bastion Host 인스턴스와,
서버의 부하 분산 처리를 위해 Elastic Load Balancer를 구성해보도록 하겠습니다.

profile
머무르지 않기!

0개의 댓글