EBS

Jihun Kim·2022년 3월 13일
0

aws solutions architect

목록 보기
24/57
post-thumbnail

EBS

  • 인스턴스가 동작하는 동안 네트워크 드라이브에 부착할 수 있는 볼륨(스토리지)이다.
  • 인스턴스가 종료된 뒤에도 데이터가 유지될 수 있도록 만들어 준다.
    - 따라서, 인스턴스를 재시작 할 경우 해당 볼륨을 그대로 이용하면 데이터를 유지할 수 있다.
  • 한 번에 한 인스턴스에만 마운트 될 수 있다.
    - 하지만 한 인스턴스에 여러 볼륨이 붙는 것은 가능하다(한 컴퓨터에 여러 개의 USB를 꽂을 수 있는 것과 같은 이치이다).
  • EBS 볼륨을 생성하면 특정 AZ에 묶이게 되어 여러 AZ에서 사용할 수는 없다.
    - 만약 스냅샷을 이용한다면 여러 AZ에서 사용할 수도 있을 것이다.
  • 네트워크 USB 스틱이라고 생각하면 된다!
  • 프리티어의 경우 30GB의 무료 저장 공간이 SSD 또는 Magnetic 타입에 월 별로 제공된다.
  • 네트워크 드라이브이다.
    - EC2와 네트워크로 통신하기 때문에 지연 시간이 있을 수 있다.
    - EC2 인스턴스에서 떼어 내서 다른 인스턴스로 빠르게 붙이는 것도 가능하다.
  • 프로비저닝 해서 사용한다.
    - GB의 사이즈, IOPS(Operations per seconds)를 미리 정해야 한다.

Delete on Termination 속성

  • EC2 인스턴스를 생성할 때 설정할 수 있는 속성이다.
  • 인스턴스가 삭제될 경우 default로 root EBS 볼륨은 삭제된다.
    - 하지만 이 속성은 체크 박스를 해제해서 삭제되지 않도록 설정할 수도 있다.

EBS 생성하기

  • EBS를 생성한 후 우클릭 해서 EC2 instance에 attatch할 수 있다.
    - 아래 사진에서 확인할 수 있듯이, 이미 root volume은 인스턴스에 부착 되어 있다.
    - 중요한 것은, 인스턴스와 볼륨이 같은 AZ에 있어야 한다는 것이다.


EBS Snapshot 생성하기

  • 원하는 시점에 대한 EBS 스토리지 스냅샷을 생성할 수 있다.
  • 스냅샷 생성을 위해 인스턴스에서 떼어낼 필요는 없지만 그렇게 하는 것이 권장 된다.
  • 스냅샷으로부터 오리진 볼륨의 AZ 또는 리전이 아닌 다른 곳에 EBS를 생성할 수 있다.


EBS Volume Types

  • gp2 / gp3 (SSD)
    - 다양한 워크로드에 대해 가격과 성능이 균형을 이루는 범용 SSD 볼륨

  • io1 / io2 (SSD)
    - 미션 크리티컬(중요한 비즈니스 앱) 하며 저지연 또는 고처리량 워크로드를 위한 고성능 SSD 볼륨
    - EBS multi-attatch를 지원한다.

  • st1 (HDD)
    - 액세스 빈도가 높은 처리량 집약적 워크로드 용으로 디자인 된 저비용 HDD 볼륨
    - 빅 데이터, DW, log processing 등에 사용하기 좋다.

  • sc1 (HDD)
    - 액세스 빈도가 낮은 워크로드를 위해 설계된 가장 저렴한 HDD 볼륨

EBS 스토리지는 크기/ 처리량/ IOPS(I/O Ops Per Sec)로 특징 지을 수 있다.
부팅 볼륨으로는 gp2 / gp3 (SSD), io1 / io2 (SSD)만 사용할 수 있다. 즉, root Volume으로 사용할 수 있는 것은 이 네가지 볼륨이라는 뜻이다.

32000 이상의 IOPS를 원할 경우 io1 또는 io2를 가진 EC2 Nitro가 필요하다.


EBS Multi-Attatch

  • io1/ io2 volume에서만 사용할 수 있는 속성이다.
  • 동일한 AZ 내에서 세 개의 인스턴스까지 attatch할 수 있다.
  • 각 인스턴스는 해당 volume에 대한 full-read & full-write permission을 가져야 한다.
  • 이 속성을 사용하면 애플리케이션은 고 가용성을 얻게 된다.
  • 이 속성을 사용할 경우 애플리케이션은 concurrent write을 관리해야 한다.
  • cluster-aware 한 EFS를 사용해야 한다.



AMI(Amazon Machine Image)

  • AMI는 EC2 instance에 대한 일종의 사용자 정의이다.
    - 본인이 원하는 소프트웨어, configuration, os, 모니터링 등등을 추가할 수 있다.
    - 미리 패키징 된 소프트웨어를 통해 부팅과 구성을 더 빠르게 할 수 있다.
  • AMI는 특정 리전에 생성 되어 여러 리전으로 복제가 가능하다.
  • EC2 instances는 아래 세 종류의 AMI를 통해 생성할 수 있다.
    - Public AMI(AWS 제공)
    - 본인이 만든 AMI
    - AWS Marketplace AMI: 다른 사람이 만들어 판매하는 AMI

AMI 생성 Process

  • EC2 인스턴스를 실행해 사용자화 한다.
    - 필요한 소프트웨어가 미리 설치되도록 한다.
  • 인스턴스를 중지한다(데이터 무결성을 위해 중지하고 스냅샷을 생성하는 것이 좋다).
  • AMI를 생성한다(백엔드에서 EBS가 스냅샷을 생성하게된다).
  • 위에서 생성한 AMI를 이용해 다른 인스턴스를 런칭 한다.

EC2 instance를 부팅하는 데는 20~30초가 걸린다. 그런데 AMI를 생성하면 부팅하는 데 걸리는 시간이 줄어들게 된다. 왜냐하면, 필요한 소프트웨어가 이미 설치되어 있기 때문이다. 아래와 같이, 생성된 EC2 instance에 우클릭 해서 Create an Image를 선택해 AMI를 생성할 수 있다.

그러면 아래와 같이 인스턴스를 런칭 할 때, 내가 생성한 AMI가 My AMI에 나타나게 된다.

AMI는 특정 AWS 리전용으로 각 리전 마다 고유하게 구축 된다. 다른 AWS 리전의 AMI를 사용하여 EC2 인스턴스를 런칭할 수는 없지만 AMI를 대상 AWS 리전에 복사한 다음 이를 사용하여 EC2 인스턴스를 생성할 수 있다.



EC2 Instance Store

  • 특별한 유형의 인스턴스는 물리적 서버에 연결된 하드 드라이브인 EC2 instance Store를 이용할 수 있다.
    - 버퍼/ 캐시/ 스크래치 데이터/ 임시 컨텐츠 보관에 사용하기 좋다.
  • 데이터를 장기 보관하기 위해서는 EBS가 더 나은 방법이다.
  • 인스턴스를 중단하면 스토리지를 잃게 된다.
    - 일시적인 스토리지이기 때문이다.
  • EC2 instance에 장애가 생길 경우 데이터를 잃을 위험이 있다.
    - instance에 연결된 하드웨어 역시 장애를 입게 되기 때문이다.
  • 높은 I/O 성능을 보인다.
    - EC2 instance에 대한 매우 고성능의 하드웨어 연결 볼륨이다.
  • 인스턴스 타입이 i3.xx인 경우 EC2 instance store를 이용하는 인스턴스이다.


오답노트

profile
쿄쿄

0개의 댓글