Amazon EC2 인스턴스의 볼륨 블록 디바이스 매핑
Amazon EC2 인스턴스의 볼륨 블록 디바이스 매핑 (Block device mappings for volumes on Amazon EC2 instances)
시작하는 각 인스턴스에는 Amazon EBS 볼륨 또는 인스턴스 스토어 볼륨인 연결된 루트 볼륨이 있어요. 블록 디바이스 매핑을 사용해 인스턴스를 시작할 때 연결할 추가 EBS 볼륨이나 인스턴스 스토어 볼륨을 지정할 수 있어요. 실행 중인 인스턴스에 추가 EBS 볼륨을 연결할 수도 있어요. 그러나 인스턴스에 인스턴스 스토어 볼륨을 연결하는 유일한 방법은 인스턴스를 시작할 때 블록 디바이스 매핑으로 볼륨을 연결하는 것이에요.
목차 (Contents)
- 블록 디바이스 매핑 개념
- AMI에 블록 디바이스 매핑 추가
- Amazon EC2 인스턴스에 블록 디바이스 매핑 추가
블록 디바이스 매핑 개념 (Block device mapping concepts)
블록 디바이스는 바이트나 비트(블록) 시퀀스로 데이터를 이동시키는 스토리지 디바이스예요. 이러한 디바이스는 임의 액세스를 지원하며 일반적으로 버퍼링된 I/O를 사용해요. 예로는 하드 디스크, CD-ROM 드라이브, 플래시 드라이브가 있어요. 블록 디바이스는 컴퓨터에 물리적으로 연결되거나, 물리적으로 연결된 것처럼 원격으로 액세스할 수 있어요.
Amazon EC2는 두 가지 유형의 블록 디바이스를 지원해요:
- 인스턴스 스토어 볼륨 — 기본 하드웨어가 인스턴스의 호스트 컴퓨터에 물리적으로 연결된 가상 디바이스
- EBS 볼륨 — 원격 스토리지 디바이스
블록 디바이스 매핑은 인스턴스에 연결할 블록 디바이스(인스턴스 스토어 볼륨과 EBS 볼륨)를 정의해요. AMI 생성의 일부로 블록 디바이스 매핑을 지정하면 해당 AMI에서 시작한 모든 인스턴스가 그 매핑을 사용해요. 또는 인스턴스를 시작할 때 블록 디바이스 매핑을 지정할 수도 있는데, 이 경우 이 매핑이 인스턴스를 시작한 AMI에 지정된 매핑을 재정의해요. 인스턴스 유형이 지원하는 모든 NVMe 인스턴스 스토어 볼륨은 인스턴스 시작 시 자동으로 열거되고 디바이스 이름이 할당된다는 점에 유의하세요. 블록 디바이스 매핑에 포함해도 효과가 없어요.
목차 (Contents)
- 블록 디바이스 매핑 항목
- 블록 디바이스 매핑 인스턴스 스토어 주의 사항
- 예시 블록 디바이스 매핑
- 운영 체제에서 디바이스가 제공되는 방식
블록 디바이스 매핑 항목 (Block device mapping entries)
블록 디바이스 매핑을 만들 때 인스턴스에 연결해야 하는 각 블록 디바이스에 대해 다음 정보를 지정해요:
- Amazon EC2 내에서 사용되는 디바이스 이름. 인스턴스의 블록 디바이스 드라이버는 볼륨을 마운트할 때 실제 볼륨 이름을 할당해요. 할당된 이름은 Amazon EC2가 권장하는 이름과 다를 수 있어요. 자세한 내용은 Amazon EC2 인스턴스의 볼륨 디바이스 이름을 참고하세요.
인스턴스 스토어 볼륨의 경우 다음 정보도 지정해요:
- 가상 디바이스:
ephemeral[0-23]. 인스턴스에 사용 가능한 인스턴스 스토어 볼륨의 수와 크기는 인스턴스 유형에 따라 다르다는 점에 유의하세요.
NVMe 인스턴스 스토어 볼륨의 경우 다음 정보도 적용돼요:
- 이러한 볼륨은 자동으로 열거되고 디바이스 이름이 할당되므로 블록 디바이스 매핑에 포함해도 효과가 없어요.
EBS 볼륨의 경우 다음 정보도 지정해요:
- 블록 디바이스를 만드는 데 사용할 스냅샷의 ID(
snap-xxxxxxxx). 볼륨 크기를 지정하는 한 이 값은 선택 사항이에요. 보관된(archived) 스냅샷의 ID는 지정할 수 없어요. - 볼륨 크기(GiB). 지정된 크기는 지정된 스냅샷의 크기보다 크거나 같아야 해요.
- 인스턴스 종료 시 볼륨을 삭제할지 여부(
true또는false). 기본값은 루트 볼륨의 경우true, 연결된 볼륨의 경우false예요. AMI를 만들면 해당 블록 디바이스 매핑이 인스턴스에서 이 설정을 상속해요. 인스턴스를 시작하면 인스턴스가 AMI에서 이 설정을 상속해요. - 볼륨 유형. 범용 SSD(General Purpose SSD)의 경우
gp2및gp3, 프로비저닝된 IOPS SSD(Provisioned IOPS SSD)의 경우io1및io2, 처리량 최적화 HDD(Throughput Optimized HDD)의 경우st1, 콜드 HDD(Cold HDD)의 경우sc1, 마그네틱(Magnetic)의 경우standard일 수 있어요. - 볼륨이 지원하는 초당 입출력 작업 수(IOPS). (
io1및io2볼륨에만 사용됨.) - 일부 인스턴스 유형은 둘 이상의 EBS 카드를 지원해요. EBS 카드 인덱스를 지정해 볼륨이 연결될 EBS 카드를 선택할 수 있어요. 자세한 내용은 EBS 카드를 참고하세요.
블록 디바이스 매핑 인스턴스 스토어 주의 사항 (Block device mapping instance store caveats)
블록 디바이스 매핑에 인스턴스 스토어 볼륨이 있는 AMI로 인스턴스를 시작할 때 고려해야 할 여러 주의 사항이 있어요:
- 일부 인스턴스 유형은 다른 인스턴스 유형보다 더 많은 인스턴스 스토어 볼륨을 포함하고, 일부 인스턴스 유형에는 인스턴스 스토어 볼륨이 전혀 없어요. 인스턴스 유형이 인스턴스 스토어 볼륨 하나를 지원하고 AMI에 인스턴스 스토어 볼륨 두 개에 대한 매핑이 있다면 인스턴스는 하나의 인스턴스 스토어 볼륨으로 시작해요.
- 인스턴스 스토어 볼륨은 시작 시에만 매핑할 수 있어요. 인스턴스 스토어 볼륨이 없는 인스턴스(예: t2.micro)를 중지하고 인스턴스 유형을 인스턴스 스토어 볼륨을 지원하는 유형으로 변경한 뒤 인스턴스 스토어 볼륨으로 인스턴스를 다시 시작할 수는 없어요. 그러나 인스턴스에서 AMI를 만들고 이를 인스턴스 스토어 볼륨을 지원하는 인스턴스 유형에서 시작해 인스턴스 스토어 볼륨을 인스턴스에 매핑할 수는 있어요.
- 인스턴스 스토어 볼륨이 매핑된 인스턴스를 시작한 뒤 중지하고 인스턴스 유형을 인스턴스 스토어 볼륨이 더 적은 유형으로 변경해 다시 시작하면 초기 시작의 인스턴스 스토어 볼륨 매핑이 인스턴스 메타데이터에 계속 표시돼요. 그러나 해당 인스턴스 유형이 지원하는 최대 인스턴스 스토어 볼륨 수만 인스턴스에 사용 가능해요.
참고 인스턴스가 중지되면 인스턴스 스토어 볼륨의 모든 데이터가 손실돼요.
- 시작 시 인스턴스 스토어 용량에 따라 M3 인스턴스는 시작 시 지정하지 않으면 AMI 인스턴스 스토어 블록 디바이스 매핑을 무시할 수 있어요. 시작하는 AMI에 인스턴스 스토어 볼륨이 매핑되어 있어도 시작 시 인스턴스 스토어 블록 디바이스 매핑을 지정해 인스턴스 시작 시 인스턴스 스토어 볼륨을 사용할 수 있게 해야 해요.
예시 블록 디바이스 매핑 (Example block device mapping)
이 그림은 EBS 기반 인스턴스의 예시 블록 디바이스 매핑을 보여줘요. /dev/sdb를 ephemeral0에 매핑하고 두 개의 EBS 볼륨을 각각 /dev/sdh와 /dev/sdj에 매핑해요. 또한 루트 볼륨인 EBS 볼륨 /dev/sda1을 보여줘요.
이 예시 블록 디바이스 매핑은 이 주제의 예시 명령과 API에서 사용된다는 점에 유의하세요. 블록 디바이스 매핑을 만드는 예시 명령과 API는 'AMI용 블록 디바이스 매핑 지정' 및 '인스턴스 시작 시 블록 디바이스 매핑 업데이트'에서 찾을 수 있어요.
운영 체제에서 디바이스가 제공되는 방식 (How devices are made available in the operating system)
/dev/sdh 및 xvdh 같은 디바이스 이름은 Amazon EC2가 블록 디바이스를 설명하는 데 사용해요. 블록 디바이스 매핑은 EC2 인스턴스에 연결할 블록 디바이스를 지정하는 데 Amazon EC2가 사용해요. 블록 디바이스가 인스턴스에 연결된 후 스토리지 디바이스에 액세스하려면 운영 체제가 마운트해야 해요. 블록 디바이스가 인스턴스에서 분리되면 운영 체제가 마운트를 해제하며 더 이상 스토리지 디바이스에 액세스할 수 없어요.
- Linux 인스턴스 — 블록 디바이스 매핑에 지정된 디바이스 이름은 인스턴스가 처음 부팅될 때 해당 블록 디바이스에 매핑돼요. 인스턴스 유형은 기본적으로 포맷·마운트되는 인스턴스 스토어 볼륨을 결정해요. 인스턴스 유형에 사용 가능한 인스턴스 스토어 볼륨 수를 초과하지 않는 한 시작 시 추가 인스턴스 스토어 볼륨을 마운트할 수 있어요. 자세한 내용은 EC2 인스턴스용 인스턴스 스토어 임시 블록 스토리지를 참고하세요. 인스턴스의 블록 디바이스 드라이버는 볼륨이 포맷·마운트될 때 사용되는 디바이스를 결정해요.
- Windows 인스턴스 — 블록 디바이스 매핑에 지정된 디바이스 이름은 인스턴스가 처음 부팅될 때 해당 블록 디바이스에 매핑된 뒤 Ec2Config 서비스가 드라이브를 초기화하고 마운트해요. 루트 볼륨은
C:\로 마운트돼요. 인스턴스 스토어 볼륨은Z:\,Y:\등으로 마운트돼요. EBS 볼륨이 마운트되면 사용 가능한 드라이브 문자를 사용해 마운트될 수 있어요. 그러나 드라이브 문자가 EBS 볼륨에 할당되는 방식을 구성할 수 있어요. 자세한 내용은 Amazon EC2 Windows 인스턴스의 Windows 시작 에이전트를 참고하세요.