AWS EC2 서비스의 소개에 이어 EC2 Instance Storage 섹션이다. EC2는 서버이고, 스토리지가 필요하다. 보통 서버에서 스토리지를 사용할 때에는 로그 파일을 저장하거나, 웹 서비스에 필요한 리소스 자체를 저장한다. AWS EC2에서 사용할 수 있는 스토리지의 옵션이 몇 가지 있는데, 이번 포스트에서는 EC2 인스턴스와 함께 사용할 수 있는 다양한 스토리지에 대해 소개하겠다.

EBS

  • Elastic Block Store volume, 즉 EBS라고 한다.
  • EC2 인스턴스가 실행되는 동안 접근할 수 있는 네트워크 드라이브이다.
  • Availability Zone(가용영역; 이하 AZ)내에 제한되어있어, 다른 AZ의 EC2가 접근할 수 없다.
  • 만약 다른 AZ로 이전하고 싶다면, 해당 EBS의 스냅샷을 생성하고, 타겟 AZ에서 복원한다. 스냅샷 복원은 다른 AZ에서 가능하다.

EBS snapshot

  • EBS 볼륨의 백업이다.
  • EC2를 종료할 때 함께 삭제할 수 있다. 옵션 "Delete on termination"이 활성화되어야한다.
  • EBS Snapshot Archive로 옮겨 저장하면 75% 저렴한데, 복구하는데 24-72시간 걸린다.
  • Recycle Bin: 휴지통과 같다. 실수로 삭제 시 스냅샷의 손실을 방지한다.
  • Fast Snapshot Restore (FSR): 빠른 스냅샷 복원 기능으로, 스냅샷에 FSR을 활성화하면 볼륨이나 스냅샷의 크기에 관계 없이 빠른 복원을 수행할 수 있다. 다만 비용이 비싸다.
  • *AMI를 이용하여 다른 AZ로 복사할 수 있는 방법이다. 그 프로세스는 다음과 같다.
    1) EC2 시작(선택적으로, 커스터마이징이 가능하다)
    2) 인스턴스를 중지한다.
    3) *AMI를 빌드한다. 이때, EBS 스냅샷이 생성된다.
    4) 다른 AZ에서, 빌드한 AMI를 이용하여 인스턴스를 시작한다.
  • *AMI? Amazon Machine Image. EC2 인스턴스의 customization이라고 생각하면 된다. User Data 또는 접속 이후 설정하는 것들이 이미 완성된 이미지를 사용하면 더 빠른 시작이 가능하다.
    • 특정 Region에서 빌드되고 각 Region마다 고유하다. 다른 Region에서 “직접” 사용할 순 없다. 단, 간접적으로 가능하다. 다른 Region으로 복사하여 인스턴스를 생성하면 된다.
    • 종류로는 AWS가 제공하는 Public AMI가 있고, 타 유저가 생성한 AWS Marketplace AMI, 그리고 내가 직접 생성하고 유지보수하는 AMI가 존재한다.

EBS Volume Types

  • gp2/gp3: General Purpose SSD. 시스템 부트 볼륨, 가상 데스크탑, 개발 및 테스트 환경에 좋다.
    • 부팅 볼륨으로 사용할 수 있다.
  • io1/io2: Provisioned IOPS (PIOPS) SSD. 가장 좋은 퍼포먼스이지만 가장 비싸다. 데이터베에스 워크로드에 좋다.
    • *EBS Multi-attach를 지원한다.
    • 부팅 볼륨으로 사용할 수 있다.
  • st1: HDD 기반의 저렴한 빈도높은 액세스, 즉 출력 최적화 볼륨(Throughput Optimized HDD)이다.
  • sc1: HDD. 가장 저렴한 낮은 빈도의 액세스(Cold HDD)를 위한 볼륨이다.
  • *EBS Multi-attach?
    1) 한 EBS 볼륨을,
    2) 동일한 AZ 내,
    3) 다수의 EC2 인스턴스에
    EBS 볼륨을 연결할 수 있다.
    • PIOPS SSD만 가능하다.
    • 연결된 각 EC2 인스턴스는 전체 읽기/쓰기 권한이 있다.

EC2 Instance Store

  • EBS와 같은 네트워크 드라이브가 아닌, EC2와 연결된 물리 드라이브이다. 다시 말해, 이 스토리지는 호스트 컴퓨터(EC2)에 물리적으로 연결된 디스크에 위치한다.

  • 고성능이지만 인스턴스가 중지되면 스토리지가 사라지므로, 버퍼, 캐시, 스크래치 데이터, 기타 임시 콘텐츠와 같이 자주 변경되는 정보의 임시 저장에 적합하다.

  • 고성능, 특히 높은 IOPS를 요하는 고성능 데이터베이스에 EC2 Instance Store를 사용할 수 있지만, 휘발성 특징에 의해 발생하는 문제가 있다. 다음은 그 해결책에 관한 QA이다.

    Q: "당신은 310,000 IOPS를 요하는 high-performance database를 운영하고 있습니다. 권장 사항은 무엇인가요?"
    A: "Instance Store를 사용하는 EC2 인스턴스에서 데이터베이스를 실행할 수 있지만, EC2 인스턴스가 중지되면 문제없이 다시 시작되지만, 데이터가 손실될 수 있습니다. 하나의 해결책은 다른 Instance Store를 사용하는 다른 EC2 인스턴스에 복제 메커니즘을 설정하여 대기 복사본을 보유하는 것입니다. 또 다른 해결책은 데이터에 대한 백업 메커니즘을 설정하는 것입니다. 요구 사항을 충족시키기 위해 아키텍처를 설정하는 방법은 모두 사용자의 선택입니다. 이 경우 IOPS에 관한 것이므로, EC2 Instance Store를 선택해야 합니다."

    • 위에 의하면 인스턴스가 예기치 못한 이유로 종료될 시 데이터가 손실될 수 있음에도 불구하고 인스턴스 스토어를 고성능 데이터베이스의 스토리지로 권장하고 있다. 핵심은 *IOPS이기 때문이다. 해당 IOPS 성능을 커버하려면 EC2 Instance Store를 사용해야한다는 것이고, 다만 데이터 손실을 예방하기 위해 백업 메커니즘을 설정해야하는 조건이 있는 것이다. 그러므로 데이터베이스라고해서 무조건 비휘발성의 스토리지만을 선택해야하는 것은 아니고, High IOPS가 필요할 때에는 휘발성임에도 불구하고 백업 등으로 보완하여 이것을 사용할 수 있다고 이야기하고 있다.
  • *IOPS? Input/Output Operations Per Second

    • HDD, SDD 또는 NVMe등 저장장치의 속도를 나타내는데 사용되는 측정 단위를 말한다. 쉽게 말해, "초당 입출력"이다.
    • "높은 IOPS를 요구한다"는 것은 곧 스토리지에서 입출력이 빈번하게 일어난다는 것을 뜻한다. 그래서 일반적으로 연결 환경에 추가적인 영향을 받는 네트워크 드라이브보다는 외부 영향이 적은(그래서 일반적으로 빠른) 물리 드라이브가 더 적합하다는 결론이 나온다.

EFS; Elastic File System

  • Elastic File System로, NFSv4.1 protocol을 사용하는 네트워크 드라이브이다.
  • 다중 AZ의 EC2 인스턴스와 작동한다. 쉽게 말해, 다른 AZ의, 2개 이상의 EC2 인스턴스와 연결될 수 있다는 뜻이다.
  • 인스턴스의 컨텐츠 관리, 웹 서빙, 데이터 공유, 워드프레스와 같은 시스템에 사용된다.
  • 보안 그룹(Security Group)으로 접근을 제어한다.
  • POSIX 표준을 준수하며, 리눅스 기반의 AMI와 호환된다. 대표적인 반대 예시로, Microsoft의 윈도우OS와는 호환되지 않는다.
  • KMS를 사용해서 저장공간을 암호화할 수 있다.
  • Auto-scaling: capacity planning이 필요없이, 사용한만큼 지불한다(pay-per-use).

Performance Mode (EFS 생성 시 설정)

  • General Purpose (default): 일반적인 용도에 좋다. 특히 (웹 서버와 같은) 지연 시간에 민감한 애플리케이션에 사용된다.
  • Max I/O: 더 긴 지연시간, 처리량, 고도의 병렬 처리에 사용된다. 빅데이터, 미디어 프로세싱과 같은 용도로 사용한다.

Throughput Mode

분류mode상세
BasicBursting기본 모드. 스토리지의 양에 따라 throughput이 확장된다.
AdvancedProvisioned스토리지 크기에 상관없이 throughput을 설정
Elastic오토 스케일링. I/O를 예측할 수 없을 때 사용한다.

Storage class

  • Storage Tiers
    • standard: 높은 빈도로 액세스되는 파일
    • Infrequent access (EFS-IA): 파일조회 시 비용이 적용되며, 저장할 때 더 적은 비용이 발생한다. 수명주기 정책(Lifecycle Policy)과 함께 EFS-IA를 활성화해야한다.
  • Availability and durability
    • standard: Multi-AZ. 운영 환경에 좋다.
    • One Zone: One AZ. 개발 환경에 좋다. 기본값으로 백업이 활성화된다. IA와 호환(EFS One Zone-IA)되어, 90%까지 비용을 절약할 수 있다.
  • 공식 문서에서 Storage class별로 자세한 비교를 볼 수 있다.
profile
Large but stable

0개의 댓글

관련 채용 정보