Amazon Web Services (AWS) EC2 인스턴스는 가상 머신(VM)에서 워크로드를 실행하는 편리한 방법입니다. 그러나 연결된 스토리지가 고장이 나거나 손상되면 어떻게 될까요? 이제 AWS EC2 백업에 대해 논의해 보는 시간입니다.
EC2 인스턴스를 백업할 때는 Elastic Block Store (EBS) 볼륨, 특히 EBS 스냅샷에 대해 이야기하게 됩니다. EC2는 모든 볼륨을 EBS로 저장하며, EBS 스냅샷을 찍는 것은 데이터를 백업하는 좋은 방법입니다.
이 튜토리얼에서는 AWS 관리 콘솔과 AWS Command Line Interface (AWS CLI)를 사용하여 EBS 스냅샷을 생성하는 방법을 배우게 됩니다.
EC2 백업/EBS 스냅샷을 쉽게 관리하려면 Veeam Backup for AWS를 확인해보세요. Veeam은 EBS 스냅샷 생성뿐만 아니라 복제 관리, 변경된 블록의 지능적인 모니터링 및 공개 API를 제공합니다.
사전 준비 사항
이 문서는 튜토리얼입니다. 단계별로 따라가기를 계획하신다면 다음이 필요합니다:
- AWS 계정
- AWS 가상 사설망(VPC)
- 연결된 볼륨이 있는 EC2 인스턴스
- IAM 사용자와 함께:
- AWS 관리 콘솔 액세스
- AWS 서비스에 대한 프로그래밍 방식의 액세스
- 스냅샷 관련 활동을 수행하기 위해 필요한 IAM 권한
IAM 정책 생성 및 AWS 응용 프로그래밍 인터페이스 (API) 권한은 이 문서의 범위를 벗어납니다. 작업 수행을 위해 계정에 권한을 부여할 때는 항상 최소한의 권한 원칙을 준수하세요.
- AWS CLI가 설치되어 있으며 로컬 머신에서 IAM 사용자로 인증되었습니다.
AWS 관리 콘솔에서 EBS 스냅샷 생성
EBS 스냅샷을 생성하는 몇 가지 다른 방법이 있습니다. AWS 관리 콘솔을 통해 스냅샷 생성을 시작해보겠습니다.
EBS 스냅샷은 저장 비용이 발생할 수 있습니다. EBS 요금 책정에 대한 자세한 정보는 AWS 문서를 참조하십시오.
EC2 콘솔로 이동하기
시작하려면:
- AWS 관리 콘솔을 엽니다 및 AWS (루트) 또는 IAM 계정 자격 증명을 제공하여 AWS 계정에 로그인합니다.
2. 화면 상단 왼쪽에 있는 서비스를 클릭합니다.

3. 서비스 드롭다운 메뉴에서 EC2를 선택합니다. EC2 옵션은 아래 그림과 같이 Compute 범주 아래에 있습니다. 이 옵션을 선택하면 EC2 콘솔로 이동합니다.

이제 리소스 대시보드에 있어야합니다. 리소스 대시보드는 선택한 리전 내에서 설정된 EC2 관련 리소스에 대한 빠른 정보를 제공합니다. 아래 스크린샷에서는이 자습서의 리소스 대시보드가 미국 동부 (버지니아 북부) 리전의 로그인 사용자에 대해 설정된 항목을 나타내는 것을 볼 수 있습니다.

EC2 콘솔에서 EBS 스냅샷 생성
EC2 콘솔로 이동하여 예상하는 리전을 보고 있는 경우, EBS 스냅샷 (AWS EC2 백업)을 생성할 시간입니다. 이 작업을 수행하려면:
- 화면 왼쪽의 내비게이션 창에서 Elastic Block Store 아래에 스냅샷을 선택하십시오.

2. 다음으로, 화면 상단에서 스냅샷 생성을 선택하십시오. 스냅샷 생성을 선택하면 추가 입력이 필요한 메뉴로 이동됩니다.

3. 리소스 유형 선택 필드 아래에서 리소스 유형을 볼륨으로 설정하십시오. 리소스 유형을 볼륨으로 설정하면 AWS가 EC2 인스턴스에 연결된 모든 볼륨이 아닌 단일 EBS 볼륨의 스냅샷을 캡처하도록 지시됩니다.

4. 다음으로, 드롭다운 메뉴에서 스냅샷을 생성할 EBS 볼륨의 볼륨 ID를 선택하십시오. 볼륨 ID는 각 EBS 볼륨에 할당된 고유한 식별자입니다. 다음 스크린샷에서는 이 튜토리얼의 볼륨 ID vol-0b4f056a0b709240a가 선택되어 있는 것을 볼 수 있습니다.

5. 이제 설명 필드에 EBS 스냅샷의 설명을 입력하십시오. 설명 필드는 선택 사항이며 최대 255자까지 입력할 수 있습니다.
이 설명은 나중에 EBS 스냅샷의 속성으로 볼 수 있습니다. 이 튜토리얼에서는 설명으로 ATA 블로그용 볼륨 스냅샷을 사용합니다.

6. 다음으로, 선택적인 키/값 쌍을 사용하여 EBS 스냅샷에 태그를 할 수 있습니다. 태그는 AWS 내에서 리소스를 관리하고 정리하는 강력한 방법입니다. 이 튜토리얼에서는 서버의 일반적인 사용 사례를 보여주는 태그를 사용할 것입니다.
다른 일반적인 태그에는 이름, 소유자, 환경 및 목적이 있습니다.

7. 이제 EBS 스냅샷을 생성하기 위해 스냅샷 생성 버튼을 클릭하세요.

이 튜토리얼에서는 암호화 필드에 대해 다루지 않았습니다. 암호화되지 않은 EBS 볼륨에서 생성된 EBS 스냅샷은 EBS 스냅샷 생성 중에 암호화할 수 없습니다. 암호화되지 않은 EBS 볼륨에서 가져온 EBS 스냅샷을 암호화하려면 먼저 암호화되지 않은 EBS 스냅샷을 완료하고, 암호화되지 않은 EBS 스냅샷을 복사한 다음 원하는 암호화를 적용해야 합니다. 암호화된 볼륨에서 생성된 스냅샷은 자동으로 암호화됩니다.
8. 완료되면 EC2 콘솔에서 다음과 같은 성공 메시지가 표시됩니다. 닫기를 선택하여 메시지를 닫으세요.

이제 콘솔에서 EBS 스냅샷이 대기 중 상태로 나열되어 있는 것을 확인할 수 있습니다. 수정된 모든 EBS 볼륨 블록이 Amazon S3로 전송될 때까지 이 상태가 유지됩니다.

초기 EBS 스냅샷은 후속 증분 백업과 달리 완전한 백업이므로 생성하는 데 더 오래 걸립니다. 스냅샷이 예상보다 더 오래 걸리는 것 같다면 화면 오른쪽 상단에 있는 새로 고침 아이콘을 사용하여 상태를 새로 고침하십시오.
스냅샷이 완료되면 아래와 같이 상태가 완료로 표시됩니다.

이제 AWS EC2 백업을 만들었습니다!
AWS CLI를 사용하여 EBS 스냅샷 생성하기
마지막 섹션에서는 AWS 웹 기반 콘솔을 사용하여 EBS 스냅샷을 만들었지만, 이것이 유일한 방법은 아닙니다! AWS CLI를 사용하여 스냅샷을 만들어 EC2 인스턴스를 백업할 수도 있습니다.
AWS CLI를 설치하고 계정에 인증된 상태라고 가정하고 스냅샷을 만들려면 다음 단계를 따르세요:
- Windows 컴퓨터에서 명령 프롬프트 또는 PowerShell 콘솔을 엽니다.
2. aws ec2 describe-volumes
명령을 실행하고 --query
매개변수를 사용하여 인스턴스 및 볼륨 ID 목록을 출력합니다. 스냅샷을 만들려는 볼륨 ID를 기록하세요.
3. 다음 매개변수를 제공하여 aws ec2 create-snapshot
명령을 실행하세요:
volume-id
– 백업을 시도하는 EBS 볼륨의 고유한 볼륨 IDdescription
– 백업에 적용할 설명tag-specifications
– 백업에 추가할 태그
다음 명령은 --volume-id
매개변수를 사용하여 지정한 볼륨의 스냅샷을 생성합니다. 스냅샷에는 AWS CLI를 통한 ATA 블로그용 볼륨 스냅샷 설명과 이름: FileServer01 및 목적: 기업용 파일 저장소 두 가지 태그가 있습니다.

AWS는 사용자 기호에 따라 AWS CLI 명령의 기본 출력 형식을 구성할 수 있습니다. 출력 형식 옵션으로는 JSON, YAML, YAML-Stream, Text 및 Table이 포함됩니다. 명령의 출력은 AWS CLI 구성에 따라 달라질 수 있으며 위에 표시된 출력과 다를 수 있습니다.
4. 이제 aws ec2 describe-snapshots
명령을 사용하여 스냅샷의 상태를 확인하려면 스냅샷의 ID를 --snapshot-id
매개변수에 제공하세요. 스텝 2에서 반환된 SnapshotID
속성에서 스냅샷 ID를 찾으세요.
스냅샷 ID를 모르는 경우,
aws ec2 describe-snapshots --owner self
를 사용하여 모든 스냅샷을 검색합니다.
describe-snapshots
명령은 Progress
가 100%
이고 State
가 completed
인 결과를 반환해야 합니다. 아래와 같이 나타납니다.

잘 하셨습니다! AWS CLI를 사용하여 EBS 스냅샷을 프로그래밍 방식으로 생성했습니다!
다음 단계
이 튜토리얼에서는 웹 기반 AWS 콘솔과 프로그래밍 방식의 AWS CLI를 사용하여 Amazon EC2 인스턴스의 EBS 스냅샷을 백업하는 방법을 배웠습니다.
이 튜토리얼에서 생성한 스냅샷으로 테스트를 마친 경우, 청구를 피하기 위해 반드시 삭제해야 합니다!
더 나아가서, EC2 인스턴스를 복원해보는 것은 어떨까요?