EC2는 흔히 생각하는 가상 서버이다.

- OS, CPU Core, Memory, Disk, Network 등을 필요에 따라 설정 가능한 가상 서버

- 프리티어 등급에서는 t2.micro(1 CPU Core, 1 GB Memory 등)을 무료로 사용 가능

 

1. EC2 인스턴스 생성

- EC2 인스턴스 생성에 관한 글은 구글에 살짝 검색하면 멋진 글들이 많아서 생략

 

 

2. EC2 인스턴스 정보

- 인스턴스 목록에서 인스턴스 ID를 클릭하면 상세 정보 확인 가능

* Public IP: 외부에서 해당 인스턴스와 통신할 수 있는 IP

  => 인스턴스 중지 시 IP 변경됨(정적 할당한 경우는 아니겠지만..)

* Private IP: AWS 네트워크 내에서 해당 인스턴스와 통신할 수 있는 IP

  => 인스턴스 중지해도 IP 변경 없음

* 인스턴스 플랫폼

* 사용하는 Key Pair

* 설정되어 있는 보안 그룹 등

 

클릭하면 이미지 커져요

 

3. 배치그룹

ㅇ EC2 배치그룹(Placement Groups)이란?
- EC2가 AWS 인프라에 배치되는 방식을 제어
" AWS에 EC2 인스턴스가 어떻게 배치되길 원하는지 전달"

배치 그룹 유형
1) Cluster: 단일 가용 영역 내 지연 시간이 짧은 h/w 설정
  - 높은 성능을 제공(10GB 속도의 네트워크 요구 등)
  - 랙(H/W)에 문제가 생기면 모든 인스턴스가 동시에 죽음
  - 배치 그룹 내 인스턴스가 동일한 랙에 존재(동일 h/w 및 동일 rack)
  - 고성능 고위험(=> EX 빅 데이터 작업 = 짧은 지연 시간 / 높은 대역폭 )
  
2) Spread(분산): 인스턴스가 다른 h/w에 분산
  - 배치 그룹 당 가용 영역에 최대 7개의 EC2 인스턴스까지 가질 수 있음(= 규모 제한 있음)
  - 죽으면 안되는 가용성이 중요한 APP의 경우 분산 배치 그룹 사용
  - 클러스터 배치 그룹과 완전 반대
  - 모든 EC2 인스턴스가 각각 다른 H/W에 배치
  - 여러 가용 영역, H/W에 배치되어 동시 실패 위험 최소화
   
3) Partition(분할): 여러 파티션에 인스턴스 분할 / 파티션은 가용 영역 내 다양한 Rack에 의존
  - 인스턴스를 논리적 파티션에 분산하여 파티션에 있는 인스턴스가 다른 파티션의 인스턴스와 H/W를 공유하지 않음
    ㄴ 파티션 갯수 = 사용하고 있는 Rack 갯수 (배치 그룹 내 파티션 끼리 동일한 하드웨어 사용 X)
    - 가용 영역당 최대 7개의 파티션 사용 가능(최대 수 백개의 인시던트 구성 가능)
  - Rack 실패에서 안전

  - EC2 인스턴스가 어떤 파티션에 있는지 메타데이터 서비스 사용하여 정보 획득 가능
  - 주로 HDFS, HBase, Cassandra, Kafka, Hadoop, Cassandra, Kafka 등 대규모의 분산 및 복제된 워크로드에 사용 

 

[배치 그룹 생성]

- 좌측 메뉴 '네트워크 및 보안' - '배치 그룹' - '배치 그룹 생성'

 

- 이름, 배치 전략, 태그 등을 작성 후 그룹 생성

 

- 인스턴스에 배치 그룹 설정

   * 배치 그룹 설정은 인스턴스를 생성할 때, 중지된 상태일 때 설정 가능

   * 클러스터 배치는 t2.micro는 지원 불가

 

4. 최대 절전 중지 방식(Hibernate)

- EC2 인스턴스 중지 시, EBS(Root 볼륨/디스크 내 데이터)는 유지
- EC2 인스턴스 종료 시, EBS 사라짐

 

- EC2 인스턴스 시작 시, OS 부팅 시작 -> 사용자 데이터 스크립트 동작 -> APP 실행 -> 캐시 구성
  ㄴ 이렇게 다시 시작하면 시간이 걸린다.
  
EC2 Hibernate가 설정되었다면 RAM에 있던 데이터(휘발성)를 보존 => 즉, 부팅이 더 빨라짐
ㄴ Hibernate는 OS를 완전 중지하거나 다시 시작하는 것이 아닌 잠시 멈춤이기에
ㄴ RAM 데이터를 root EBS 볼륨에 파일로 남겨둔다
   * 조건: root EBS 볼륨은 반드시 암호화 / 볼륨 용량이 충분(남은 EBS > RAM) 해야함

=> 순서 RAM 메모리를 EBS에 덤프 -> 인스턴스 종료 시 RAM 증발 / EBS에 RAM 데이터 존재 -> 인스턴스 실행 시 디스크에서 RAM으로 데이터 로딩

사용하는 경우
- 장기간 실행중인 프로세스를 중지하지 않을 떄
- RAM 상태 저장하고 싶을 떄
- 빠른 재부팅 필요
- 서비스 초기화 시간 없이 절전 모드 전환하고 싶을때

Hibernate 특징

- 다양한 OS 지원, 모든 종류 인스턴스에 사용 가능

- RAM 크기 보다 큰 볼륨 필요
- Bare metal 인스턴스 사이즈는 지원 불가
- 루트 볼륨(즉 EBS)에만 저장 가능 / 암호화 필수 / 인스턴스 스토어 불가 / 충분한 크기
- 절전 모드를 유지할 수 있는 기간 존재

 

- 인스턴스 생성 시, '스토리지 고급 설정' - 충분한 크기(사진 속 인스턴스의 RAM은 1G), 암호화 설정

 

- '고급 세부 정보' - '최대 절전 중지 방식' 설정

 

EC2 인스턴스 구매 옵션 -> 오류 있을

 

수 있음

- 지금까지 사용한 인스턴스는 시간 단위로 비용이 발생
=> 예약 인스턴스(Reserved)를 사용하면 기간은 1년, 3년 장기간의 워크로드를 유지할 경우 좀 더 저렴하게 이용 가능
=> 전환형 예약 인스턴스(Convertible Reserved)은 시간이 지나면 인스턴스 타입을 변경하길 원하는 경우

=> 절약 플랜 
- 기간은 1년 or 3년으로 특정 인스턴스 유형을 약정하는 게 아닌 달러 단위로 특정한 사용향을 약정하여 좀 더 현대적인 방식

=>스폿 인스턴스
- 아주 짧은 원크로드로 아주 저렴하나 인스턴스가 언제든 손실될 수 있어 신뢰성 낮음
=> 전용 호스트는 물리 서버 전체를 예약해서 인스턴스 배치를 제어할 수 있음 
=> 전용 인스턴스는 다른 고객과 하드웨어 공유 X
=> 용량 예약은 원하는 기간 특정한 AZ에 용량 예약 가능

=?> EC2 On Demand
- 리눅스나 윈도우 사용시 1분 이후 초 단위로 청구가 이뤄짐 
- 다른 os는 1시간 단위로 청구
- 비용이 가장 많이 들지만 바로 지불할 금액 x / 약정 
- 단기적이고 중단 없는 워크로드 + APP의 트래픽을 예측 못할 때

=> 예약 인시턴스 
온디맨드에 비해 72% 저렴 
- 특정 인스턴스 속성 예약(인스턴스 타입, 리전, 테넌시, OS 등)
- 예약 기간을 1년 OR 3년(할인 더 만아)
- 결제는 부분 선결제, 선결제 없음, 전부 선결제(할인율 가장 큼)
- 특정한 리전이나 존(Zonal - 특정 AZ에 예약 용량)으로 선택 가능 
- 사용량이 일정한 APP에 예약 인시턴스를 사용하는게 좋음
- 예약 인스턴스를 마켓 플레이스에서 구입 후 필요 없어지면 팔 수 있다.

=> 전환형 예약 인시턴스
- 인스턴스 타입, 인스턴스 패밀리, os, 범위, 테넌시 변경 가능
- 유연성이 더 커서 할인률은 조금 낮아짐

=> Ec2 절약 플랜(Saving Plan)
- 장기간 사용시 할인
- 1년 or 3년 동안 시간당 10달러로 약정
- 사용량이 한도를 넘어서면 온 디맨드 가격으로 청구
- 절약 플랜의 경우 특정한 인스턴스 패밀리, 리전 고정
- 인스턴스 사이즈나 os, 테넌시 등 전환 가능

=> 스팟 인스턴스(Spot)
- 할인률이 가장 큼
- 지불하려는 최대 금액 설정 후 그 금액을 넘어가면 인스턴스 손실
- AWS에서 가장 비용효율적인 인스턴스로 회복력이 있다면 유용
- 배치 작업 / 데이터 분석 / 이미지 처리 / 모든 종류의 분산형 워크로드 / 시작 OR 종료 시간이 유연한 워크로드
- 아주 중요한 작업이나 DB에는 적절치 않음 

=> 전용 호스트
- 오직 나만을 위한 인스턴스 수용력을 가진 물리적 서버
- 컴플라이언스, 서버를 기준으로 할당되는 라이센스(소켓, 코어에 따라) 이슈를 해결
- 전용 호스트는 온디맨드 요금이나 1년 or 3년 예약 가능
- 실제 물리적 서버 예약하기에 가장 비싼 옵션
- raw level의 h/w 가시성 제공

=> 전용 인스턴스
- 오직 내 전용 하드웨어에서 실행되는 인스턴스
- 같은 계정에선 다른 인스턴스와 하드웨어 공유 가능하나 인스턴스 배치에 대한 통제권 없음
- 중지 / 시작 후 하드웨어 옮길 수 있음 

=> EC2 수용력(Capacity) 예약
- 원하는 기간 동안 특정한 AZ에서 온디맨드 인스턴스를 예약
- 필요할 때마다 접근 가능
- 기간 약정은 없어서 언제든 용량을 예약하고 취소 가능
- 청구 할인 없음
- 용량을 예약하는게 유일한 목적
- 할인을 받으려면 지역별 예약 인스턴스나 절약 플랜과 결합 필요
- 예약을 해두면 인스턴스 실행 여부와 상관 없이 비용 청구
- 특정한 AZ에 있어야 하는 단기적이고 중단 없는 워크로드에 아주 적합합니다

<스팟 인스턴스>
=> 스팟 인스턴스는 최대 90& 까지 할인
=> 스팟 인스턴스는 정의된 가격을 초과하면 두 가지 선택 가능
1) 2분의 유예 기간이 있으며 인스턴스를 중지
2) 2분의 유예 기간 동안 인스턴스 회수X => 스팟 블록 사용
=> 스팟 블록은 지정된 기간 동안 스팟 인스턴스를 차단하는 것 / 회수 X 이나 드물게 회수 될 수도

 

'AWS' 카테고리의 다른 글

[AWS] EBS, 스냅샷, AMI, EFS  (0) 2024.04.02
[AWS] IAM  (0) 2024.03.14
[AWS] MFA 적용  (0) 2024.01.18
[AWS] Elastic IP, ENI  (1) 2023.10.10
[AWS] VPC 및 서브넷 생성  (0) 2023.06.14

+ Recent posts