AWS EBS, EFS 에 대해 공부하고 정리한 내용입니다.
- Elastic Block Storage (EBS)
- Volumes and Snapshots
- EC2 hibernation
- Elastic File System (EFS)
Elastic Block Storage (EBS)
EBS volume 이란?
Elastic Block Storage.
EC2 에 붙일 수 있는 storage volumne 이다.
Cloud 의 virtual hard disk 라고 생각하면 된다.
EBS 의 특징
- Designed for mission-critical workloads.
- Highly available: 특정 availability zone 내에서 자동으로 복제되어 hard failure 를 방지해준다.
- Scalable: Capacity 와 volume type 을 자동으로 맞춰주면서 성능에는 영향을 주지 않는다.
EBS 의 종류 - SSD
1. gp2: General purpose SSD
- 3 IOPS per GiB, up to max 16,000 IPOS per volumne.
- gp2 volumes smaller than 1TB can burst up to 3,000 IOPS
- 부팅 볼륨이나 latency 에 민감하지 않은 app 을 개발하고 테스트할 때 적절하다.
2. gp3: General purpose SSD
- predictable 3,000 IOPS baseline performance and 125 MiB/s
- 저렴한 비용에 고성능을 요구하는 app 에 적절하다. (MySQL, Cassandra, virtual desktops, and Hadoop analytics)
- 16,000 IOPS & 1,000 MiB/s 까지 scale up 가능하다.
- gp3 의 최고성능은 gp2 의 네 배 정도이다.
3. io1: provisioned IOPS SSD
- Up to 64,000 IOPS per volume, 50 IOPS per GiB.
- 16,000 IOPS 이상이 필요한 경우 사용.
- 고성능이고, 가장 비싼 옵션이다.
4. io2: provisioned IOPS SSD
- Latest generation.
- Higher durability and more IOPS.
- Up to 64,000 IOPS, 500 IOPS per GiB.
- 99.999% durability
- I/O intensive app 이나 large database 그리고 latency-sensitive workload 에 적절하다.
- io2 가격은 io1 과 동일하다.
EBS 종류 - HDD
1. st1: Throughput optimized HDD
- Low-cost HDD volume
- baseline 40 MB/s per TB, up to 260 MB/s per TB.
- Max throughput 500 MB/s per volume
- 자주 접근하거나 througput-intensive workloads 에 적절하다.
- Big data, data warehouse, ETL, log processing 등에 사용된다.
- boot volume 으로 사용될 수 없다.
2. sc1: Cold HDD
- Lowest cost option.
- baseline 12 MB/s per TB, up to 80 MB/s per TB.
- Max throughput 250 MB/s per volume.
- 자주 접근하지 않는 cold data 에 적절하다.
- 저렴한 비용에 performance 가 중요하지 않은 app 에 사용된다.
- boot volume 으로 사용될 수 없다.
IOPS 와 Throughput 의 차이
시간당 read/write 횟수를 측정하느냐, 혹은 read/write 하는 데이터의 크기를 측정하느냐의 차이이다.
Volumes and Snapshots
Volume 이란?
- volume 은 EBS 볼륨을 의미한다.
- virutal hard disk 라고 생각하면 된다.
Snapshot 이란?
- snapshot 은 s3 에 저장된다.
- virtual disk/volume 의 사진을 찍은 거라고 생각할 수 있다.
- snapshot 을 찍으면, volume 의 특정 시간의 복사본을 만드는 것이다.
- snapshot 을 찍으면, 가장 마지막에 snapshot 을 찍은 순간부터 바뀐 데이터만이 s3 에 저장된다.
- 첫 snapshot 은 시간이 좀 걸린다.
아래 예시는 다음 작업들을 진행한다.
- EC2 를 생성할 때 EBS volume 을 추가한다.
- 만들어진 EC2 with EBS volume 에서 volume type 을 바꾼다.
- root volume 에 대한 snapshot 을 만든다.
- 만들어진 snapshot 을 다른 availability zone 에 복사하고 이를 활용해 AMI 를 만든다.
|
EC2 instance 를 만든다. |
|
Network setting 아래쪽에서 volume 을 선택할 수 있다. |
|
선택할 때, 위에서 배운대로 sc1 과 같은 cold HDD 는 root volume 으로 선택할 수 없다고 나온다. |
|
Root volume 은 gp2 8GB 로 설정했고, Add volume 을 선택해 custome 으로 sc1 125GB 를 추가했다. |
|
왼쪽의 Elastic Block Storage - Volumes 탭으로 들어가면 현재 만들어둔 volume 목록을 확인할 수 있다. |
|
만들어진 sc1 volume type 을 다른 것으로 바꿀 수 있다. Actions -> Modify Volume 을 선택한다. |
|
Volume type 을 sc1 에서 io2 로 변경한다. |
|
만들어진 volume 에 대해 snapshot 을 만들 수 있다. Actions -> Create Snapshot 을 선택한다. |
|
왼쪽의 Elastic Block Storage - Snapshots 탭으로 들어가면 만들어진 snapshot 들을 확인할 수 있다. |
|
Snapshot 을 복사할 수 있다. Actions -> Copy 를 선택한다. |
|
복사할 때 availability zone 을 다른 곳으로 선택할 수 있다. |
EBS Encryption
EBS volume 을 encrypt 하면 어떤 일이 발생하는가?
- volume 내에 있는 Data 가 암호화된다.
- instance 와 volume 이 주고받는 데이터가 암호화된다.
- snapshot 이 암호화된다.
- 해당 snapshot 으로 만들어진 volume 이 암호화된다.
EBS encrypt 방법
- EC2 instance 만들 때 volume option 중 Encrypted - Yes 를 선택한다.
- Unencrypted volume 에 대한 snapshot 을 만들고, 이 snapshot 을 복사할 때 Encrypt option 을 선택한다.
EC2 hibernation
EC2 hibernation 이란?
EC2 RAM 에 있는 내용물을 EBS root volume 에 저장하는 것.
일반적으로는 EC2 instance 를 멈추는 경우, data 는 EBS disk 에 남아있고 EC2 를 다시 시작할 때까지 남아있을 것이다.
그리고 EC2 instance 를 terminate 하는 경우 root device volume 은 같이 terminate 하게 된다.
EC2 hibernation 의 특징들
- EC2 in-memory RAM을 persistant storage (EBS) 에 보관한다.
- hibernation 에 들어간 EC2 를 다시 실행하는 것이 매우 빠르다 - OS 를 다시 불러올 필요가 없기 때문.
- instance RAM 은 150GB 보다 작아야 한다.
- instance family 는 C3, C4, C5, M3, M4, M5, R3, R4, R5 를 포함한다.
- 가능한 OS 는 Windows, Amazon Linux 2 AMI, Ubuntu 이다.
- hibernation 은 60 일을 초과할 수 없다.
Elastic File System (EFS)
EFS 란?
- 많은 EC2 instance 에 mount 할 수 있는 network file system.
- 여러 Availability zone 에 있는 EC2 에서 사용 가능하다.
- Highly available & scalable, but expensive.
- Contents management, Web servers 등 data 를 공유하는 시스템에 적절하다.
EFS Overview
- NFSv4 protocol 을 사용한다.
- Linux-based AMI compatible (Windows not supported).
- Encryption at rest using KMS.
- 사용에 따라 자동으로 커지고 줄어들기 때문에 capacity planning 이 필요 없다.
- 사용하는 만큼 비용이 발생한다.
- 용도에 따라 성능을 결정할 수 있다.
- General Purpose: web server, CMS 등에 사용된다.
- Max I/O: Big data, media processing 등에 사용된다.
Storage Tiers
- EFS 는 storage tiers 그리고 lifecycle management 가 가능해서 며칠 뒤에 다른 tier 로 넘어가게 할지 설정할 수 있다.
- Standard: frequently accessed file 에 해당한다.
- Infrequently accessed: 자주 사용되지 않는 파일들에 해당한다.
아래는 EFS 를 생성하고 정책을 설정하는 과정에 대한 예시이다.
|
EFS 콘솔 화면. 오른쪽 Create file system 을 통해 EFS 를 생성할 수 있다. |
|
EFS 의 이름, VPC 그리고 Availability 를 설정할 수 있다. Regional 로 만드는 것을 추천하고 있다. |
|
만들어진 EFS 목록. 이름을 클릭해서 들어가면 세부사항을 확인할 수 있다. |
|
해당 EFS 에 대한 설명이 나온다. 아래의 Metered size 에서 전체 크기를 확인할 수 있다. |
|
“Edit” 으로 들어가면 해당 EFS 에 대한 정책을 설정할 수 있다. Lifecycle 및 Throughput 을 조정할 수 있다. |
만들어진 EFS 를 EC2 에 연결하기
|
만들어진 EFS 에서 아래 “Network” 탭의 “Manage” 를 선택한다. |
|
EFS 의 mount target 을 설정한다. 현재 만들어져 있는 EC2 instance 들이 target 으로 뜨게 되고, 이들에 대한 security group 을 새로 설정한다. |
|
이제 해당 EFS 화면에서 오른쪽 위의 Attach 를 선택한다. |
|
여기서 mount via IP 를 선택하면 IP 를 통해 마운트를 할 수 있게 된다. EC2 터미널에서 아래의 마운트 명령어를 사용하면 “efs” 폴더에 해당 EFS 가 마운트되게 된다. |
EC2 terminal 에서 해당 EFS 를 마운트하고 마운트 목록에 추가하는 명령어는 다음과 같다.
sudo mkdir /efs # root 에 efs 디렉토리를 생성
sudo mount -t nfs4 -o nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport 10.0.0.233:/ /efs # mount 진행
sudo nano /etc/fstab # 해당 파일을 수정한다.
/etc/fstab 파일에서는 다음 항목을 추가한다.
10.0.0.233:/ /data nfs4 nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport 0 0
# 형태: <NFS MOUNT IP>:/ /data nfs4 <OPTIONS> 0 0
# NFS MOUNT IP 및 OPTIONS 는 EFS - Attach 에서 확인했던 값을 사용하면 된다.
# 중간에 tab 두번, 한번, 한번이 각각 들어있다.
다른 EC2 에서도 /etc/fstab 에 해당 라인을 추가하고 mount -a 를 실행하면 EFS 가 mount 되게 된다.
AWS backup
AWS backup 이란?
EC2, EBS, EFS, RDS, DynamoDB 등 여러 AWS service 에 대한 백업을 의미한다.
AWS backup with organizations
AWS organization 에 대해 Backup 을 진행할 수 있고, 이 때 해당 organization에 속한 여러 AWS account 에 대한 백업이 가능하다.
Benefits of AWS backup
1. Central management: 하나의 백업 콘솔을 통해 여러 AWS 서비스와 여러 AWS account 백업이 가능하다.
2. Automation: 자동 백업 스케줄과 retention policy 들을 사용할 수 있다. 또한 lifecycle policy 를 사용해 특정 기간이 지난 불필요한 백업 파일은 삭제하도록 할 수도 있다.
3. Improved Compliance: 백업 정책을 시행하는 동안 백업은 미사용 및 전송 모두에 암호화되어 규정 준수사항에 부합되도록 할 수 있다.
네, 오늘은 AWS EBS, EFS 에 대해서 알아보았습니다.
그럼 다음 시간에 만나요!