[AWS Certification] Working with Amazon Elastic Block Store
- EBS(Elastic Block Store)에 대한 기본적인 내용입니다.
Topics covered
- Create an Amazon EBS volume
- Attach and mount your volume to an EC2 instance
- Create a snapshot of your volume
- Create a new volume from your snapshot
- Attach and mount the new volume to your EC2 instance
What is Amazon Elastic Block Store ?
- Amazon Elastic Block Store(Amazon EBS)는 Amazon EC2 인스턴스를 위한 영구 저장소를 제공한다.
- Amazon EBS Volume은 네트워크에 연결되어 인스턴스의 수명과 독립적으로 유지된다.
- Amazon EBS Volume은 가용성과 안전성이 높은 Volume으로, Amazon EC2 인스턴스 부팅 파티션으로 활용하거나 실행중인 Amazon EC2 인스턴스에 표준 블록 장치로 첨부할 수 있다.
- Amazon EBS가 Amazon Simple Store Service(Amazon S3)에 저장되고 볼륨의 특정 시점에 일관된 스냅샷을 생성하는 기능을 제공한다.
Amazon EBS Volume Features
- Persistent storage: Volume 생명주기는 특정 EC2 인스턴스에 독립적이다.
- General purpose: Amazon EBS volumes 은 모든 운영체제에서 사용할 수 있는 포맷되지 않은 원시 블록장치이다.
- High performance: Amazon EBS volumes은 Amazon EC2 devices와 같거나 더 좋다.
- High reliability: Amazon EBS volumes은 Availability Zone내에 중복을 내장하고 있다.
- Designed for resiliency: The AFR (Annual Failure Rate) of Amazon EBS의 연간 오류율은 0.1%에서 1%이다.
- Variable size: Volume sizes는 1GB에서 16TB까지이다.
- Easy to use: Amazon EBS volumes은 쉽게 생성, 첨부, 백업, 복원, 삭제 될 수 있다.
[Task 1: Create a New EBS Volume]
- Volume Type: General Purpose SSD(gp2)
- Size(GiB): 1
- Availability Zone: 현재 EC2의 Availability Zone과 동일하게 설정
- Tag
- Key: Name
- Value: My Volume
[Task 2: Attach and mount your volume to an EC2 instance]
[Task 3: Create a snapshot of your volume]
[SSH 연결]
- Keepalive: 30초
- session -> hostname (or IP Address) : publicIP
- ssh -> auth : ppk 파일로 접속
[Putty 접속 상태]
[마운트된 하드디스크 확인하기]
[/dev/sdf 폴더에 ext3 파일시스템을 생성]
sudo mkfs -t ext3 /dev/sdf
[새로운 볼륨을 마운트 할 경로 생성]
sudo mkdir /mnt/data-store
[새 볼륨을 마운트]
sudo mount /dev/sdf /mnt/data-store
[인스턴스 부팅 시 자동 마운트]
echo "/dev/sdf /mnt/data-store ext3 defaults,noatime 1 2" | sudo tee -a /etc/fstab
[명령어 입력확인]
[마운트된 볼륨에서 파일 작성]
- 기존에 사용하던 서비스가 주기적으로 스냅샷을 생성했을 경우 이전 파일 내용을 확인할 수 있다는 것을 확인하기 위한 파일 생성
sudo sh -c "echo some text has been written > /mnt/data-store/file.txt"
[파일 내용확인]
cat /mnt/data-store/file.txt
[Task 4: Create a new volume from your snapshot]
- 이전 작업에서 새로운 볼륨을 만들어 인스턴스에 마운트작업을 하여 하나의 EC2에 두 EBS를 사용하도록 작업하였다.
- 여기서는 두 번째 EBS에서 작업을 한 뒤 스냅샷으로 백업한 뒤,
작업중인 파일을 삭제, 스냅샷을 이용해 볼륨을 복원,
EC2 인스턴스에 복원된 볼륨을 추가하여 파일을 다시 복원하는 작업을 하도록 한다.
[스냅샷 생성한 뒤 파일 삭제]
- 현재 EC2에 붙은 두 번째 볼륨
- 작업 후에 파일을 삭제한 상황
[Task 5: Attach and mount the new volume to your EC2 instance]
이전 작업에서 파일이 삭제 된 상태에서 다시 그 파일을 찾기 위해서 파일이 지워지기 전, 스냅샷을 생성한 것을 가지고 복원하는 작업을 한다.
1. 생성했던 스냅샷으로 볼륨을 생성
2. 복원된 볼륨을 EC2 인스턴스와 연결
3. 복원된 볼륨이 마운트 될 경로를 생성
sudo mkdir /mnt/data-store2
4. 복원된 볼륨을 인스턴스에 마운트
sudo mount /dev/sdg /mnt/data-store2
5. 복원된 볼륨에서 이전 볼륨에서 삭제한 파일을 읽기
[결론]
- Create an Amazon EBS Volume
(Amazon EBS 볼륨을 생성)
- Attach the volume to an EC2 instance
(EC2 인스턴스에 볼륨을 연결)
- Created a file system on the volume
(볼륨에 파일 시스템을 생성)
- Added a file to volume
(파일을 볼륨에 추가)
- Created a snapshot of your volume
(볼륨의 스냅샷 생성)
- Created a new volume from the snapshot
(스냅샷에서 새 볼륨 생성)
- Attached and mounted the new volume to your EC2 instance
(EC2 인스턴스에 새 볼륨을 연결하고 마운트)
- Verified that the file you created earlier was on the newly created volume
(이전에 생성한 파일이 새로 생성된 볼륨에 있음을 확인)