본문 바로가기

Infrastructure/Certificate

[SAA] EC2 Associate

EC2 Associate

이번 장에서는 SAA를 준비하며 Associate 수준의 EC2에 대해서 알아보도록 한다.

Private vs Public IP (IPv4)

  • 네트워킹에는 두 가지 종류의 IP가 있다.
    • IPv4: aaa.bbb.ccc.ddd
    • IPv6: aaaa:bbbb:cccc:dddd:eeee:ffff:gggg
  • IPv4의 고갈 문제로 IPv6가 등장하였지만 아직도 IPv4가 많이 사용되고 있다.
  • IPv6는 IoT(사물 인터넷)의 문제를 해결하는 비교적 최근에 나온 기술이다.

  • 공용(Public) IP는 머신이 인터넷(WWW)에서 식별될 수 있음을 의미하며 전체 웹상에서 고유해야 한다.
  • 공용 IP를 통해서 쉽게 지리적 위치를 찾을 수 있다.
  • 사설(Private) IP는 머신이 사설 네트워크에서만 식별될 수 있음을 의미하며, IP는 사설 네트워크에서 고유해야 한다. 그러나 서로 다른 사설 네트워크에는 동일한 사설 IP를 가질 수 있다.
  • NAT + 인터넷 게이트웨이(프록시)를 사용하여 컴퓨터가 WWW에 연결하고, 지정된 범위의 IP만 사설 IP로 사용할 수 있다.

탄력적(Elastic) IP

  • 인스턴스 생성 시 자동으로 할당받은 공용(Public) IP는 EC2 인스턴스를 중지했다가 시작하면 공용 IP가 변경된다.
  • 인스턴스가 재실행되더라도 IP 주소가 변경되는 것을 방지하기 위해서는 탄력적 IP를 사용해야 한다.
  • 인스턴스의 ENI(Elastic Network Interface)에 Elastic IP 주소를 연결하면 EC2 인스턴스를 다시 시작하더라도 동일한 IP주소로 접속할 수 있다.
  • 탄력적 IP 주소를 사용하면 해당 주소를 계정의 다른 인스턴스에 빠르게 다시 매핑하여 인스턴스 또는 소프트웨어의 장애를 마스킹할 수 있다.
  • 하나의 AWS 계정에는 5개의 탄력적 IP만 할당되며 더 필요한 경우에는 AWS에 요청해야 한다.
  • 일반적으로 아래와 같은 이유로 탄력적 IP 사용은 권장되지 않는다.
    • 종종 잘못된 아키텍쳐 결정을 반영한다.
    • 대신 임의의 공용 IP를 사용하고 여기에 DNS 이름을 등록한다.
    • 일반적으로 로드밸런서를 사용하기 때문에 공용 IP는 사용되지 않는다.

배치(Placement) 그룹

  • 때때로 인스턴스가 실행되는 위치를 결정하기 위한 전략을 사용해야 할 때가 있으며, 이러한 경우 배치 그룹(Placement Groups)을 사용하여 정의 할 수 있다.
  • 배치 그룹을 생성할 때 그룹에 대해 세 가지 전략 중 하나를 지정할 수 있다.
    • 클러스터(Cluster): 단일 가용 영역에서 인스턴스를 지연 시간이 짧은 그룹으로 클러스터링한다.
      • 장점(Pros): 동일한 지역에 있기 때문에 대역폭의 저지연 네트워킹이 가능하다.
      • 단점(Cons): 랙이 종료되면 모든 인스턴스가 동시에 종료되므로 고가용성을 유지하기 어렵다.
      • 사용 사례(Use case): 빠르게 완료되어야 하는 빅데이터 작업, 매우 짧은 대기 시간과 높은 네트워크 처리량이 필요한 애플리케이션
    • 분산(Spread): 하드웨어를 공유하지 않는 파티션 단위로 분산한다. (AZ 그룹당 최대 7개의 인스턴스)
      • 장점: 인스턴스가 서로 다른 물리적 하드웨어에 있기 때문에 고가용성을 유지하기 쉽다.
      • 단점: 가용지역 당 7개의 인스턴스로 제한되어 있다.
      • 사용 사례: 고가용성이 요구되는 애플리케이션, 실패로부터 서로 격리되어야 하는 애플리케이션
    • 파티션(Partition): 인스턴스 그룹을 별개의 서버 랙 단위로 분할한다. 그룹당 100개의 EC2 인스턴스로 확장할 수 있다.
      • 가용지역 당 최대 7개의 파티션이 있을 수 있다.
      • 파티션끼리는 서로 다른 하드웨어를 사용하기 때문에 하나의 하드웨어에 장애가 발생하더라도 다른 파티션에 영향을 주지 않는다.
      • HDFS, HBase, Cassandra, Kafka 등에 많이 사용된다.

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

  • ENI는 가상 네트워크 카드를 나타내는 VPC의 논리적 구성요소로 인스턴스에 연결되어 네트워크 통신을 하는 역할을 한다. 인스턴스에는 추가로 여러 개의 네트워크 인터페이스가 연결 가능하다.
  • ENI는 아래와 같은 속성을 가질 수 있다.
    • 기본 프라이빗 IPv4, 하나 이상의 보조 IPv4
    • 프라이빗 IPv4당 하나의 탄력적 IP(EIP)
    • 하나의 퍼블릭 IP
    • 하나 이상의 보안 그룹
    • 하나의 MAC 주소
  • ENI를 독립적으로 생성하고 장애 조치를 위해 인스턴스에 즉시 연결할 수 있다.
  • ENI는 특정 가용 영역내에서만 사용된다.

최대 절전 모드(Hibernate)

  • 인스턴스가 “중지”되는 경우 디스크의 데이터(EBS)는 다음 시작 시 그대로 유지된다. 하지만 “종료”되는 경우 EBS가 삭제되도록 설정되어 있다면 삭제된다.
  • 인스턴스가 실행될 때 아래의 작업이 실행된다.
    • OS가 부팅되고 EC2 사용자 데이터 스크립트가 실행된다.
    • 이후 애플리케이션이 시작되고 캐시가 워밍업되며 시간이 걸릴 수 있다.

  • EC2 Hibernate의 경우 인메모리(RAM)의 상태가 유지되기 때문에 인스턴스의 부팅 속도가 훨씬 빨라진다. “OS가 정지 및 재시작 되지 않음”을 의미한다.
  • “Under the hood”는 RAM의 상태가 EBS 볼륨의 파일에 기록되는 것을 의미하며, EBS 볼륨은 암호화되어 있어야 한다.
  • EC2 Hibernate의 경우 아래와 같은 경우에 사용된다.
    • 오랜 기간 실행되어야 하는 작업
    • RAM의 상태가 저장되어야 하는 작업
    • 인스턴스가 빠르게 초기화되어야 하는 작업
  • EC2 Hibernate의 경우 모든 인스턴스에서 지원하지는 않으며, 인스턴스의 RAM 용량이 150GB 미만이어야 한다.
  • 베어메탈 인스턴스의 경우 Hibernate를 지원하지 않으며, Amazon Linux 2, Linux AMI, Ubuntu , Windows에서 지원한다.
  • 루트 볼륨은 반드시 암호화된(Encrypted) EBS여야 하며 RAM의 내용을 저장할 수 있는 만큼의 대용량이어야 한다.
  • 온디맨드 및 예약 인스턴스에 사용 가능하지만 60일 이상 hibernate 모드로 전환될 수 없다.

Nitro

  • 차세대 EC2 인스턴스를 위한 기본 플랫폼으로 새로운 가상화 기술을 제공한다.
  • 더 나은 네트워킹 옵션(향상된 네트워킹, HPC, IPv6 등)과 보안 기술을 제공한다.
  • 대표적으로 아래와 같은 인스턴스 유형이 있다.
    • C5, C5a, C5ad, C5d, C5n, C6g, C6gd, C6gn
    • D3, D3en
    • G4
    • I3en
    • Inf1
    • M5, M5a, M5ad, M5d, M5dn, M5n

vCPU

  • 하나의 CPU에서 멀티 스레딩을 통해서 여러 스레드를 실행할 수 있다.
  • 각 스레드는 가상 CPU를 의미하는 vCPU로 표시된다.
  • 아래의 이미지를 예시는 총 8개의 vCPU로 CPU당 스레드가 2개 할당되어 있다.

  • 경우에 따라 vCPU 옵션을 변경해야 할 수도 있다.
    • CPU 코어의 수를 줄여 높은 RAM과 적은 수의 CPU를 사용할 수 있고, 라이선스 비용을 절감할 수 있다.
    • 고성능 컴퓨팅 워크로드에 유용하도록 코어당 스레드의 수를 줄여서 멀티스레딩을 비활성화할 수 있다.
  • vCPU 설정은 인스턴스 시작 중에만 지정할 수 있다.

용량 예약(Capacity Reservations)

  • 필요할 때 용량 예약을 통해 EC2 용량을 확보할 수 있다.
  • 수동 또는 계획된 종료 날짜를 지정하여 예약을 할 수 있으며 약정이 불필요하다.
    단, 예약되는 즉시 비용이 청구된다.
  • 아래와 같은 속성을 지정할 수 있다.
    • 용량을 예약할 단 하나의 가용영역
    • 용량을 예약할 인스턴스의 수
    • 인스턴스 유형, 테넌시 및 플랫폼/OS를 포함한 인스턴스 속성
  • 예약 인스턴스 및 Savings Plan과 결합하여 비용을 절감할 수 있다.

참고 자료

'Infrastructure > Certificate' 카테고리의 다른 글

[SAA] High Availability and Scalability: ELB  (0) 2022.11.01
[SAA] EC2 Instance Storage  (0) 2022.11.01
[SAA] EC2 Basics  (0) 2022.11.01
[SAA] IAM & AWS CLI  (0) 2022.11.01
[SAA] About AWS  (0) 2022.11.01