EC2 Advanced

IP

  • 공용 IP

    • 다른 공용 IP를 가진 다른 서버와 통신할 수 있다.

    • 공용 IP를 가진 기기는 인터넷상에서 식별될 수 있으며, 인터넷 전역에 액세스할 수 있다.

    • 공용 IP를 갖는 경우 해당 IP의 지리적 위치를 쉽게 찾을 수 있다.

  • 사설 IP

    • 사설 네트워크 내부에서 사용하는 IP이다.

    • 기본적으로 사설 네트워크 내의 모든 컴퓨터가 사설 IP를 사용하여 서로 통신할 수 있다.

    • 사설 IP는 사설 네트워크 내에서만 액세스할 수 있다.

  • 탄력적 IP

    • EC2 인스턴스를 시작하고 중지하더라도 항상 고정된 공용 IP를 갖도록 해준다. (일반적으로 인스턴스를 중지하고 다시 시작하면 공용 IP가 바뀔 수 있다.)

    • 하나의 EC2 인스턴스에만 적용할 수 있다.

    • 만약 한 인스턴스에 장애가 발생해 다른 인스턴스로 트래픽을 옮기고 싶은 경우, 탄력적 IP가 다른 인스턴스에 적용되도록 변경할 수 있다.

    • 하지만 계정당 탄력적 IP를 5개만 쓸 수 있고, 탄력적 IP 대신 로드밸런서나 DNS를 사용하는 것을 권장한다.

  • 기본적으로 EC2 인스턴스는 내부 AWS 네트워크에서 사설 IP를 쓰고, World Wide Web(WWW)엔 공용 IP를 사용한다.

EC2 배치 그룹

  • EC2 인스턴스가 AWS 인프라에 배치되는 방식을 제어할 수 있다.

  • 클러스터 배치 그룹

    • 단일 AZ 내에서 지연 시간이 짧은 하드웨어 설정으로 인스턴스를 그룹화할 수 있다.

    • 높은 성능을 제공하지만 단일 AZ 내에 모든 인스턴스가 배치되므로 해당 AZ에 장애가 생기면 모든 서비스가 중단될 수 있다.

    • 모든 인스턴스 간에 초당 약 10기가비트의 대역폭을 확보하여 향상된 네트워킹을 활성화할 수 있다.

    • 매우 빠른 네트워킹으로 매우 빠르게 완료해야 하는 빅데이터 작업 등에 적합하다.

  • 분산 배치 그룹

    • 모든 EC2 인스턴스가 서로 다른 하드웨어에 분산되도록 할 수 있다.

    • 가용 영역별로 분산된 배치 그룹당 7개의 EC2 인스턴스만 가질 수 있다는 제한 사항이 있다.

  • 분할 배치 그룹

    • 여러 파티션에 인스턴스가 분할되어 있고, 파티션은 가용 영역 내의 다양한 하드웨어 랙에 분포된다.

    • 파티션은 동일한 리전의 여러 가용 영역에 걸쳐 있을 수 있다.

    • 파티션이 많으면 인스턴스가 여러 하드웨어 랙에 분산되어 랙 실패로부터 안전하다.

    • 가용 영역당 최대 7개의 파티션이 존재할 수 있다.

    • 한 파티션에 오류가 나더라도 다른 파티션에는 영향을 미치지 않는다.

    • 그룹당 수백 개의 EC2 인스턴스로 확장할 수 있다.

    • EC2 인스턴스가 어떤 파티션에 있는지 알기 위해 메타데이터 서비스를 사용할 수 있다.

    • 파티션들 전반에 걸쳐 데이터와 서버를 퍼뜨려 두도록 파티션 인식 가능한 애플리케이션의 경우에 사용한다.

      • HDFS, HBase, Cassandra 및 Apache Kafka 등 파티션을 인식하는 빅 데이터 애플리케이션이 이에 해당된다.

EC2 Hibernate 모드

  • 인스턴스를 중지하면 EBS 디스크 데이터는 다시 시작할 때까지 그대로 유지된다.

  • 인스턴스를 종료하는 경우, 루트 볼륨이 삭제되도록 옵션을 지정했는지 여부에 따라 EBS 볼륨의 삭제 여부가 결정된다.

  • 그리고 인스턴스를 다시 시작하면 운영 체제가 먼저 부팅되기 시작하고 EC2 사용자 데이터 스크립트도 실행된다.

  • 절전 모드

    • 인스턴스가 절전 모드가 되면 RAM에 있던 메모리 상태가 그대로 보존된다. 따라서 인스턴스 재부팅이 더 빨라진다.

    • 인스턴스 종료 시 RAM 자체가 남아있을 수는 없고, 백그라운드에서 RAM에 기록되었던 메모리 상태를 루트 경로의 EBS 볼륨에 기록한다. 이후 인스턴스를 다시 실행하면 디스크에서 RAM을 불러와 EC2 인스턴스 메모리로 가져간다.

    • 따라서 루트 EBS 볼륨을 암호화해야 하고 볼륨 용량도 RAM을 저장할 만큼 충분해야 한다.

    • 인스턴스 RAM 크기는 현재 최대 150GB이다.

    • 최대 60일까지 사용할 수 있다.

  • 오래 실행되는 프로세스를 갖고 있고 중지되면 안될 때, RAM 상태를 저장하고 싶을 때, 빠르게 재부팅을 하고 싶을 때, 서비스 초기화가 시간을 많이 잡아먹어 서비스가 중단 없이 인스턴스를 절전 모드로 전환하고 싶을 때 사용하면 좋다.

  • 베어 메탈 인스턴스에는 적용할 수 없다. 온디맨드(On-Demand), 예약(Reserved) 스팟(Spot)와 같은 종류의 인스턴스에 사용할 수 있다.

  • Linux, Windows 등의 여러 운영 체제에서 사용할 수 있다.

네트워크

  • ENI

    • Elastic Network Interface, 탄력적 네트워크 인터페이스

    • VPC의 논리적 구성 요소이며 가상 네트워크 카드를 의미한다.

    • EC2 인스턴스가 네트워크에 액세스할 수 있게 해준다.

    • ENI는 EC2 인스턴스 외부에서도 사용된다.

    • EC2 인스턴스는 기본 ENI인 Eth0에 연결되어 EC2 인스턴스 네트워크 연결을 제공한다.

    • EC2 인스턴스에 ENI를 추가적으로 매핑함으로서 메인 사설 IPv4와 하나 이상의 보조 IPv4를 가질 수 있다.

    • 각 ENI는 사설 IPv4당 탄력적 IPv4 혹은 하나의 공용 IPv4를 가질 수 있다.

    • ENI에 하나 이상의 보안 그룹을 연결할 수 있다.

    • EC2 인스턴스와 독립적으로 ENI를 생성하고 즉시 연결하거나 장애 조치를 위해 EC2 인스턴스에서 이동시킬 수 있다.

    • ENI는 특정 가용 영역 즉 AZ에 바인딩된다. 특정 AZ에서 ENI를 생성하면 해당 AZ에만 바인딩할 수 있다.

    • ENI가 매핑되어 있는 특정 인스턴스에 문제가 생겼다면, 해당 ENI를 다른 인스턴스에 매핑하도록 변경해 사설 IP를 다른 인스턴스로 이동시킬 수 있다. 이를 통해 장애 조치를 할 수 있다.

  • EC2 Enhanced Networking(SR-IOV)

    • 넓은 대역폭, 높은 PPS(Packet Per Second), 낮은 지연시간을 지원한다.

    • Elastic Network Adapter(ENA)를 사용하면 네트워크 속도를 100Gbps까지 올려준다.

    • Intel의 82599VF를 사용하면 네트워크 속도를 최대 10Gbps까지 올려준다. (Legacy)

  • Elastic Fabric Adapter(EFA)

    • HPC, 고성능 컴퓨팅을 위해 개선된 ENA이다.

    • Message Passing Interface(MPI) 표준을 사용한다.

    • Linux에서만 사용 가능하며, Linux OS를 우회하여 안정적이고 지연시간이 더 짧은 송신을 보장한다.

    • 노드 간 소통이나 밀집된 워크 로드 처리(ex. 분산 계산)에 적합하다.

Last updated