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 등에 많이 사용된다.
- 클러스터(Cluster): 단일 가용 영역에서 인스턴스를 지연 시간이 짧은 그룹으로 클러스터링한다.
탄력적 네트워크 인터페이스 (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 |