Private vs Public vs Elastic IP
네트워크에는 두 종류의 IP가 있다. (IPv4, IPv6)
- IPv4 : 127.0.0.1
- IPv6 : 2001:0db8:85a3:08d3:1319:8a2e:0370:7334
현재 온라인에서 가장 많이 사용하는 것은 IPv4 이다.
IPv6은 IoT 즉, 사물 인터넷에서 사용한다.
Public IP
- 공용 IP는 기기가 인터넷 상에서 식별될 수 있음을 의미한다. (WWW)
- 공용 IP는 전체 웹에서 유일한 것이다. 즉, 두 개 이상의 기기가 같은 공용 IP를 가질 수 없다.
Private IP
- 사설 네트워크 안에서만 식별 가능
- IP가 사설 네트워크 안에서만 유일한 것이면 된다.
- NAT 장치와 프록시 역할을 할 인터넷 게이트웨이를 통해 인터넷에 연결된다.
- 지정된 범위의 IP만 사설 IP로 사용될 수 있다.
Elastic IP
- EC2 인스턴스를 시작하고 중지할 때 공용 IP를 바꿀 수 있다.
- Elastic IP를 사용하면 한 인스턴스에서 다른 인스턴스로 빠르게 이동함으로써 인스턴스 또는 소프트웨어의 오류를 마스킹할 때 사용할 수 있다.
- AWS에 개수 증가를 요청할 수는 있지만 그렇게 사용하지는 않는다.
- 탄력적 IP는 사용하지 않는 것이 좋다.
- 매우 좋지 않은 구조적 결정으로 언급된다.
- 대신 임의의 공용 IP를 써서 DNS 이름을 할당하는 것이 좋다.
AWS EC2
- 기본적으로 내부 AWS 네트워크엔 사설 IP를 쓰고 WWW엔 공용 IP를 사용한다.
- EC2 기기에 SSH를 할 땐 사설 IP를 사용할 수 없다.
Placement Groups (배치 그룹)
- EC2 인스턴스가 AWS 인프라에 배치되는 방식을 제어할 때 사용
- AWS의 하드웨어와 직접적인 상호 작용을 하지는 않음
- EC2 인스턴스가 각각 어떻게 배치되기를 원하는지 AWS에 알려줌
배치 그룹 전략
- Cluster (클러스터 배치 그룹)
- 단일 가용 영역(Availability Zone) 내에서 지연 시간이 짧은 하드웨어 설정으로 인스턴스를 그룹화
- 높은 성능을 제공하지만 위험 또한 높음
- Spread (분산 배치 그룹)
- 인스턴스가 다른 하드웨어에 분산된다는 의미
- 가용 영역별로 분산된 배치 그룹당 7개의 EC2 인스턴스만 가질 수 있다는 제한사항이 있음
- Partition (분할 배치 그룹)
- 여러 파티션에 인스턴스가 분할되어 있고 이 파티션은 가용 영역 내의 다양한 다으웨어 랙 세트에 의존한다.
- 인스턴스가 여전히 분산되어 있지만 다른 실패로부터 격리되지 않음
Cluster
- 장점
- 10GB 속도 정도의 네트워크를 원하기 때문에 동일한 랙에 배치
- 단점
- 랙에 실패가 발생하면 즉 하드웨어에 실패가 발생하면 모든 EC2 인스턴스가 동시에 실패함
- 사용 예
- 매우 빨리 완료되어야 할 빅데이터 작업
- 극히 짧은 지연 시간과 높은 네트워크 처리량을 필요로 하는 애플리케이션에 대한 요청이 있을 경우
Spread
- 장점
- 여러 가용 영역에 걸쳐 있을 수 있다.
- 동시 실패의 위험이 감소한다.
- 단점
- 배치 그룹의 가용 영역당 7개의 인스턴스로 제한이 있다.
- 사용 예
- 가용성을 극대화하고 위험을 줄여야 하는 애플리케이션
- 인스턴스 오류를 서로 격리해야 하는 크리티컬 애플리케이션
Partition
가용 영역당 최대 7개의 파티션이 있을 수 있다.
동일한 리전의 여러 가용 영역에 걸쳐 있을 수 있다.
설정으로 최대 수백 개 EC2 인스턴스를 얻을 수 있다.
인스턴스와 파티션은 다른 파티션의 인스턴스와 동일한 하드웨어 물리적 랙을 공유하지 않으므로 각 파티션은 실패로부터 격리된다.
사용 예
- 파티션들 전반에 걸쳐 데이터와 서버를 퍼뜨려 두도록 파티션 인식 가능한 애플리케이션
- HDFS, HBase, Cassandra, Kafka를 사용하여 파티션을 인식하는 빅 데이터 애플리케이션
Elastic Network Interfaces (ENI)
VPC의 논리적 구성 요소이며 가상 네트워크 카드를 나타낸다.
EC2 인스턴스가 네트워크에 액세스 할 수 있게 해준다.
속성
- 주요 사설 IPv4와 하나 이상의 보조 IPv4를 가질 수 있다.
- 각 ENI는 사설 IPv4당 탄력적 IPv4를 갖거나 혹은 하나의 공용 IPv4를 가질 수 있으므로 사설 및 공용 IP가 한 개씩 제공된다.
- ENI에 하나 이상의 보안 그룹을 연결할 수 있다.
- Mac Address 및 기타 항목을 연결할 수 있다.
EC2 인스턴스와 독립적으로 ENI를 생성하고 즉시 연결하거나 장애 조치를 위해 EC2 인스턴스에서 이동시킬 수 있다.
ENI는 특정 가용 영역 즉 AZ에 바인딩 된다.
- 특정 AZ에서 ENI를 생성하면 해당 AZ에만 바인딩 할 수 있다.
EC2 Hibernate
- EC2를 중지(Stop) 할 경우
- 디스크의 데이터가 EBS 볼륨인 경우 다음 시작을 위해 그대로 유지된다.
- EC2를 종료(Terminate) 할 경우
- 루트인 EBS 볼륨의 모든 데이터가 인스턴스와 함께 소실되도록 설정되어 있으면 손실된다.
- 보조 드라이브로 연결된 EBS 볼륨이고 인스턴스가 종료될 때 소실되지 않도록 설정되어 있으면 데이터는 보존된다.
- EC2를 Start 할 경우
- 처음 시작할 경우 : 운영체제가 부팅 되고 EC2 User Data에서 스크립트를 실행한다.
- 중지했다가 다시 시작할 경우 : 운영체제만 부팅된다.
- EC2 인스턴스에 내부 캐시가 있는 경우 캐시가 워밍업 된다.
- 애플리케이션이 시작되는 속도가 느리거나 캐시가 워밍업되는 속도가 느린 경우 시간이 걸린다.
- EC2를 절전모드(Hibernate)를 사용할 경우
- 메모리(RAM) 상태가 보존된다.
- 절전 후 인스턴스를 재시작하면 인스턴스 부팅이 훨씬 빨라진다.
- RAM의 전체 상태는 루트 EBS 볼륨에 덤프되어서 루트 볼륨을 암호화해야 한다.
- 사용 사례
- 장기 실행 프로세스를 계속 실행하려는 경우
- RAM 상태를 저장하려는 경우
- 초기화하는 데 시간이 많이 걸리는 서비스가 있는 경우
EC2 Hibernate 특징
- 지원하는 인스턴스
- C, M, R로 시작하는 인스턴스
- 인스턴스 RAM 크기가 150GB 미만이어야 한다.
- 베어 메탈 인스턴스에는 지원되지 않는다.
- 현재 지원하는 AMI는 Amazon Linux 2, Linux AMI, Ubunt, Windows가 있다.
- 루트 볼륨
- EBS 볼륨이어야 한다.
- 인스턴스를 저장할 수 없으며 암호화되어야 한다.
- 전체 RAM 크기의 덤프를 지원할 만큼 충분히 커야 한다.
- 온디맨드, 예약 인스턴스에만 사용할 수 있으나 스팟 인스턴스에는 쓸 수 없다.
- 60일 이상 절전모드로 전환할 수 없다.
EC2 Nitro
- 차세대 EC2 인스턴스의 기본 플랫폼
- 새로운 가상화 기술을 사용하고 있다.
- HPC(고성능 컴퓨팅)과 IPv6 지원과 같은 개선된 네트워킹 옵션을 제공한다.
- 더 빠른 속도의 EBS 볼륨을 제공한다.
- 64,000 IOPS의 EBS 볼륨을 원하면 Nitro가 필요하다.
- Nitro가 없는 EC2 인스턴스는 최대 32,000 IOPS만 제공된다.
- 더 나은 기본 보안과 기타 여러 가지 개선 사항을 제공받을 수 있다.
- 비용 절감과 더 나은 성능을 위해 최신 유형의 인스턴스를 사용하는 것이 권장된다.
vCPU
- EC2 인스턴스는 CPU 한 개에서 여러 개의 스레드가 실행될 수 있다.
- 각 스레드는 AWS에서 vCPU 즉 Vitusl CPU로 표시된다.
'프로그래밍 > AWS Solutions Architect' 카테고리의 다른 글
AWS SAA - Elastic Load Balancer(ELB) (0) | 2022.05.12 |
---|---|
AWS SAA - Scalability & High Availability (0) | 2022.05.12 |
AWS SAA - EC2 Instance Storage (0) | 2022.05.12 |
AWS SAA - EC2 (0) | 2022.05.11 |
AWS SAA - IAM (0) | 2022.05.09 |