[SAA] Amazon EC2 (Amazon Elastic Compute Cloud) - 2

SMALL

1. Private IP VS Public IP (IPv4)

  • 네트워킹
    • IPv4: 1.160.10.240 (일반적인 곳) [0-255]:[0-255]:[0-255]:[0-255] (37억개 가량)
    • IPv6: 3ffe:1900:4545:3:200:f8ff:fe21:67cf (사물인터넷 IoT에 많이 쓰임)
  • Public IP
    • Public IP 끼리는 서로 통신 가능
    • 기기가 인터넷(www)에 식별되는 것이므로 유일해야 함, 지역 주소 추적 가능
  • Private IP
    • 사설 네트워크 망 내에서만 통신할 수 있고 외부와 통신하려면 Public IP를 가진 게이트웨이를 거쳐 통신
    • Private 망 내에서만 유일하면 됨
    • 기기는 NAT + Internet Gateway(proxy)를 이용하여 www 인터넷으로 연결- Permissions
  • Elastic IP
    • EC2 인스턴스를 중지하고 다시 시작하면 해당 인스턴스의 퍼블릭 IP가 변경될 수 있음
    • 인스턴스에 고정된 Public IP가 필요한 경우, 탄력적 IP가 필요
    • 탄력적 IP는 삭제하지 않는 한 사용자가 소유하고 있는 퍼블릭 IPv4
    • 1:1 관계로 인스턴스와 탄력적 IP 연결 가능
    • 인스턴스나 소프트웨어의 오류를 빠르게 대처하여 주소를 계정 내 다른 인스턴스에 매핑 가능
    • 계정당 5개의 Elastic IP만 사용 가능 (요청시 증가 가능)
    • 탄력적 IP는 비추천
      • 매우 좋지 않은 구조적 결정으로 언급됨
      • 임의의 Public IP를 사용하여 DNS 이름을 할당하는 것을 추천
      • 혹은 로드밸런서를 사용하여 Public IP를 사용하지 않는 방법도 있음

2. EC2 배치 그룹(Placement Group)

  • EC2 인스턴스가 AWS 인프라에 위치하는 것을 제어
  • 전략
    • 클러스터(Cluster): 단일 가용 영역 내에서 지연 시간이 짧은 하드웨어 설정으로 인스턴스를 그룹화
      • 우수한 네트워크 (인스턴스간 10Gbps 대역폭)
      • Same Rack(하드웨어), Same AZ(인스턴스간 거리가 가까우므로 네트워크 성능 극대화)
      • 하드웨어 문제 발생 시 모든 실패가 전파
      • 빨리 수행해야 하는 빅데이터나 좋은 응답속도로 고효율 업무를 수행해야 할 때 이용
    • 분산(Spread): 인스턴스를 다른 하드웨어에 분산(AZ당 7개의 인스턴스 그룹), 크리티컬한 앱일 경우 사용
      • 실패 위험을 최소화 하기위해 모든 EC2 인스턴스가 다른 하드웨어에 배치
      • 그룹 규모에 제한 (AZ당 7개)
      • 가용성을 극대화하고 위험성을 최소화해야하는 크리티컬한 애플리케이션에 사용
    • 파티션(Partition): 분산 배치 그룹과 비슷하게 인스턴스 분산, 하나의 가용 영역 내에 다양한 파티션(다양한 하드웨어 렉 세트)에 인스턴스 분산
      • EC2 인스턴스 그룹 당 수백 개의 인스턴스로 확장 가능
      • 배치 그룹 내 파티션이 동일한 렉을 공유하지 않으므로 하드웨어 장애의 영향을 격리 가능
      • EC2가 어느 파티션에 있는지 알기 위해 메타데이터 서비스를 이용해 접근 및 확인 가능
      • 빅데이터 애플리케이션으로 Hadoop, Cassandra, Kafka 에 사용

3. Elastic Network Interface(ENI)

  • 탄력적 네트워크 인터페이스, EC2 인스턴스가 네트워크에 액세스 할 수 있도록 하는 인터페이스
  • 가상 네트워크 카드를 나타내는 VPC의 논리적 구성 요소
  • ENI는 아래의 속성이 포함될 수 있음
    • VPC의 IPv4 주소 범위 중 기본 프라이빗 IPv4 주소
    • VPC의 IPV4 주소 범위 중 하나 이상의 보조 Private IPv4 주소
    • Private IPv4 주소당 한개의 탄력적 IP주소
    • 한 개의 Public IPv4 주소
    • 한개 이상의 IPv6 주소
    • 하나 이상의 보안 그룹
    • MAC 주소
  • EC2 인스턴스와 독립적으로 ENI를 생성하고 즉시 연결학나 장애 조치를 위해 ENI를 EC2 인스턴스에서 이동 가능
  • 특정 가용 영역에 바인딩 (다른 AZ에 있는 EC2 인스턴스에 ENI 연결 불가)
  • 인스턴스 2개를 한번에 띄우면 각 인스턴스는 각각의 ENI를 가짐
  • 새로운 ENI를 만들어 2개 인스턴스들의 Secondary ENI로 만들 수 있음
  • 인스턴스를 꺼도 직접 만든 ENI는 삭제되지 않음(default 만 삭제)

4. EC2 Hibernate (절전 모드)

  • 기존 인스턴스의 생리
    • stop: 디스크 내 데이터(EBS)는 유지되어 다음 시작 때 다시 사용, the data on disk (EBS) is kept intact in the next start
    • terminate: EBS Volumn은 삭제되고 잃어버린다. any EBS volumes (root) also set-up to be destroyed is lost
    • 기존 start 과정: OS 부팅 & EC2 User Data Script 실행 -> application 실행 -> chace warm up -> wait
  • 절전모드
    • in-memory(RAM) 보존
    • 인스턴스 부팅이 훨씬 빠르다
    • RAM 상태가 root EBS 볼륨에 사용, EBS 볼륨 암호화 필요(인스턴스 스토어 볼륨 X)
    • 사용 예시
      • 실행중인 인스턴스를 Hibernate 모드로 변경
      • EC2 인스턴스 Stopping & RAM의 내용이 EBS 볼륨에 dump
      • EC2 인스턴스 Stopped & RAM 내용 삭제됨
      • 인스턴스 재시작시 디스크에서 RAM을 불러와 EC2 인스턴스 메모리로 복구
      • 정지된적 없었던 것처럼 복구
        • 용례
      • 오래 실행하는 프로세스를 가지고 중지하지 않을 때
      • RAM 상태를 저장하고 싶을 때
      • 빠르게 재부팅을 하고 싶을 때
      • 초기화에 시간이 오래 걸리는 서비스
LIST