EC2
EC2 (Elastic Compute Cloud) --- Iaas
- EC2 는 가상 머신을 임대하는 것 -> EC2 Instance
- EC2 Instance 의 데이터를 가상 드라이브 또는 EBS 볼륨에 저장할 수 있다
- 로드는 ELB로 분산시킬 수 있으며, ASG 로 확장할 수 있다.
- 성능과 코어의 양도 선택할 수 있다. -> CPU 개수를 선택할 수 있다.
- 메모리 양도 선택할 수 있다 -> RAM 의 양
- Network 접근 Storage -> EBS & EFS
- 하드에어 Storage - > EC2 Instance Store
- EC2 Instance 의 방화벽 규칙 -> 보안그룹
EC2 Instance 보안그룹
- IP 주소를 기준으로 규칙 설정
- 외부에서 EC2 인스턴스로 들어가는 것이 허용되는지(인바운드 트래픽), EC2 인스턴스가 일부 아웃바운드 트래픽을 수행할 수 있는지 -> 즉, 인터넷으로 나가는 것이 허용되는지도 알려준다.
- 보안그룹은 방화벽 -> 포트에 대한 액세스 규제 -> 승인된 IP 범위가 표시 -> IPv4 인지 IPv6 인지
- 보안 그룹 규칙을 살펴보면 Type, Protocol (TCP) , Port(트래픽이 인스턴스에서 통과할 수 있도록 허용하는 것), Source ( IP 주소 범위) 로 돼있다.
여기서 IPv4 와 IPv6 의 차이점은 뭘까?
- 네트워크는 두 종료의 IP 가 있다. ->> IPv4 와 IPv6
- IPv4 는 1.160.10.240 과 같이 네개의 숫자와 세개의 점의 형태로 되어있는 것
- IPv6 는 독특한 숫자 기호와 문자로 이루어진 이상한 문자열 형태로 되어 있다.
- IPv4 는 온라인에서 널리 사용되는 형식, IPv6 는 IoT 에서 많이 쓰이는 형태 AWS 에서는 둘 다 지원
- IPv4는 [0-255].[0-255].[0-255].[0-255] 형태
Public IP 와 Private IP 와 Elastic IP
- Public IP : 인터넷 전역에 액세스 할 수 있다.
- Private IP : Private 네트워크 내에서만 액세서 할 수 있다. --> Internet Gateway 를 통해서
- Private IP는 오직 Private Network 안에서만 식별될 수 있다. 따라서 IP 가 Private Network 안에서만 유일하면 된다. 즉, 두 개의 다른 Private Network 에서는 같은 Private Ip 를 가질 수 있다는 말
- Elastic IP : EC2 인스턴스를 시작하고 중지할 때 Public IP 를 바꿀 수 있다. (공용 IPv4)
--> 즉, 어떤 이유에서든 인스턴스에 고정된 Public IP를 사용하면, Elastic IP 가 필요하게 될 것 이다. - Elasatic IP 는 주소가 탄력적이므로, 인스턴스 이동을 빠르게 함으로써 인스턴스 또는 소프트웨어의 오류를 마스킹할 때 사용할 수 있지만, 계정당 Elastic IP 를 5개만 쓸 수 있다. 따라서 AWS 에 개수 증가를 요청할 수 는 있지만, 이렇게 사용할 일은 드물고, 결론적으로 Elatic IP 는 사용하지 않는게 좋다
EC2 배치 그룹 : EC2 인스턴스가 AWS 인프라에 배치되는 방식을 제어하고자 할 때 사용
- 배치 그룹을 사용하여 EC2 인스턴스가 각각 어떻게 배치되기를 원하는지에 대한 전력을 사용할 수 있다. ( AWS 의 하드웨어와는 직접적인 상호 작용을 하지는 않는다.)
배치 그룹을 생성할 때의 3가지 전략
1. Cluster ---- 클러스터 배치 그룹 : 단일 가용 영역 내에서 지연 시간이 짧은 하드웨어 설정으로 인스턴스를 그룹화한다.
-> 높은 성능 제공하지만, 위험 부담이 높다.
- 모든 EC2 인스턴스가 동일한 가용 영역에 있다.
- 모든 인스턴스 간에 초당 약 10GB 의 대역폭을 확보하여 향상된 네트워킹을 활성화할 수 있다. >>> 지연 시간이 짧고, 처리량이 많은 네트워크를 확보할 수 있다.
- 사용 시 단점 : 가용 영역에 장애가 발생하면 모든 인스턴스가 동시에 장애를 일으킨다.
- 매우 빠른 네트워킹으로 매우 빠르게 완료해야 하는 빅데이터 작업 또는 애플리케이션의 각 인스턴스 간에 지연 시간이 매우 짧고 처리량이 많은 네트워크가 필요한 애플리케이션 일 때 사용
2. Spread ---- 분산 배치 그룹 : 인스턴스가 다른 하드웨어에 분산된다는 의미
-> 가용 영역별로 분산된 배치 그룹당 7개의 EC2 인스턴스만 가질 수 있다는 제한사항이 있다. --> 크리티컬 애플리케이션이 있는 경우 분산 배치 그룹을 사용한다.
- 분산 배치 그룹은 실패 위험을 최소화하려고 한다.
따라서 이 경우 EC2 인스턴스가 다른 하드웨어에 위치하게 된다. - 그림에서 3개의 가용 영역과 6개의 EC2 가 있고 각 EC2 인스턴스는 서로 다른 하드웨어에 있다.
-> 이 말은, 여러 가용 영역에 걸쳐 있을 수 있으며, 동시 실패의 위험이 감소한다는 것 이다.
-> 즉, Hardware 1 이 실패하더라도 Hardware 2 가 실패하지 않을 거라 확신할 수 있기 때문. - 따라서 한 배치그룹에 있는 2개의 인스턴스가 동시에 실패할 위험을 분리한 것 이것이 분산 배치 그룹이다.
- 단점: 배치 그룹의 규모에 제한이 있다. -> 가용 영역당 7 개의 인스턴스로 제한된다.
--> 따라서 크기가 적당하지만 너무 크지는 않은 그런 애플리케이션에서 사용할 수 있따.
3. Partition ---- 분할 배치 그룹 : 분산 배치 그룹과 비슷하게 인스턴스를 분산하려는 것
- 다만 이건 여러 파티션에 인스턴스가 분할되어 있고, 이 파티션은 가용 영역 내의 다양한 하드웨어 랙 세트에 의존한다. 즉, 인스턴스가 여전히 분산되어 있지만 다른 실패로부터 격리되지 않았다는 것
- 파티션은 다른 오류 파티션가 격리되어야 한다. >>>> 즉, 그룹당 수백 개의 EC2 인스턴스를 통해 확장할 수 있고 이를 통해 Hadoop, Cassandra, Kafka 와 같은 애플리케이션을 실행할 수 있다.
- 가용 영역당 최대 7개의 파티션이 있을 수 있으며, 각 파티션에는 많은 EC2 인스턴스가 있을 수 있다.
- 분할 배치 그룹에서 파티션은 AWS 의 랙을 나타낸다 -> 파티션이 많으면 인스턴스가 여러 하드웨어 랙에 분산되어 서로 랙 실패로부터 안전하다.
----> 따라서 가용 영역당 7개의 파티션이 있을 수 있고, 이러한 파티션은 동일한 리전의 여러 가용 영역에 걸쳐 있을 수 있다. 설정으로 최대 수백개의 EC2 인스턴스를 얻을 수 있다. - 사용 사례 : HDFS, HBase, Cassandra, Apache Kafka 를 사용하여 파티션을 인식하는 빅데이터 애플리케이션이 될 수 있다.