Post

[AWS] EC2와 Cloud9생성

✅ AWS 네트워크 아키텍처


사용자가 정의한 가상 네트워크로 AWS 리소스를 시작할 수 있습니다. 이 가상 네트워크는 AWS의 확장 가능한 인프라를 사용한다는 이점과 함께 고객의 자체 데이터 센터에서 운영하는 기존 네트워크와 매우 유사합니다. 여기에서는 나만의 vpc 네트워크 아키텍처를 만들어보겠습니다.

☑️ Virtual Private Cloud(VPC)

사용자의 AWS 계정 전용 가상 네트워크입니다. 전체 네트워크 주소 범위는 172.31.0.0/16입니다.(리전단위)

☑️ Subnet

각각의 AZ에 1개씩 네트워크 주소가 할당된 VPC의 IP 주소 범위입니다.

172.31.16.0/16, 172.31.32.0/16, 172.31.0.0/16, 172.31.48.0/16 (AZ단위)

☑️ Routing Table

네트워크 트래픽을 전달할 위치를 결정하는데 사용되는 라우팅이라는 규칙 집합입니다.

172.31.0.0/16 (서브넷 단위)

☑️ Internet Gateway

VPC의 리소스와 인터넷 간의 통신을 활성화하기 위해 VPC에 연결하는 Gateway입니다. 라우팅 테이블에 할당됩니다. (VPC단위)

☑️ Network ACL

Inbound(내부로의 통신), Outbound(외부로의 통신)를 기반으로 모든 통신을 허가합니다. (서브넷 단위)

☑️ Security Group

Inbound(내부로의 통신)는 모든 통신을 거부합니다. Outbound(외부로의 통신)는 모든 통신을 허가압니다.(인스턴스 단위)

✅ 나만의 네트워크 아키텍처


  • VPC
    • my-vpc
      • 10.0.0.0/16 (10.0.0.0 ~ 10.0.255.255 = 65536)
  • Subnet
    • my-pub-2a
      • 10.0.0.0/20 (10.0.0.0 ~ 10.0.15.255 = 4096-2-1-1-1= 4091)고정적으로 쓰는 IP 제외
    • my-pub-2b
      • 10.0.16.0/20 (10.0.16.0 ~ 10.0.31.255 = 4096)
    • my-pub-2c
      • 10.0.32.0/20 (10.0.32.0 ~ 10.0.47.255 = 4096)
    • my-pub-2d
      • 10.0.48.0/20 (10.0.48.0 ~ 10.0.63.255 = 4096)

✅ VPC Peering


다른 VPC와 외부 인터넷이 아닌 내부로서 연결할 수 있는 기능입니다. 따라서 서울리전과 도쿄 리전의 vpc를 연결해보겠습니다.

☑️ 다른 리전 vpc 확인

Untitled

도쿄 리전으로 가서 기본 vpc 아이디를 복사합니다.

☑️ 피어링 연결 생성

원래 리전으로 돌아와서 피어링 연결 생성 버튼 클릭합니다.

Untitled

요청자는 내가 만든 vpc이고 내 계정 - 다른 리전 선택합니다. 그리고 도쿄 리전을 선택후 아까 도쿄리전 vpc에서 복사한 vpc 아이디를 수락자에 붙여넣습니다.

피어링 생성을 하면 수락자(도쿄)에 다시 들어가면 아래처럼

Untitled

피어링 연결 탭에 수락대기중이 나옵니다. 작업을 누르고 요청을 수락하면 되겠습니다~

☑️ 다른 리전에서 ec2 약식 생성

Untitled

키페어 없이 그리고 인터넷에서 HTTP 트래픽 허용을 체크합니다.

Untitled

이번 인스턴스에서는 ssh 들아가서 설치하기 귀찮고 확인만 하면 되니까 고급설정에서 사용자 데이터에서 init설정으로 인스턴스가 생성될 때 실행될 스크립트를 미리 입력합니다.

이제 각 리전에서 라우팅 테이블에서 각각의 private IPv4를 라우팅 추가하면 프라이빗 ip로도 들어갈 수 있다.

Untitled

도쿄 리전에서 서울쪽 private ip를 라우팅을 추가한다. 마찬가지로 서울에서도 도쿄쪽 프라이빗 ip를 라우팅 들어간다.

Untitled

이런식으로 서울쪽 EC2에서 curl으로 도쿄리전을 프라이빗 ip로 접속이 가능하다!

This post is licensed under CC BY 4.0 by the author.

Comments powered by Disqus.