귀염둥이의 메모

[AWS] VPC 네트워크 직접 구축하기 본문

Infra & Devops/AWS

[AWS] VPC 네트워크 직접 구축하기

겸둥이xz 2021. 9. 2. 01:45
반응형

VPC를 직접 생성해서 그림과 같은 네트워크를 직접 구축해 보자..!!

  • VPC에는 Public Subnet과 Private Subnet이 있고 각각 인스턴스를 만들어 준다
  • VPC 내부에서 Public Subnet 인스턴스와 Pirvate Subnet 인스턴스가 통신이 가능하게
  • Public Subnet은 Internet Gateway를 통해서 인터넷과 통신이 가능하게
  • Private Subnet은 직접적으로 인터넷 통신은 불가능
  • Public Subnet의 NAT Gateway를 통해서 인터넷에 Private Subnet의 요청을 보내고 요청에 대한 응답을 수신할 수 있게 해보자

 

VPC 생성하기

  • 리전 : ap-notrheast-2 서울
  • VPC 서비스로 들어가서 좌측에 있는 VPC를 클릭한다 
  • AWS에서 기본으로 생성된 vpc가 하나 있는데 [VPC 생성] 버튼을 눌러서 새로 생성하자

 

 

  • 이름이랑 IPv4 블록 지정을 해준다
  • 기본값 10.0.0.0/24 로 하라고 하는데 그냥 넉넉하게 16 정도로 해준다
  • [VPC 생성] 버튼 클릭

 

  • 리스트를 확인하면 my-vpc 가 생성되었다

 

Pirvate Subnet 생성

  • 좌측 메뉴에 [서브넷]을 클릭한다
  • 4개가 기본으로 있는데 기본으로 생성된 VPC의 서브넷이다
  • [서브넷 생성] 버튼을 누르자

 

  • 방금 만든 서브넷 선택

 

  • 위에 처럼 뜨면 이름과 블록을 지정해준다
  • 가용 영역은 지정안하면 자동으로 선택해주는데 그냥 직접 지정해봤다
  • [서브넷 생성] 클릭

 

Public Subnet 생성

  • Private 생성과 같은 절차로 진행하는데 이름 public 해주고 CIDR 블록 지정해준다
  • 그 외에는 똑같이하고 [서브넷 생성]

 

  • my로 필터링 했을 때 2개 있으면 정상!!

 

Internet Gateway 생성

  • 좌측 메뉴 [인터넷 게이트웨이] >  [인터넷 게이트웨이 생성] 누르면 위 사진처럼 뜬다
  • 이름 설정하고 [인터넷 게이트웨이] 생성 클릭

 

  • 기본 게이트웨이랑 내가 만든 my-ig 가 있다
  • my-ig 는 상태가 Detached에 VPC ID가 없다
  • VPC에 연결해주자!!

 

  • 마우스 우클릭하고 [VPC에 연결] 클릭

 

  • 우리가 만든 my-vpc 선택하고 [인터넷 게이트웨이 연결] 클릭

 

  • 상태가 바뀌고 정상적으로 연결되었다!!@!

 

라우팅 테이블 생성

  • 기본적으로 라우팅 테이블이 VPC 생성하면서 생기는데
  • 우리는 Public 이랑 Private Subnet에 각각 라우팅 테이블을 만들 것이다
  • 라우팅 경로를 정의해서 각각 Subnet 밖으로 나가는 아웃 바운드 트래픽에 대한 경로를 설정해줘야 한다
    • Public Subnet : 인터넷과 통신 가능하게
    • Private Subnet : NAT 게이트웨이를 통해서 외부에 요청하고, 요청에 대한 응답을 받게

  • 왼쪽 메뉴 [라우팅 테이블] > [라우팅 테이블 생성]
  • my-vpc 에 대한 라우팅 테이블이 하나 있는데, 사용하지 않을 예정이다

 

  • 이름이랑 VPC 선택 후 [라우팅 테이블 생성]

 

  • 서브넷을 지정해주자
  • [서브넷 연결] > [서브넷 연결 편집]

 

  • Private용 라우팅 테이블이니 private-subnet 선택하고 [연결 저장]

 

  • Public용 라우팅 테이블도 같은 방식으로 만들자

 

  • Public은 public-subnet 으로!!

 

  • Public 라우팅에 Internet Gateway도 넣어주자

 

  • 라우팅 추가 누르고 대상을 인터넷 게이트웨이로 선택하면 자동으로 우리가 만든 my-ig 가 선택될 것이다
  • 대상 0.0.0.0/0 (전체)로 해주고 [변경 사항 저장]

 

NAT 게이트웨이 만들기

  • NAT 게이트웨이 생성을 위해 먼저 탄력적 IP(Elastic IP)를 할당받자

 

  • 좌측 메뉴 [탄력적 IP ]> [탄력적 IP 주소 할당] > [할당]
  • 할당받았으면 좌측 메뉴 [NAT 게이트웨이] > [NAT 게이트웨이 생성]

 

  • NAT 게이트웨이는 Public Subnet에서 만들어야한다❗️❗️
  • 이름, 서브넷, 방금 만든 탄력적 IP 설정해주고 [NAT 게이트웨이 생성]

 

  • 기다렸다가 상대가 Available 로 바뀌면 private 라우팅 테이블을 수정하러 가자~
  • 좌측 메뉴 [라우팅 테이블] 클릭

 

  • private-rt 선택 후 [라우팅 편집]으로 가자

 

  • [라우팅 추가] > 대상에서 [NAT 게이트웨이]

 

  • 대상 전체로 0.0.0.0/0 해주고 [변경 사항 저장]

 

인스턴스 만들기

1. Public Subnet 인스턴스

  • 먼저 퍼블릭부터 만들어주자
  • 네트워크 my-vpc 설정
  • 서브넷 public-subnet 설정
  • 자동 할당 활성화 해주자

 

2. Private Subnet 인스턴스

  • 프라이빗은 private 설정으로 해준다

 

  • Public에 접속을 해보자~

 

  • 구글에 ping 잘 보내진다~~

 

  • 반면에 Private 인스턴스는 외부에서 접속이 안된다 (정상)

 

Public 인스턴스에서 Private 인스턴스로 접속하기

  • 퍼블릭 인스턴스 안에 자신의 키 파일을 복사하고 chmod 400 으로 권한 변경
  • 해당 키로 private 인스턴스의 프라이빗 ip로 접속하면 성공

 

  • 외부에서 직접 private 서브넷의 인스턴스에 접근이 불가능했지만
  • private 서브넷의 인스턴스의 요청과 요청에 대한 응답은 정상적으로 작동한다~!!

 

사실 [VPC 마법사]를 이용하면 손쉽게 구축가능하다 😅

반응형
Comments