- Published on
AWS EC2 데이터 저장 방법
- Authors
- Name
- Chan Sol OH
목차
- EBS - 네트워크 연결
- EBS - EC2 종료시 삭제 기능
- EBS 생성 방법
- EBS 스냅샷?
- 언제 사용해?
- 어떻게 사용하지?
- ESB Volume Types
- General Purpose SSD (gp 시리즈)
- Proviosioned IOPS (PIOPS) SSD - 용량을 미리 지정한 SSD
- Hard Disk Drives (HDD) s시리즈
- EBS 다중 연결 기능 - io1,io2 family
- EC2 Instance Store - 물리적 연결
- Elastic Fiile System (EFS)
- EFS Mode와 그 옵션
- EFS Storage Classes
- EBS vs EFS
EBS - 네트워크 연결
EBS Volume은 Elastic Block Store Volume의 약자. 인스턴스가 실행 중인 동안 연결 가능한 네트워크 드라이브. EBS를 사용하면 인스턴스를 종료하더라도 데이터를 지속할 수 있다.
하나의 EBS는 하나의 EC2 인스턴스에 마운트 가능하지만, 하나의 EC2에 여러개의 EBS를 마운트 할 수 있다. 또한 AZ에 종속된다. 예를 들어 us-east-1a에 생성된 경우 us-east-1b에서는 사용할 수 없다. 다만, 스냅샷을 사용하면 다른 가용영역에서도 사용할 수 있다. 정리하면 EBS는 네트워크로 연결되는 USB 스틱
으로 이해할 수 있다! 네트워크 연결이란 특징 덕분에 EC2 인스턴스와 분리되고 빠르게 다른 EC2에 연결할 수 있지만, 약간의 레이턴시가 발생한다. 그리고 저장소이기 때문에 사전에 EBS Volume의 성능을 정해야한다.
EBS - EC2 종료시 삭제 기능
EC2 인스턴스를 생성할 때 콘솔에서 EBS Volume을 생성하면 종료시 삭제
옵션을 체크할 수 있다. 이를 통해 EC2의 변화가 있을 때 EBS 행동을 제어할 수 있다. 기본적으로 root EBS Volume은 삭제되도록 설정되어 있지만, 원할 경우 옵션을 비활성화 시킬 수 있다.
EBS 생성 방법
- EC2 페이지에서 볼륨 생성 페이지 진입
- 유형과 크기, 그리고 가용영역을 설정한다. 이때 가용영역은 EBS와 연결할 EC2와 같은 AZ에 있어야한다.
- 생성한 EBS를 볼륨 연결을 통해 원하는 인스턴스와 연결. EBS는 특정 가용영역(AZ)에 바인딩되어 있기에 EC2와 다른 AZ에서 생성하면 연결할 수 없다.
EBS 스냅샷?
- EBS Volume의 백업 파일을 만들어 놓기에 추천된다.
- 다른 AZ나 Region의 EBS에 복사하기 위해 사용될 수 있다.
언제 사용해?
- EBS 스냅샷을 75% 더 싼
EBS Snapshot Archive
에 옮겨서 저장할 수 있다. 단, 복원하는데 24시간에서 72시간 정도 걸린다. - EBS 스냅샷을 바로 삭제하는 대신
Recycle Bin
에 저장할 수 있다. 실수로 삭제해도 1년 안에 복구할 수 있다. - 매우 빠르게 스냅샷을 복구하는
Fast Snapshot Restore (FSR)
에 사용한다. 단, 비용이 많이 든다.
어떻게 사용하지?
- EBS 볼룸 페이지에서
스냅샷 생성
- EBS 탭에서 볼륨 대신 스냅샷으로 접속하면 아래와 같이 생성된다.
- 해당 페이지에서
스냅샷 복사
를 통해 Region으로 복사할 수 있다.- 재해방지를 위해 다른 Region에 저장하기 위해 사용됨.
- 복사한 스냅샷으로 볼륨을 생성할 수 있다. 이때 원하는 AZ를 설정할 수 있다.
- 휴지통 서비스 접속
- 보존 규칙 생성
- 리소스 유형과 보존 기간 설정
ESB Volume Types
EBS Volume은 6가지 종류가 있다.
- gp2, gp3 (SSD) : 일반적인 목적으로 사용되는 SSD Volume. 가성비가 좋아서 많이 사용된다.
- io1, io2 (SSD) : 미션 크리티컬이자 지연 시간이 낮고, 대용량의 워크로드에 쓰인다. - 성능 중심
- st1 (HDD) : 저비용의 하드디스크 낮은 처리량이 쓰인 작업이 적합
- sc1 (HDD) : 가장 저비용 하드디스크, 거이 접근하지 않는 작업이 있을 때 사용한다.
EBS Volume의 타입은 Size, 처리량 IOPS (I/O Per Sec)에 따라 달라진다. EC2의 부팅 Volume으로는 gp2,gp3와 IO1,IO2만 쓸 수 있다. (다른 건 너무 용량이 작다. ) (부팅 Volume이란 root OS가 저장된 Volume을 뜻함)
General Purpose SSD (gp 시리즈)
- 적절한 가성비, 낮은 레이턴시
- 시스템 부팅 Volume에서 가상 데스크톱, 개발 그리고 테스트 환경에서 사용할 수 있다.
- gp3는 최신 버전이라 IOPS와 처리량을 독립적으로 설정할 수 있지만, gp2는 IOPS와 처리량을 따로 설정할 수 없다.
Proviosioned IOPS (PIOPS) SSD - 용량을 미리 지정한 SSD
PIOPS SSD Volume은 고성능 Amazon EBS storage Volume이다. for critical, IOPS-intensive, and throughput-intensive workloads. 타입으로는 io1, io2, io Block Express volumes가 있다.
32,000 이상의 IOPS를 수행하기 위해선 io1 or io2 Volume의 EC2 Nitro가 필요하다!!
- 16,000IOPS 이상의 성능을 유지할 필요가 있는 비즈니스 애플리케이션
- 데이터베이스 작업은 성능과 일관성이 중요하기 때문에 gp2,3 보다는 io1,io2 Volume을 사용하자. io 시리즈는 최대 16TiB까지 저장할 수 있고, 최대 64,000 IOPS까지 사용할 수 있다. 물론 저장 크기와 독립적으로 PIOPS를 증가시킬 수 있다. - io2는 io1과 동일한 비용으로 더 많은 IOPS per GiB를 가질 수 있다. (더 가성비 있다.)
- io2 Block Express (4 ~ 64TiB) - 초고성능
- 몇백 나노초의 지연시간
- IOPS대 GiB 비가 1000대 1일 때, PIOPS는 최대 256,000 IOPS를 가질 수 있다.
Hard Disk Drives (HDD) s시리즈
- 부팅 Volume이 될 수 없다
- 125MiB ~ 16TiB까지 범위가 넓다.
- 처리량이 낮기 때문에 Big Data 저장소나 Log Processing에 적합하다. 최대 IOPS가 500...
- Cold HDD (sc1)은 데이터를 거이 접근하지 않는 아카이브 같은 저장소다. 최저 비용으로 데이터를 저장할 때 사용한다. 최대 처리량은 250MiB/s - 최대 IOPS 250 ...
EBS 다중 연결 기능 - io1,io2 family
이전에 EBS는 하나의 EC2에만 연결할 수 있다고 했지만, Multiple-Attachable io1/io2 Volume의 경우 여러 EC2에 동시에 연결할 수 있다. 대신에 EC2와 EBS가 동일한 AZ에 있어야하는 것은 변함없다. 그리고 한번에 16개의 EC2 인스턴스와 연결할 수 있다. !!
- Multi-Attach io Volume에 연결된 인스턴스는 고성은 Volume에대한 전체 읽기 및 쓰기 권한을 가진다.
- 동일한 데이터에 접근할 수 있는 여러 애플리케이션을 만들 수 있기 때문에 높은 애플리케이션 가용성을 얻을 수 있다, - 한 인스턴스가 죽어도 다른 인스턴스들이 동일한 데이터에 빠르게 접근할 수 있기 때문
- 동시 쓰기 작업을 관리하는 경우에 적합하다.
EC2 Instance Store - 물리적 연결
일반적으로 EC2 성능은 충분하지만, 가끔 더 높은 성능이 필요할 때가 있고, 이를 위해선 더 좋은 하드웨어 디스크의 성능이 필요하다. 그래서 EC2 Instace Store를 사용한다. 기본적으로 EC2를 구동시키는 것은 하드웨어 서버이고 여기에는 물리적으로 연결된 하드디스크 드라이버 공간이 있다.
EC2 Instace Store라는 EC2 인스턴스는 이 서버에 물리적으로 연결된 하드웨어 드라이브를 가리킨다.
- 310,000IOPS 같이 압도적으로 더 높은 I/O 성능
- EC2 Instace Store를 종료하면, 해당 스토리지 또한 손실된다. 이처럼 EC2 Instance Store는 좋은 성능을 가지지만, 임시적으로 사용하고 장기적으로 데이터를 보관할만하지 않다.
- 버퍼나 캐시, 또는 임시 컨텐츠를 저장할 때 사용. 장기적으로 사용하려면 EBS를 사용하는 것이 맞다.
- EC2 인스턴스의 물리적 서버에 장애가 발생하면 EC2 Instace Store 자체의 물리적 장애가 발생할 수 있어서 데이터 손실에 대한 위험이 존재한다.
- 그래서 꼭 백업이나 복제해둬야한다.
Elastic Fiile System (EFS)
CDN처럼 NFS (network file system)이 관리하고 많은 EC2에 마운트될 수 있다. 네트워크로 연결되기 때문에 EC2와 다른 AZ에 있어도 사용할 수 있고, 사용량에 따라 비용을 지불하기에 프로비저닝할 필요 없다. 대신 비싸다!! (gp2의 3배 가격) 여러 AZ에 있는 EC2와 연결하기 위한 SG 설정은 각 AZ마다 다르게 할 수 있다
웹 서빙, 데이터 공유, 워드 프레스에 사용된다.
내부적으론 NFSv4 프로토콜을 사용한다.
EFS를 위한 보안그룹을 설정해줘야한다. 그리고 리눅스 기반 AMI와 연동할 수 있다.
KMS를 이용해서 미사용 데이터를 EFS 드라이브에서 암호화를 활성화할 수 있다.
리눅스 기반 파일 시스템인 POSIX라서 일반적인 파일 API를 지원한다.
용량을 미리 계획할 필요가 없다!! 사용량에 따라 비용이 지불되고, 자동으로 확장된다.
EFS Scale
- 수천개의 NFS 클라이언트와 10GiB/s 이상의 처리량이 가능하다.
- 페타바이트 크기의 네트워크 파일 시스템으로 확장할 수 있다.
EFS Mode와 그 옵션
- Performance Mode (EFS를 생성할 때 지정)
- 범용 설정 : 웹서버, CMS 같이 지연시간에 민감한 경우 사용
- Max I/O 설정 : 처리량을 최대화할 경우 사용. 지연시간이 더 길지만, 높은 처리량과 병렬성을 가진다. (빅데이터나 미디어 프로세싱에 적합)
- Throughput Mode
- Bursting - 1TB는 초단 50MiB/s (burst of up하면 + 100MiB/s, 파일 시스템 크기와 비례해서 증가)의 처리량을 가질 수 있다.
- Provisioned - 저장소 크기와 상관없이 처리량을 설정할 수 있다.
- Elastic - 작업량에 따라 처리량을 자동적으로 늘리거나 줄일 수 있다. 작업량을 예측할 수 없을 때 유용하다
EFS Storage Classes
- Storage Tiers - 며칠 후 파일을 다른 계층으로 옮길 수 있는 기능
- Standard : 자주 사용하는 파일이 있는 계층
- Infrequent access (EFS-IA) : 이 계층에서 검색할 경우 검색 비용이 발생한다. 대신 더 낮은 비용이 발생한다. 또한 라이프 사이클을 생명주기 정책을 설정해야한다. 예를 들어 표준 계층에서 60일 동안 검색하지 않은 파일은 생명주기 정책에 따라 EFS-IA로 이동해서 비용을 절감할 수 있다.
- Availability and durability
- Standard : 다중 AZ 설정 가능. 프로덕션에 적합, 한 AZ가 에러나도 EFS 파일 시스템에는 영향이 크지 않기 때문에 프로덕션 애플리케이션의 가용성과 내구성을 높일 수 있따.
- One Zone : 개발용으로 하나의 AZ를 사용하기에 백업은 기본적으로 사용하도록 설정된다. 그리고 EFS-IA와는 호환되지 않고, EFS One Zone-IA라는 것과 호환됨 (90% 더 싸다)
EBS vs EFS
EBS
- 한 AZ에 있는 하나의 EC2에만 연결할 수 있다.
- gp2는 디스크 사이즈가 커질 수록 IO 처리량이 증가한다.
- io1은 IO처리량을 디스크 사이즈로부터 독립적으로 증가시킬 수 있다. 중요한 데이터베이스를 사용할 때 적합하다.
EBS를 다른 AZ로 이동시키는 방법
- EBS 스냅샷 찍기, 이때 EBS 볼륨의 IO를 전부 사용하기 때문에 EC2가 EBS를 사용하지 않을 때 찍어야한다.
- 다른 AZ로 스냅샷 이동, 재시작
root EBS는 기본적으로 EC2가 종료될 때 함께 제거되지만, 설정을 통해 비활성화 시킬 수 있다.
EFS
- 수백개의 인스턴스가 여러 AZ에 걸쳐서 존재한다. 그렇기에 여러 AZ에 있는 여러 Linux EC2와 연결할 수 있다.
- EFS는 웹 사이트 파일을 공유할 수 있다.
- EBS 보다 3배 비싸지만, EFS-IA를 생명주기 설정을 통해 비용을 절감할 수 있다.
- EBS는 드라이브의 크기에 따라 비용이 청구되지만, EFS는 사용량에 따라 청구된다.