상세 컨텐츠

본문 제목

AWS - EBS, AMI, EFS

클라우드

by myeongjaechoi 2025. 10. 15. 12:52

본문

EBS(Elastic Block store) 볼륨

  • 인스턴스가 실행 중인 동안 연결 가능한 네트워크 드라이브
  • 인스턴스 종류된 후에도 데이터 지속 가능
  • 인스턴스를 재생성하고 이전 EBS 볼륨을 마운트하면 데이터를 다시 받을 수 있음
  • CPP 레벨 : 하나의 EBS는 하나의 EC2 인스턴스에만 마운트 가능
  • 어소시에이트 레벨 : 일부 EBS 다중 연결
  • 특정 가용 영역에서만 가능(us-east-1a에서 생성된 경우 us-east-1b 연결X)
  • 네트워크 USB 장치(물리적 드라이브X)
  • 무료 등급으로는 매달 30GB의 EBS 스토리지를 범용 SSD 혹은 마그네틱 유형으로 제공
  • 스냅샷 이용시 다른 가용 영역으로도 볼륨을 옮길 수 있음
  • GB, IOPS를 미리 정해야 함

인스턴스의 스토리지에서 EBS 볼륨 확인 가능
볼륨 생성(가용 영역은 연결할 인스턴스와 동일하게 설정)
EBS 볼륨이 2개가 된 것을 확인 가능

EBS 스냅샷

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

EBS 스냅샷 생성

  • 재해 복구 전략이 필요한 경우 매우 유용
  • AWS의 다른 리전에 데이터를 백업하고 싶은 경우

스냅샷에서 볼륨을 다시 생성하는 방법
휴지통 기능
스냅샷 삭제 시 휴지통에서 복구 가능

AMI(Amazon Machine Image)

  • EC2 인스턴스를 통해 만든 이미지
  • AMI로 AWS 구축 가능, 커스터마이징 가능(소프트웨어, 설정 파일 추가 및 운영 체제 설치 및 모니터링 툴 추가 등)
  • 부팅 및 설정에 드는 시간 단축 가능(EC2 인스턴스에 설치하고자 하는 모든 소프트웨어를 AMI가 미리 패키징 해줘서)
  • 특정 지역에 구축한 다음 다른 지역으로 복사해서 AWS의 글로벌 인프라 활용 가능
  • EC2 인스턴스를 여러 종류의 AMI에서 실행 가능
  • AWS 마켓플레이스 AMI에서 EC2 인스턴스 실행 가능(다른 사람이 구축한 이미지 사용)

AMI가 EC2 인스턴스에서 처리 되는 과정

  • EC2 인스턴스 설정
  • 데이터 무결성 확보를 위한 인스턴스 중지
  • 인스턴스를 바탕으로 AMI 구축 - 해당 과정에서 EBS 스냅샷 생성
  • 사용자 지정 AMI를 다른 regions에서 실행 -> EC2 인스턴스 복사본 생성

AMI 생성
AMI 생성된 화면
사용자가 생성한 AMI로 인스턴스 생성 가능
사용자 데이터를 다시 쓸 때 httpd 설치를 다시 안 해도 됨

  • 부팅 속도가 매우 빠름

EC2 인스턴스 스토어

  • I/O 성능 향상을 위해 활용 가능
  • EC2 인스턴스 스토어를 중지 또는 종료하면 해당 스토리지 또한 손실
  • 장기적으로 데이터를 보관 불가능
  • 버퍼, 캐시, 스크래치 데이터 또는 임시 콘텐츠를 사용하려는 경우에 사용
  • 장기 스토리지의 경우에는 EBS가 적합

EBS 볼륨 타입

  • gp2 / gp3 (SSD) : 다양한 워크로드에 대해 가격과 성능의 균형을 맞추는 범용 SSD 볼륨
  • io 1 / io 2 Block Express (SSD) : 가장 높은 성능의 SSD 볼륨, 미션 크리티컬, 저지연, 고처리량 작업에 사용
  • st 1 (HDD) : 저비용 대용량 볼륨으로, 자주 액세스하고 처리량이 많은 작업을 위해 설계
  • sc 1 (HDD) : 가장 저렴한 HDD 볼륨으로, 액세스 빈도가 낮은 작업을 위해 설계

EBS 볼륨 타입 비교(gp2 vs gp3)

  • 비용 효율적인 스토리지로, 낮은 대기 시간을 제공
  • 시스템 부팅 볼륨, 가상 데스크톱, 개발 및 테스트 환경에 사용
  • gp2
    • 크기 : 1GB - 16TB
    • 볼륨은 최대 3,000 IO
    • 볼륨의 GB 수 와 IOP를 비례(IOP와 처리량이 연관됨)
  • gp3
    • 최신 세대 볼륨
    • 기본적으로 3,000 IOP와 초당 125MB의 처리량 제공
    • IOP는 최대 16,000 까지, 처리량은 초당 최대 1,000MB까지 독립적으로 증가 가능

EBS 볼륨 타입 비교(io1 vs io2)

  • 지속적인 IOPS 성능이 필요한 중요한 비즈니스 애플리케이션에 사용
  • 16,000개 이상의 IOP가 필요한 애플리케이션에 사용
  • 스토리지 성능과 일관성에 매우 민감한 경우 적합
  • EBS 다중 연결 가능
    • 최대 16개의 EC2 인스턴스 연결 가능, 반드시 클러스터 인식 파일 시스템을 사용
    • 동일한 EBS 볼륨을 동일한 AZ에 있는 다수의 EC2 인스턴스에 연결
  • io1
    • 4TB - 16TB 지원하며 최대 IOP를 프로비저닝 가능
    • 최대 IOP는 Nitro EC2 인스턴스의 경우 약 64,000이고 다른 종류의 인스턴스의 경우 32,000
    • io1 유형 볼륨은 스토리지 크기와 별도로 프로비저닝된 IOPS를 늘릴 수 있음
  • io2 Block Express
    • 최대 64TB 사용 가능
    • 256,000 IOP 제공되는데, IOPS : 기가바이트 = 1,000 : 1

EBS 볼륨 타입 비교(st1 vs sc1)

  • 부팅 볼륨이 될 수 없음
  • 이전 유형의 볼륨에서만 사용
  • 125GB - 16TB
  • st1
    • 처리량 최적화 HDD
    • 빅데이터, 데이터 웨어하우징, 로그 처리에 적합
    • 초당 최대 500MB 처리량과 최대 500 IOPS 제공
  • sc1
    • Cold HDD
    • 아카이브 데이터용(장기간 보관이 필요하지만 자주 접근하지 않는 데이터를 저장하는 것)
    • 자주 액세스되지 않는 데이터용
    • 가능한 가장 낮은 비용이 필요할 때 사용
    • 초당 최대 250MB 처리량과 최대 IOPS 250 제공

EBS 볼륨 암호화

  • EBS 볼륨 생성 시 발생하는 것
    • 저장 데이터가 볼륨 내부에 암호화
    • 인스턴스와 볼륨 간의 전송 데이터 암호화
    • 스냅샷 + 스냅샷으로 생성한 볼륨 모두 암호화
  • 백그라운드에서 EC2와 EBS가 암호화 및 복호화
  • 지연 시간에는 영향이 거의 없고, KMS에서 암호화 키를 생성해 AES-256 암호화 표준을 가짐

EBS 볼륨 암호화 및 복호화

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

EFS(Elastic File System)

  • 네트워크 파일 시스템
  • 많은 EC2 인스턴스에 마운트 가능
  • EC2 인스턴스는 서로 다른 가용 영역에 있어도 됨
  • 가용성 높고, 확장성 뛰어나며, 비쌈
  • gp2 EBS 볼륨의 약 3배
  • 사용에 따라 비용 지불(GB 사용량) -> 프로비저닝X 
  • 콘텐츠 관리, 웹 서빙, 데이터 공유, wordpress
  • 내부적으로 NFS 프로토콜 사용하며, EFS에 대한 액세스를 제어하려면 보안 그룹 설정해야 함
  • 윈도우 호환 X, Linux기반 AMI만 호환
  • KMS 사용해서 EFS 드라이브에서 미사용 암호화 활성화 -> Linux 표준 파일 시스템(Posix 시스템), 표준 파일 API 존재
  • 자동 확장 가능

EFS 성능 및 스토리지 클래스

  • EFS Scale
    • 동시 NFS(Network File System) 클라이언트 수천 개와 10GB 이상의 처리량 확보
    • PB(1,024TB) 규모의 NFS로 자동 확장 가능
    • NFS 생성 시 성능 모드를 설정 가능
  • 범용(Performance Mode)
    • 지연 시간에 민감한 사용 사례에 사용. 예 : 웹 서버, CMS
    • 처리량을 최대화하려면 최대 I/O 모드를 선택
    • 지연 시간이 더 긴 NFS지만, 처리량이 높고 병렬성 높음
    • 빅데이터 애플리케이션이나 미디어 처리가 필요한 경우 유용
  • 처리량 모드(Throughput Mode)
    • 버스팅 - 1TB = 50Mib/s + 100MilB 버스트
    • 프로비저닝 - 스토리지 크기에 관계없이 처리량을 설정(스토리지와 처리량을 분리)
    • 엘라스틱 - 워크로드에 따라 처리량을 자동 조절(Read : 초당 최대 3GiB, Write: 초당 최대 1GiB)

EFS - 스토리지 클래스

  • 스토리지 티어
    • 스탠다드 : 자주 액세스하는 파일을 위한 티어
    • EFS-IA : 자주 액세스하지 않는 용도, 파일을 검색할 경우 비용이 발생. But, 저장하면 비용 감소
    • 아카이브 : 거의 액세스하지 않는 데이터(1년에 몇 번만 데이터에 액세스 하는 경우)
    • 스토리지 티어 간에 파일을 자동으로 이동하시 위해 수명 주기 정책을 구현하여 며칠 후에 파일을 어느 계층으로 이동해야 하는지 정의 가능
  • 가용성과 내구성
    • 스탠다드 : 다중 AZ 설정이 있는 경우
    • One Zone : 개발만 하고 싶고 더 저렴한 옵션을 원할 때. 하나의 AZ에만 있고 백업은 기본적으로 활성화
    • 올바른 EFS 스토리지 클래스를 사용하면 최대 90%의 비용 절감 가능

EFS 생성
EFS 생성된 화면
파일 시스템 EC2 인스턴스에 마운트
efs-demo, efs-sg-1, efs-sg-2(EC2 콘솔이 대신 생성하여 EFS 파일 시스템에 연결)
Instance B에서 hello.txt 생성한 화면
Instance A에서 hello.txt 확인한 화면

  • 두 EC2 인스턴스 모두 EFS 파일 시스템이 네트워크 드라이브로 마운트 된 것을 확인
  • 서로 다른 AZ지만 같은 EFS 공유

EBS vs EFS

  • EBS
    • 한 번에 하나의 인스턴스에 연결(io1, io2 제외)
    • gp2 : 디스크 크기가 증가하면 IO가 증가
    • gp3 및 io1 : 디스크 크기와 관계없이 IO 증가 가능
    • EBS 볼륨을 AZ 간에 마이그레이션하려면 스냅샷을 찍어 EBS 스냅샷에 넣은 후 다른 AZ에 복원해야 함
    • EBS 볼륨 백업은 IO를 사용하므로, 애플리케이션이 많은 트래픽을 처리하는 동안에는 성능에 영향을 줄 수 있으므로 실행X
    • EC2 인스턴스 종료시 기본적으로 EBS 볼륨도 종료. But 비활성화 가능
  • EFS
    • 여러 AZ에 걸쳐 수백 개의 인스턴스에 연결하는 것이 목표
    • 여러 인스턴스가 하나의 파일 시스템 공유 가능
    • 예 : 워드프레스(POSIX 시스템을 사용하기 때문에 리눅스 인스턴스에서만 사용)
    • EFS는 EBS보다 가격이 더 높지만 스토리지 티어를 활용하여 비용 절감 가능

'클라우드' 카테고리의 다른 글

AWS - RDS, Aurora, ElastiCache  (0) 2025.10.18
AWS - Load Balancer  (0) 2025.10.17
AWS - 탄력적 IP, 배치 그룹, Hibernate,  (1) 2025.10.14
AWS - EC2  (0) 2025.10.12
AWS - IAM, CLI  (0) 2025.10.08

관련글 더보기