EBS는 교육방송 입니다만… 여기서 지칭하는 EBS는 Elastic Block Storage입니다. AWS에서 지원하는 보조기억공간? 이라고 지칭해 봅시다. 간단히 말해 가상 디스크입니다. 가상 디스크라는 것은 말 그대로 가상머신에서 사용하는 디스크라고 이해하시면 쉽습니다. 우리가 가상디스크를 다룰 때 알아야 할 중요한 사실은 세 가지쯤 됩니다.
1. 가상디스크는 디스크이다.
말 그대로 디스크입니다. 컴퓨터에 디스크를 처음 연결하면 하시는 작업이 뭐죠? 파일시스템 생성과 포멧입니다. 그렇다면 가상디스크도 당연히 위 작업을 진행해 주셔야 합니다. 그리고 파일시스템의 문제는 가상디스크 문제가 아닌 OS문제입니다.
2. 가상디스크는 씬프로비저닝이다.
이건 대부분의 스토리지를 사용해 보신 분들이라면 이해하실 겁니다. 스토리지 공간을 효율적으로 사용하기 위해서는 씩(thick) 프로비저닝을 사용하게 되면, 사용하지 않는 공간도 전부 디스크 할당을 받기 때문에 운영자 입장에서는 낭비로 인식될 수 있습니다. 그래서 쓴 만큼 디스크 공간을 할당 받는 씬(thin) 프로비저닝을 씁니다.
3. 가상디스크는 파일이다.
아주 기본적인 내용입니다만, 간과하시는 분들이 계십니다. AWS를 사용하시는 분들은 EC2 설정 값도 파일로 저장된다는 사실을 알고 계실 것입니다. 파일로 되어있다는 뜻은 전송 중이거나 또는 잘못 조작을 하여 가상디스크 파일이 깨져버리면 복구할 방법이 없다는 사실입니다. 그럼 우리가 해야 할 일은? 당연히 백업입니다.
위 내용들을 알고 있다면, EBS를 다루는데 큰 문제가 없을 것입니다.
그럼 서론은 여기까지 하고 EBS를 검색해 봅시다.
PS> Get-EC2Volume
깔끔하게 두 개의 EBS가 출력되었습니다. 현재 EC2 Instance가 2개가 있으니 EBS가 2개 있는 것입니다. EBS 없이 EC2 Instance를 운영할 수도 있지만, 저장공간이 필요 없는 서버를 운영하시는 경우는 많지 않으니 기본적으로 EC2 하나에 EBS 하나씩은 연결하여 사용하실 것이라 생각됩니다.
그럼 속성 값들을 확인해 보겠습니다.
Attachments: EBS 연결정보입니다.
AvailabilityZone: EBS AZ 위치입니다.
CreateTime: EBS 생성 시간입니다.
Encrypted: 암호와 여부입니다.
Iops: EBS에 정의된 IOPS 값입니다.
KmsKeyId: kms key ID 입니다.
Size: EBS의 용량입니다. 단위는 GB입니다.
SnapshotId: EBS 생성시 참조된 Snapshot ID입니다.
State: EBS 상태입니다.
Tags: 태그..
VolumeId: EBS Volume ID입니다.
VolumeType: EBS Volume Type 입니다.
속성들을 보니 EBS는 암호화를 지원하는 것을 알 수 있네요. 다른 내용들을 다 이해가 되실 텐데 Volume Type 부분이 추가 설명이 필요해 보이는군요. 그럼 Volume Type에 대해 잠시 설명하도록 하겠습니다.
- General Purpose (SSD) Volumes (gp2)
범용 Volume Type 입니다. SSD가 보급화 되면서 AWS에서는 기본적으로 SSD Volume을 제공합니다. 해당 볼륨은 보통 System Boot Volume이나 VDI, 작은 규모의 SQL 서버, 개발 및 테스트환경에 사용합니다. 용량은 1GiB~1TiB까지 설정 가능하며, 1GiB당 3 IOPS를 제공합니다. MAX IOPS 값은 3,000 이며, Maximum Throughput은 160MiB/s입니다. 특이점은 idle IOPS에 대해 크래딧을 축적하며, 최고 5,400,000 I/O 크래딧을 축적할 수 있습니다. 이 크래딧은 해당 Volume에 갑작스러운 IOPS를 요구할 때 사용되며, 최대 3,000 IOPS 까지 부스팅 됩니다. 크래딧을 전부 소모하면 기존 설정된 IOPS로 돌아옵니다. I/O 크래딧 부스팅은 3,000 IOPS 까지만 제공하기 때문에 Volume I/O를 3,000으로 설정하게 되면 해당 크래딧은 축적하지 않습니다.
- Provisioned IOPS (SSD) Volumes (io1, piops)
I/O 특화된 SSD Volume을 제공해 줍니다. 지속적인 IOPS 성능이 gp2의 최대 IOPS보다 높은 값이 요구되거나, Throughput이 160MiB/s 이상 요구되는 환경에서 사용합니다. 보통 대규모 DB 서버에서 사용합니다. 용량은 4GiB~16TiB까지 지원 가능하며, Maximum Throughput은 320MiB/s 입니다. 최대 20,000 IOPS까지 설정할 수 있으며, gp2와 달리 Volume 용량과 관계 없이 IOPS를 설정할 수 있습니다.
- Magnetic Volumes (standard, EBS)
기존 HDD 형식의 Volume을 제공해 줍니다. 자주 접근하지 않는 데이터나 스토리지 비용을 최소하 화는 비즈니스에 적합합니다. 용량은 1GiB~1TiB까지 설정 가능하며 약 100 IOPS를 제공해 줍니다. Maximum Throughput은 40~90MiB/s이며 RAID를 구성하여 성능을 끌어올릴 수도 있습니다. 현재는 잘 사용하지 않는 Type 입니다.
위 내용은 꼭 읽어보시고 숙지하시기 바랍니다. 모든 IT 엔지니어들이 동일하게 고려해야 할 부분이 버로 컴퓨팅과 네트워크 그리고 저장소인 만큼 중요 고려사항이니 꼭꼭 숙지하시기 바랍니다.
그럼 Volume을 만들어 보겠습니다.
PS> New-EC2Volume -AvailabilityZone
us-west-2a -VolumeType gp2 -Size 5
볼륨이 하나 생성되었습니다. 어디에도 연결되지 않은 따끈따끈한 Volume 입니다. 원본 Snapshot이 없기 때문에 SnapshotId 값이 비어있는 것을 확인하실 수 있습니다. 그럼 Instance에 Mount해 보도록 하겠습니다.
PS> Add-EC2Volume -InstanceId i-4f846d88
-Device sdf -VolumeId vol-830c2374
정상적으로 mount 되었습니다. 여기서 유심히 봐야 할 부분은 Device 입니다. 다음 캡쳐화면을 보면서 설명 드리겠습니다.
출처: http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/device_naming.html
위 표는 Linux용 표 입니다. 보시면 아시겠지만 지정 가능한 Device 를 설정하셔야 정상적으로 Mount 됩니다. 위 표에서 Recommended에 표시된 대로 Device를 설정하셔서 Mount 하시면 손쉽게 사용 가능합니다.
Windows 는 다음 표를 참고하셔야 합니다.
출처: http://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/device_naming.html
Volume Mount시에 고려사항이 많으니 꼭 위 사이트에 접속하셔서 OS Type별로 고려사항을 확인하셔야 합니다.
한가지 더 고려사항이 있습니다. 바로 EC2 Instance 별 사용 가능한 Volume 크기 및 개수입니다.
잘못된 내용이 있어 수정합니다. 아래의 내용은 인스턴스 스토어라고 하여서 Hypervisor의 DAS영역을 사용하는 용량입니다. 페이지를 방문하시면 아시겠지만 '이전 세대 Instance Type의 내용'입니다.
출처 : http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html
위 사이트도 접속하셔서 사용하고 있는 Instance Type 별로 사용 가능한 Volume 내용을 꼭 확인해 보시기 바랍니다.
Instance를 AWS Consol로 제작시 EBS Only로 나오는 Instance Type은 위의 저장공간을 활용하실 수 없습니다.
Instance가 Windows일 시에는 Mount된 Volume이 LUN으로 Mapping되니 다음 사이트를 참고하시기 바랍니다.
Disk Mapping : http://docs.aws.amazon.com/ko_kr/AWSEC2/latest/WindowsGuide/ec2-windows-volumes.html
Volume을 Mount 해 봤으니 이제 Dismount할 차례입니다.
PS> Dismount-EC2Volume -InstanceId i-4f846d88 -VolumeId vol-830c2374
PS> Get-EC2Volume -VolumeId vol-830c2374
정상적으로 Volume이 Dismount 되었습니다.
이런저런 설명이 길어져서 블로깅이 엄청 길어졌기 때문에 Volume 초기화에 대한 내용은 다음으로 미루겠습니다.
참고 : http://docs.aws.amazon.com/ko_kr/AWSEC2/latest/UserGuide/concepts.html
'AWS > 파워쉘로 배우는 AWS' 카테고리의 다른 글
#20-1 [EBS] EBS 초기화를 해보자 (0) | 2016.02.12 |
---|---|
#19 [EC2] NIC(ENI)를 추가해보자. (0) | 2016.01.22 |
#18 [EC2] 고정 IP(EIP)와 Public DNS (0) | 2016.01.12 |
#17 [EC2] Windows Instance를 만들어 보자. (0) | 2016.01.08 |
#16 [EC2] Linux Instance를 생성해 보자. (0) | 2016.01.08 |