본문 바로가기
DevOps/AWS

EBS & AMI & EFS

by 계범 2023. 11. 19.

EBS 볼륨이란?

인스턴스가 실행 중인 동안 연결 가능한 네트워크 드라이브.

EBS 볼륨을 사용하면 인스턴스가 종료된 후에도 데이터를 유지할 수 있음.

 

EBS 볼륨의 제약사항

  • CCP레벨의 EBS볼륨은 하나의 인스턴스에만 마운트 가능
  • 특정 가용 영역에서만 사용 가능

 

네트워크의 USB 스틱이라고 생각하면 됨.

물리적 연결 없이 네트워크를 통해 연결.

 

스냅샷을 이용하면 다른 가용영역으로 이동도 가능.

볼륨의 성능은 미리 정의해야함.

 

인스턴스 생성 시 EBS 볼륨을 생성하면 인스턴스 삭제 시 EBS볼륨도 삭제할 것인지 체크하는 란이 있음.

 

EBS 스냅샷

EBS 볼륨의 특정 시점에 대한 백업.

EBS 스냅샷은 다른 가용영역이나 리전으로도 복사 가능.

 

EBS 스냅샷 아카이브

최대 75%까지 저렴한 아카이브 티어로 스냅샷을 옮길 수 있는 기능.

S3의 Glacier랑 비슷한듯.. 아카이브는 복원하는데 24~72시간 정도 걸린다고 함.

즉 저렴한 비용을 받을테니 복원에는 더 시간이 걸린다고 함!

 

EBS Recycle Bin

스냅샷을 삭제하는 경우 영구 삭제 대신 휴지통에 넣을 수 있음.

보관 기간은 1일에서 1년까지 감.

 

FSR ( Fast Snapshot Restore)

스냅샷을 완전 초기화해 첫 사용에서의 지연 시간을 없애는 기능.

스냅샷이 아주 크고 EBS 볼륨 또는 EC2 인스턴스를 빠르게 초기화해야할 때 유용.

비용은 당연히 많이 듬 ㅎㅎ

 

AMI

AMI는 Amazon Machine Image로, EC2 인스턴스를 통해 만든 이미지를 통칭.

AMI에다 원하는 소프트웨어 또는 설정 파일을 추가하거나 별도의 운영체제, 모니터링 툴을 추가 가능.

 

AMI를 따로 구성하면, 부팅 및 설정에 드는 시간을 줄일 수 있음.

EC2 인스턴스에 설치하고자 하는 모든 소프트웨어를 AMI가 미리 패키징함.

 

AMI를 특정 지역에 구축한 다음 다른 지역으로 복사해서 AWS의 글로벌 인프라 활용도 가능.

AMI는 AWS에서 제공하는 걸 쓰거나 커스텀한 AMI를 구축하거나 커스텀AMI를 사서 사용 가능.

 

AMI Process

  • EC2 인스턴스를 커스텀 설정
  • 인스턴스를 중지해 데이터 무결성 확보
  • 해당 인스턴스로 AMI 구축
  • EBS 스냅샷 생성
  • 이렇게 생성된 AMI를 바탕으로 인스턴스 실행

EC2 인스턴스의 상태를 저장하고 재사용하고 싶을 때 해볼 것.

 

EC2 Instance Store

EC2 인스턴스 스토어는 물리적 서버에 연결된 하드웨어 드라이브를 뜻함.

I/O 성능 향상을 위해 활용되며, 매우 향상된 디스크 성능을 요할 때 쓰임.

하지만, 인스턴스 스토어를 중지 또는 종료되면 스토리지 또한 손실됨. (그래서 임시 스토리지라 불림)

장기 스토리지의 경우 EBS 가 적합.

 

EBS Volume Types

  • gp2 / gp3 (SSD)
    • 다양한 워크로드에 대한 가격과 성능의 절충안 정도
  • io1 / io2 (SSD)
    • 최고 성능을 자랑하는 SSD 볼륨.
    • 지연 시간이 낮고 대용량의 워크로드에 쓰임
  • st1 (HDD)
    • 저비용의 HDD 볼륨.
    • 잦은 접근과 처리량이 많은 워크로드에 쓰임
  • sc1 (HDD)
    • 가장 비용이 적게 드는 HDD 볼륨.
    • 접근 빈도가 낮은 워크로드를 위해 설계.

 

EB2 볼륨을 정하는 여러 요소.

크기, 처리량, IOPS(초당 I/O 작업 수)

 

이중 SSD 볼륨만 EC2 인스턴스의 부팅 볼륨으로 사용 가능. (gp2, gp3, io1, io2)

 

gp2 & gp3

gp2/gp3는 짧은 지연 시간을 자랑하며 효율적인 비용의 스토리지.

시스템 부팅 볼륨에서 가상 데스크톱, 개발, 테스트 환경에서 사용 가능.

 

크기는 1GB~16TB까지 존재.

 

 

gp2와 gp3의 차이는 gp3가 최신 세대의 볼륨으로

기본 성능으로 3,000 IOPS와 125MB/s 처리량을 제공.

최대 16,000 IOPS와 1,000MB/s까지 제공함.

 

gp3의 크기와 별도로 해당 처리량과 IOPS를 독자적으로 설정할 수 있는 반면,

gp2는 크기에 따라 결정됨.

 

io1 & io2

gp2,gp3보다 더 성능이 좋은 SSD 볼륨.

 

크기는 4GB ~ 16TB.

Nitro EC2 인스턴스에서는 최대 64,000 IOPS까지 가능.

아닌 경우 32,000 IOPS까지 제공

스토리지 크키와 독자적으로 증가시킬 수 있음.

 

io2가 io1과 동일비용으로 내구성과 기기 당 IOPS의 수가 더 높음.

io2를 쓰는게 합리적이다!!

 

io2 Block Express를 사용하면,

4GB~64TB까지 사용 가능.

밀리초 미만의 지연시간.

IOPS 대 GB 비율이 1,000:1일때 최대 256,000 IOPS 제공.

 

st1 & sc1

부팅 볼륨 불가.

최대 16TB까지 확장 가능.

 

st1은 처리량 최적화 HDD로 빅데이터나 데이터 웨어하우징 로그 처리에 적합.

최대 처리량은 500MB/s, 최대 IOPS는 500.

 

sc1은 아카이브 데이터용으로 접근 빈도가 낮은 데이터에 적합.

최저비용으로 최대 처리량 250MB/s, 최대 IOPS 250.

 

EBS Multi Attach (볼륨 다중 연결)

EBS 볼륨을 여러 인스턴스에 연결. (io1, io2에서만 가능)

각 인스턴스는 고성능 볼륨에 읽기 및 쓰기 권한을 가진다.

동시에 읽고 쓸 수 있음.

 

같은 가용 영역내에서만 가능.

한번에 16개의 EC2 인스턴스만 같은 볼륨에 연결할 수 있음.

 

다중 연결을 실행하려면 클러스터 인식 파일 시스템을 사용해야함. (뭔 지 모름...)

 

EBS Encrption

설정을 통해 암호화하겠다고 하면,

저장 데이터가 볼륨 내부에 암호화되고 인스턴스와 볼륨 간의 전송 데이터 역시 암호화.

스냅샷 및 스냅샷으로 생성한 볼륨 역시 모두 암호화.

 

암호화& 복호화 매커니즘은 보이지 않게 처리되고 아무것도 하지 않아도 자동적으로 된다.

백그라운드에서 EC2와 EBS가 모두 처리함.

지연시간에는 영향이 거의 없고 KMS에서 암호화 키를 생성해 AES-256 암호화 표준을 가짐.

 

EFS (Elastic File System)

관리형 NFS, 네트워크 파일 시스템임.

네트워크 파일 시스템으로 많은 인스턴스가 연결될 수 있음.

서로 다른 가용 영역에 있는 인스턴스도 동시 연결 가능.

 

가용성이 높고, 확장성이 뛰어나며 비쌈.. GP2 EBS볼륨의 3배정도 가격.

사용량에 따라 비용을 지불하므로 미리 용량을 프로비저닝할 필요 없음.

 

사용 사례는 콘텐츠 관리, 웹 서빙, 데이터 공유, Wordpress로 쓰임.

내부적으로 NFS 프로토콜을 사용하며, EFS에 대한 엑세스를 제어하려면 보안 그룹을 설정해야함.

 

윈도우가 아닌 Linux 기반 AMI와만 호환됨.

KMS를 사용해서 EFS 드라이브에서 미사용 암호화를 활성화할 수 있음.

 

EFS의 장점은 용량을 미리 산정할 필요 없이 자동으로 확장되며,

데이터 GB 사용량에 따라 비용을 지불함.

 

EFS에서는 다양한 성능 모드 및 스토리지 클래스가 있다.

EFS Scale

  • 동시 NFS 클라이언트 수천 개와 10GB 이상의 처리량을 확보할 수 있음.
  • PB 규모의 네트워크 파일 시스템으로 자동 확장할 수 있음

Performance Mode ( 생성 시점에 설정)

  • Genaral Purpose(default)
    • 지연 시간에 민감한 사용 사례에 사용됨. (웹 서버, CMS[관리자] 등)
  • MAX I/O
    • 처리량 최대화 모드.
    • 지연 시간이 더 길지만, 처리량이 높고 병렬성이 높음

Throughput Mode

  • Busting 1TB
    • 파일 시스템 크기와 비례한 처리량을 가지는 모드.
    • 50MB/s + burst of up to 100MB/s
  • Provisioned
    • 스토리지 크기에 관계없이 처리량을 설정하고 싶은 경우에 쓰임
    • 1TB의 스토리지에서 1GB/s 처리 가능.
  • Elastic
    • 워크로드에 따라 처리량을 자동으로 조절.
    • ex ) 워크로드에 따라 읽기는 최대 3GB/s, 쓰기는 1GB/s 가능
    • 워크로드를 예측하기 어려울 때 유용함.

 

EFS-IA를 이용해 자주 사용하지 않는 파일들은 더 저렴하게 이용할 수도 있다.

수명 주기 정책을 사용해서 60일 이상 접근하지 않았으면, 다른 계층으로 이동해서 비용을 절감하는 방법이다.

S3의 Glacier 같은 것으로 이해.

 

가용성과 내구성 측면으로의 옵션은

Regional(다중 AZ)로 EFS 설정할 수도 있고, One  Zone(하나의 AZ) EFS로 설정할 수 있음

One Zone EFS는 백업이 기본적으로 활성화되도록 설정되어있고
엑세스 빈도가 낮은 스토리지 계층과는 호환되지 않음.

대신에 약 90%정도로 할인됨.

 

EBS vs EFS vs RDS

EBS

  • 대부분의 EBS는 1개의 인스턴스에 첨부됨. (io1, io2의 다중 첨부 기능의 특별 케이스 제외)
  • 같은 AZ 수준에서 사용 가능
  • gp2 유형 볼륨의 경우, 디스크 크기가 증가하면 IO가 증가하지만, io1의 경우 독립적으로 io 설정 가능
  • AZ간에 EBS 볼륨을 마이그레이션 하려면 스냅샷을 이용해야함

 

EFS

  • 여러 가용 영역에 걸친 수백개의 인스턴스를 연결할 수 있음
  • 여러 인스턴스가 하나의 파일 시스템을 공유할 수 있다!
  • 대신 비용이 쎄긴함...

 

RDS

 

참조

https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Welcome.html

https://www.udemy.com/course/best-aws-certified-solutions-architect-associate/

 

 

댓글