Home AWS SAA chapter 5. AWS EC2 Instance Storage Section
Post
Cancel

AWS SAA chapter 5. AWS EC2 Instance Storage Section

EBS

EBS Volume 이란?

EBS-volume-img

  • Elastic Block Store의 줄임말로 인스턴스가 실행 중인 동안 연결 가능한 네트워크 드라이브이다.
  • EBS 볼륨을 사용하면 인스턴스가 종료된 후에도 데이터를 지속할 수 있다. 인스턴스를 재생성하고 EBS 볼륨을 마운트하면 데이터를 다시 받을 수 있다.
  • CCP 레벨 : 하나의 EBS는 하나의 EC2 인스턴스에만 마운트 가능
  • associate 레벨 : 일부 EBS 다중 연결 가능
  • EBS 볼륨은 특정 가용 영역에서만 사용 가능하다.
  • 네트워크 USB 스틱이라고 생각하면 된다.
  • 물리적인 드라이브가 아닌 네트워크적인 드라이브이다. 즉, 인스턴스와 EBS 볼륨이 서로 통신을 하기 위해서는 네트워크를 필요로 한다.
  • 네트워크가 사용되기 때문에 컴퓨터가 다른 서버에 도달할 때 지연이 생길 수 있다.
  • EC2 인스턴스에서 분리될 수 있고, 다른 EC2 인스턴스와 연결할 수 있다.
  • volume 이기 때문에 용량을 미리 결정해야 한다. 따라서 원하는 양의 GB와 IOPS(단위 초당 전송 수를 미리 지정해야 한다. 이후에 용량을 늘릴 수도 있다)
  • 하나의 EC2 인스턴스에 2개의 EBS 볼륨이 결합하는 것은 가능하다.

EBS - Delete on Termination attribute

  • 인스턴스를 통해 EBS 볼륨을 생성하는 경우 종료 시 삭제라고 하는 속성이 존재한다.
    • root EBS volume은 기본적으로 인스턴스 종료와 함께 삭제되도록 설정되어 있다. 조작을 통해 제어 가능하다.

EBS Snapshots

EBS-snapshot-img

  • EBS 볼륨의 특정 시점에 대한 백업이다.
  • EC2 인스턴스에서 EBS 볼륨을 분리할 필요는 없지만 권장 사항이다.
  • EBS 스냅샷은 다른 가용 영역이나 다른 리전에도 복사할 수 있다.
  • EBS Snapshots Archive
    • 최대 75%까지 저렴한 아카이브 티어로 스냅샷을 옮길 수 있는 기능이다.
    • 스냅샷을 아카이브 티어로 옮기면 아카이브를 복원하는데 24시간에서 최대 72시간이 걸린다.
  • Recycle Bin for EBS Snapshot (EBS 스냅샷 휴지통)
    • EBS 스냅샷을 삭제하는 경우 영구 삭제하는 대신에 휴지통에 넣을 수 있다.
    • 잘못 삭제하는 경우 휴지통에서 복원할 수 있다. 휴지통의 보관 기간은 1일에서 1년 사이로 설정할 수 있다.
  • Fast Snapshot Restore(FSR)
    • 스냅샷을 완전히 초기화해 첫 사용에서의 지연 시간을 없애는 기능이다.
    • 스냅샷이 아주 크고 EBS 볼륨 또는 EC2 인스턴스를 빠르겍 초기화해야 할 때 특히 유용하다. 하지만 비용이 많이든다.

EBS Volume Types

  1. gp2/gp3 : 범용 SSD volume으로 다양한 워크로드에 대해 가격과 성능의 절충안이 되는 옵션이다.
    • 짧은 지연 시간을 갖는 효율적인 비용의 스토리지이다. 크기는 1GB에서 16TB까지 있다.
    • gp3 : 최신 세대의 volume으로 기본 성능으로 3000 IOPS와 초당 125MB의 처리량을 제공한다. (최대는 16000 IOPS, 1000MB 처리량)
    • gp2 : 좀 더 오래된 버전으로 볼륨이 더 작다. 최대 3000 IOPS이다. 볼륨과 IOPS가 연결되어 있어서 IOPS가 증가할 때 (볼륨의 GB 수를 늘릴 때 IOPS도 증가, 3 IOPS per GB. 즉, 5334GB일 때 최대 IOPS이다.)
  2. io1/io2 : 최고 성능의 SSD 볼륨으로 지연 시간이 낮고 대용량 워크로드에 쓰인다.
  3. st1 : 저비용 HDD 볼륨으로 잦은 접근과 처리량이 많은 워크로드에 쓰인다.
  4. sc1 : 가장 비용이 적게 드는 HDD 볼륨으로 접근 빈도가 낮은 워크로드를 위해 설계되었다.
  • EC2 인스턴스에는 gp2/gp3와 io1/io2만이 부팅 볼륨으로 사용될 수 있다.(루트 OS가 실행될 위치)

EBS Volume Types Use cases Provisioned IOPS SSD

  • 프로비저닝을 마친 IOPS는 성능을 유지할 필요가 있는 주요 비즈니스 애플리케이션이나 16000 IOPS 이상을 요하는 애플리케이션에 적합하다.
  • 일반적으로 database workloads에 적합하다.
    • 스토리지 성능과 일관성에 민감하다
  • 이경우 gp2/gp3를 io1 또는 io2 볼륨으로 변경하는 것이 해답이다
  • 4 ~ 16TB를 지원하며 Nitro EC2 인스턴스에서는 최대 64000 IOPS까지 가능하다. 아닌 경우에는 32000 IOPS까지 지원 된다.
  • gp3 처럼 스토리지 크기와는 독립적으로 IOPS를 증가시킬 수 있다.
  • io2는 io1과 동일한 비용으로 내구성과 기가 당 IOPS의 수가 더 높다.
  • io2 block express는 4GB ~ 64TB이다. 최대 256000 IOPS를 가질 수 있다

EBS Volume Types Use cases Hard Disk Drives(HDD)

  • 부팅 볼륨이 될 수 없다.
  • 최대 16TB까지 확장된다.
  • 2가지 종류의 볼륨을 제공한다
    • st1 : 처리량 최적화 HDD로 빅 데이터나 데이터 웨어하우징 로그 처리에 적합하다
      • 최대 처리량은 초당 500MB, 최대 IOPS 500이다
    • sc1 : 콜드 HDD로 아카이브 데이터용으로 접근 빈도가 낮은 데이터에 적합하다. 최저 비용으로 데이터를 저장할 때 적합하다.
      • 최대 처리량은 초당 250mb, IOPS 250이다

EBS volume을 정의하는 요소

  • Size
  • Throughput
  • IOPS(I/O Ops Per Sec : 초당 I/O 작업 수)

EBS Multi-Attach - io1/io2 family

Multi-Attach-volume-img

  • 하나의 EBS 볼륨을 같은 가용 영역에 있는 여러 EC2 인스턴스에 연결할 수 있다.
  • 이러한 기능은 io1과 io2 제품군에서만 사용할 수 있는 기능이다.
  • 각 인스턴스는 고성능 볼륨에 대한 읽기 및 쓰기 권한을 전부 갖는다.
  • 사용 사례 : 애플리케이션 가용성을 높이기 위해 Teradata 처럼 클러스터링된 Linux 애플리케이션에서 사용하거나, 애플리케이션이 동시 쓰기 작업을 관리해야 할 때 사용한다.
  • 해당 가용 영역 내에서만 사용할 수 있다.
  • 한 번에 16개의 EC2 인스턴스만 같은 볼륨에 연결할 수 있다는 점이다.
  • 다중 연결을 실행하려면 반드시 클러스터 인식 파일 시스템을 사용해야 한다. (XFS, EX4와 같은 것은 사용 못한다 : 애네는 윈도우 전용 FSX를 써야된다)

EBS Encryption(EBS 볼륨 암호화)

  • 저장 데이터가 볼륨 내부에 암호화되고
  • 인스턴스와 볼륨 간의 전송 데이터 역시 암호화된다.
  • 스냅샷도 암호화 된다.
  • KMS에서 암호화 키를 생성해 AES-256 암호화 표준을 갖는다.

Encryption: encrypt and unencrypted EBS volume

  • 볼륨의 EBS 스냅샷을 생성하고 복사 기능을 통해 EBS 스냅샷을 암호화 한다.
  • 스냅샷을 이용해 새 EBS 볼륨을 생성하면 해당 볼륨도 암호화 된다.
  • 암호화된 볼륨을 인스턴스 원본에 연결한다.

AMI

AMI이란?

  • Amazon Machine Image를 뜻하는 말로, EC2 인스턴스를 통해 만든 이미지를 통칭한다.
  • AMI로 AWS를 구축할 수 있고, 사용자가 원하는 대로 변경할 수도 있다.
  • AMI에 워하는 소프트웨어 또는 설정 파일을 추가하거나 별도의 운영체제를 설치할 수도 있고, 모니터링 툴을 추가할 수도 있다.
  • AMI를 따로 구성하면, 부팅 및 설정에 드는 시간을 줄일 수 있다.
  • 사용자가 EC2 인스턴스에 설치하고자 하는 모든 소프트웨어를 AMI가 미리 패키징해 준다.
  • AMI를 특정 지역에 구축한 다음 다른 지역으로 복사해서 AWS의 글로벌 인프라를 활용할 수도 있다.
  • AMI에는 여러 종류의 AMI가 있다.
    • Public AMI : AWS에서 제공하는 것(ex : Amazon Linux2)
    • Custom AMI
    • Marketplace AMI

AMI process (from an EC2 instance)

AMI-Process-img

  1. Start an EC2 instance and customize it
  2. Stop the instance(데이터 무결성을 위해)
  3. 이 인스턴스를 바탕으로 AMI를 구축한다(이 과정에서 EBS snapshot이 생성된다)
  4. Launch instances from others AMIs

EC2 Instance Store

  • 더 높은 성능이 필요한 상황이 생겨 EC2 instance에 연결된 하드웨어를 업그레이드 해야될 때가 있다(기존의 EBS volume은 네트워크 드라이브로 연결된 것이기에 성능에 한계가 있다)
  • EC2 인스턴스가 연결된 서버에 물리적으로 연결된 하드웨어 드라이브가 필요해진다. 이때 해당 물리적 서버에 연결된 하드웨어를 EC2 Instance Store라고 부른다.
  • I/O 성능 향상을 경험할 수 있다.
  • 하지만 EC2 인스턴스가 중지 또는 종료되면 해당 스토리지 또한 손실된다. 이러한 이유로 임시 스토리지라고 부른다.
  • 위와 같은 이유로 장기적 데이터를 보관할 만한 기능은 아니다.
  • EC2 인스턴스의 서버에 장애가 발생하면 해당 인스턴스가 연결된 하드웨어에도 장애가 발생하므로 데이터 손실의 위험도 존재한다.
  • 데이터 손실에 대비해 데이터를 백업해두거나 복제해둬야 한다
  • 적절한 사용 사례 : Buffer, Cache, scratch 데이터 또는 임시 콘텐츠를 사용하려는 경우

Amazon EFS - Elastic File System

EFS-img

  • EFS는 관리형 NFS(Network File System)이다.
  • 네트워크 파일 시스템이기 때문에 많은 EC2 인스턴스에 마운트될 수 있다.
    • EC2 인스턴스는 서로 다른 가용 영역에 있을 수 있다.
  • 가용성이 높고 확장성이 뛰어나며 비싸다.(gp2 EBS 볼륨의 약 3배이다)
  • 사용량에 따라 비용을 지불하므로 미리 용량을 프로비저닝할 필요 없다.(파일 시스템은 자동으로 확장된다)
  • 사용 사례 : 콘텐츠 관리, 웹 서빙 데이터 공유, Wordpress
  • 내부적으로 NFS 프로토콜을 사용하며, EFS에 대한 액세스를 제어하려면 보안 그룹을 설정해야 한다.
  • 중요한 점은 윈도우가 아닌 Linux 기반 AMI와만 호환된다는 점이다.
  • KMS를 사용해서 EFS 드라이브에서 미사용 암호화를 활성화할 수 있다.
  • Linux 표준 파일 시스템이기 때문에 Posix 시스템을 사용한다. 또한 표준 파일 API가 존재한다.

EFS - Performance & Storage Classes

  • EFS Scale
    • NFS 사용자 수천명과 10GB 이상의 처리량을 확보할 수 있다.
    • PB 규모의 네트워크 파일 시스템으로 자동 확장할 수 있다.
  • Performance Mode(set a EFS creation time)
    • General Purpose : 지연 시간에 민감한 사용 사례에 사용된다. 웹 서버나 CMS 같은 것
    • Max I/O : 지연 시간이 더 긴 네트워크 파일 시스템이지만, 처리량이 높고 병렬성이 좋다.
      • 빅데이터 애플리케이션이나 미디어 처리가 필요한 경우 유용하다.
    • Throughput Mode
      • Bursting : 1TB이고, 초당 50MB ~ 100MB까지 늘어난다. - Provisioned : 스토리지 크기에 관계없이 처리량을 설정하고 싶은 경우 사용. 스토리지와 처리량을 분리한 모델
      • Elastic(Provisioned) : 워크로드에 따라 처리량을 자동으로 조절 할 수 있다. 워크로드를 예측하기 어려울 때 유용하다. EFS-Storage-Classes
  • Storage Classes
    • Storage Tiers(lifecycle management feature - move file after N days)
      • Standard : 자주 액세스하는 파일을 위한 계층
      • Infrequent access(EFS-IA) : 자주 액세스하지 않은 계층. EFS-IA를 사용하려면 수명 주기 정책을 사용해야 한다.
        • 이 파일 계층에서 파일을 검색할 경우 비용이 발생한다.
        • 하지만 파일을 EFS-IA에 저장하면 비용이 감소된다.
  • Availability and Durability
    • Standard
      • 다중 AZ로 설정할 수 있다.
      • 프로덕션 사용 사례에 적합하다.
      • 가용성 영역 하나가 다운되더라도 EFS 파일 시스템에 영향을 미치지 않는다.
    • One Zone
      • 개발용으로 하나의 AZ에만 있다.
      • 백업은 기본적으로 활성화되도록 설정되어 있다.
      • 액세스 빈도가 낮은 스토리지 계층과 호환된다.
      • 할인이 굉장히 많이된다.

EBS vs EFS

  • EBS volumes
    • 한 번에 하나의 인스턴에스 첨부된다.(io1/io2를 제외하고)
    • AZ 수준에서 잠긴다.
    • gp2의 경우 디스크 크기가 증가하면 io가 증가, io1은 독립적으로 io를 늘릴 수 있다.
    • AZ 간에 EBS 볼륨을 마이그레이션하려면 스냅샷을 만들어야 한다.
    • EBS 볼륨 백업은 IO를 사용하므로, 애플리케이션이 많은 트래픽을 처리하는 경우엔 실행하지 않아야 한다. (EBS 인스턴스의 성능에 영향을 미칠 수 있기 때문이다.)
    • 인스턴스의 루트 EBS 볼륨은 EC2 인스턴스가 종료되면 기본적으로 종료된다.
  • EFS
    • 서로 다른 AZ에서 서로 다른 마운트 대상을 가질 수 있다.
    • 여러 인스턴스가 하나의 파일 시스템을 공유할 수 있다.
    • EFS는 EBS보다 가격대가 높지만 EFS-IA 기능을 활용하면 비용을 절감할 수 있다.
This post is licensed under CC BY 4.0 by the author.

Computer-Network 2. Transmission Control Protocol

AWS SAA chapter 6. 고가용성 및 스케일링성 - ELB & ASG