[AWS/Docker] AWS 인스턴스 접근을 위한 IPv4 주소의 종류

Hyo Kyun Lee·2021년 7월 18일
0

AWS/Docker

목록 보기
2/20

1. VPC

Virtual Private Cloud

AWS에서 논리적으로 구별된 가상의 네트워크 환경이며, AWS 인스턴스(서버가 동작하는 프로세스의 일종)의 네트워크 계층(데이터 통신이 이루어지는 layer)이다.

2. VPC 세부개념 (※AWS 문서참조)

  • Virtual Private Cloud(VPC)
    사용자의 AWS 계정 전용 가상 네트워크.

  • 서브넷
    VPC의 IP 주소 범위입니다.

  • 라우팅 테이블
    네트워크 트래픽을 전달할 위치를 결정하는 데 사용하는 라우팅이라는 이름의 규칙 집합(목적IP주소와 device가 mapping된 table로, 리눅스 서버체계의 page table과 유사한 개념).

  • 인터넷 게이트웨이
    VPC의 리소스와 인터넷 간의 통신을 활성화하기 위해 VPC에 연결하는 게이트웨이.

  • VPC 엔드포인트
    인터넷 게이트웨이, NAT 디바이스, VPN 연결 또는 AWS Direct Connect 연결 없이도 PrivateLink로 구동하는 지원되는 AWS 서비스 및 VPC 엔드포인트 서비스에 비공개로 연결할 수 있게 하는 체계(다시 말해 물리적 연결없이도 통신이 가능하도록 하는 지원체계).
    VPC의 인스턴스는 서비스의 리소스와 통신하는 데 퍼블릭 IP 주소를 필요로 하지 않는다(MySQL과 같은 Database 연동 시 엔드포인트를 사용).
    VPC와 기타 서비스 간의 트래픽은 Amazon 네트워크를 벗어나지 않는다.

  • CIDR 블록
    클래스 없는 도메인 간 라우팅.
    인터넷 프로토콜 주소 할당 및 라우팅 집계 방법.

3. IPv4 주소체계 (※AWS 문서참조)

3자리씩 4부분, 총 12자리로 구현되어있는 인터넷 프로토콜 주소체계.

각 3자리는 0~255까지의 3자리 수로 표현.

인스턴스는 프라이빗 IPv4 주소에 상응하는 Amazon 제공 프라이빗 DNS 호스트 이름을 받는다.

해당 DNS에 구성된 IP주소일 경우, 퍼블릭 IPv4 또는 탄력적 IP 주소에 상응하는 퍼블릭 DNS 호스트 이름을 받습니다.

프라이빗 IPv4 주소

프라이빗 IPv4 주소(이 단원에서는 프라이빗 IP 주소로도 표시)는 인터넷을 통해 액세스할 수 없고, VPC의 인스턴스 간 통신에 사용할 수 있는 IP주소이다.
VPC에서 인스턴스를 시작할 경우, 서브넷의 IPv4 주소 범위에 속한 주 프라이빗 IP 주소는 인스턴스의 주 네트워크 인터페이스(eth0)에 할당되며, 해당 프라이빗 IP주소와 프라이빗 DNS 호스트 이름이 서로 매핑된 table을 생성한다.
주 프라이빗 IP 주소를 지정하지 않으면 서브넷 범위에서 사용 가능한 IP 주소가 자동 할당된다.

인스턴스가 중지 및 재시작될 때 프라이빗 IP 주소는 네트워크 인터페이스와 계속해서 연동되고 인스턴스가 종료되면 연동이 해제된다.

보조 프라이빗 IPv4 주소

보조 프라이빗 IP 주소인 추가 프라이빗 IP 주소를 VPC에서 실행 중인 인스턴스에 할당할 수 있다.
주 프라이빗 IP 주소와 달리, 보조 프라이빗 IP 주소는 한 네트워크 인스턴스에서 다른 네트워크 인스턴스로 재할당할 수 있다(=Master/Slave 개념과 유사).

퍼블릭 IPv4 주소

모든 서브넷은 해당 서브넷에서 생성된 네트워크 인터페이스(=서브넷 마스크를 통해 구별된 사용자들)가 퍼블릭 IPv4 주소(이 단원에서는 퍼블릭 IP 주소로도 표시함)를 받을 것인지 여부를 결정하는 속성을 갖는다.
따라서 이 속성이 활성화된 서브넷에서 인스턴스를 시작할 경우, 퍼블릭 IP 주소는 프라이빗 IP주소와 함께, 인스턴스에 대해 생성된 주 네트워크 인터페이스(eth0)에 할당됩니다.
퍼블릭 IP 주소는 NAT(Network Address Translation)를 통해 주 프라이빗 IP 주소로 매핑된다.

퍼블릭 IPv4 주소 수신 여부 제어

다음을 수행하여 인스턴스가 퍼블릭 IP 주소를 수신할지 여부를 제어할 수 있다.

  • 서브넷의 퍼블릭 IP 주소 지정 속성 수정.

  • 인스턴스를 시작하는 동안 퍼블릭 IP 주소 지정 기능을 활성화하거나 비활성화하면 서브넷의 퍼블릭 IP 주소 지정 속성을 재정의한다.

  • 퍼블릭 IP 주소는 Amazon의 퍼블릭 IP 주소 풀로부터 할당되며 계정과는 관련이 없다.
    인스턴스에서 퍼블릭 IP 주소의 연결이 해제되면 이 주소는 기존 존재한 주소pool에서만 존재할 뿐, 사용은 불가능해진다.
    퍼블릭 IP 주소는 수동으로 연결하거나 해제할 수 없다.
    어떤 경우에는 Amazon에서 귀하의 인스턴스로부터 퍼블릭 IP 주소를 해제하거나 새 인스턴스에 할당하기도 한다.

  • 필요에 따라 인스턴스에 할당하거나 인스턴스에서 제거가 가능한, 계정에 할당된 영구 퍼블릭 IP 주소가 필요한 경우, 탄력적 IP 주소를 사용한다.

  • VPC에서 DNS 호스트 이름을 지원하는 경우, 퍼블릭 IP 주소 또는 탄력적 IP 주소를 받는 각 인스턴스에도 퍼블릭 DNS 호스트 이름이 할당된다.
    Amazon은 퍼블릭 DNS 호스트 이름을, 인스턴스 네트워크 외부에서 인스턴스의 퍼블릭 IP 주소로 변환하고, 인스턴스 네트워크 내부에서는 인스턴스의 프라이빗 IP 주소로 변환합니다.

퍼블릭 DNS 호스트 이름(=도메인 주소)
→ 외부 네트워크 : 퍼블릭 IP주소로 변환(탄력적 IP)
→ 내부 네트워크 : 프라이빗 IP주소로 변환

실질적으로 우리가 DB 등 서버 연동 시 활용해야하는 IP주소는, 탄력적 IP 주소와 프라이빗 IP주소, AWS의 엔드포인트이다.

4. 참조링크

https://docs.aws.amazon.com/ko_kr/vpc/latest/userguide/vpc-ip-addressing.html
https://docs.aws.amazon.com/ko_kr/vpc/latest/userguide/what-is-amazon-vpc.html
https://docs.aws.amazon.com/ko_kr/vpc/latest/userguide/VPC_Subnets.html

0개의 댓글