본문 바로가기

AWS/파워쉘로 배우는 AWS

#12 [EC2] EC2 Image! AMI를 검색해 보자 (2/2)

#11 [EC2] EC2 Image! AMI 검색해 보자 (1/2) 포스팅에서 AMI검색에 대해 이것저것 알아보았습니다. 같은 명령을 써서 찾아봐야 하는데, Amazon Linux 검색했었으니 이번엔 Windows Server 2012 R2 검색해 봅시다.


PS> Get-EC2Image -Filter @{ name= 'description'; values= "*Windows Server 2012 R2*" }, `

@{ name= 'owner-alias'; values= "amazon" }, @{ name= 'virtualization-type'; values= "hvm" } `

| Select-Object ImageId, Description, CreationDate, BlockDeviceMappings `

| Sort-Object CreationDate -Descending


 


 

확인하시는 대로 Description 많은 정보들을 내포하고 있습니다. 확인해 보시면 Microsoft Windows Server 2012 R2 RTM 64-bit 버전의 OS들이네요. 뒤에 Locale이라고 씌여있는건 라이선스 입니다. 사용자 라이선스(Bring Your Own License) 사용하는 버전이 아니고 AWS Local License 사용하도록 되어있네요. 다음은 제품의 언어가 표시되어있고 어떤 AMI SQL 버전과 같이 제공이 되는군요.

이런 식으로 Description에는 실제 OS 정보, License 정보, 설치되어있는 Application 정보까지 많은 내용들을 내포하고 있습니다. 그도 그럴 것이 Description 이외에는 내용들을 기입할 곳이 마땅치 않거든요. Tag 좋은 방법이지만 제대로 활용하지 않는 같습니다.

 

이전에 검색했던 Amazon Linux 한번 볼까요?


PS> Get-EC2Image -Filter @{ name= 'description'; values= "*Amazon Linux*" }, `

@{ name= 'owner-alias'; values= "amazon" }, @{ name= 'virtualization-type'; values= "hvm" } `

| Select-Object ImageId, Description, CreationDate, BlockDeviceMappings `

| Sort-Object CreationDate -Descending


 


 

Amazon Linux AMI이고 날짜가 나오네요? CreationDate Description 날짜가 다른 것으로 봐서는 버전과 같은 개념으로 사용하는 같습니다. X86_64 플랫폼이고요.

뒤가 다양한데요. VPC NAT HVM EBS라는것을 보니 VPC NAT Instance 가리키는 같네요. 가상화에 EBS 볼륨을 사용한다고 합니다.

 

가만히 보시면 Amazon Linux AMI 2015.09.01 x86_64 HVM 다음에 EBS, GP2, S3 라는 것을 보실 있습니다. 차이는 다음과 같습니다.

  1. EBS: Root Device Type Magnetic Image입니다. 옛날 EBS에는 Magnetic Type EBS 볼륨만 존재했으며 지금까지 동일한 이름 정책을 가지고 있는 같습니다.
  2. GP2: Root Device Type General Purpose(SSD) Image입니다. General Purpose(SSD) GP2라고 부릅니다.
  3. S3: Root Device Type EBS 사용하지 않는 Image입니다. Instance 종료 Root Device 정보는 초기화 됩니다.

 

S3 형식은 EBS볼륨이 아닌 Instance-store 사용하며 실제 AMI속성을 보시면 다음과 같습니다.


PS> Get-EC2Image -ImageId ami-31342050


 


 

Instance Shutdown되면 이상 쓸모 없는 Instance S3 AMI 제작하면 EBS 사용량에 대한 금액이 발생하지 않음으로 충분히 고려해볼 있는 사항입니다.

 

OS 말고 벤더사가 제공하는 AMI 한번 살펴 볼까요? 누구에게나 친숙하고 가장 만만한 Cisco 검색해 봅시다.


PS> Get-EC2Image -Filter @{ name= 'description'; values= "*Cisco*" }, `

@{ name= 'virtualization-type'; values= "hvm" } `

| Select-Object ImageId, Description, CreationDate, BlockDeviceMappings `

| Sort-Object CreationDate -Descending


 


 

역시 기대를 져버리지 않고 나오네요. Cisco Virtualization Switch 1000v입니다. Nexus series 알고 있는 장비네요. 음… Description에 뭐라고 나와있긴 한데 해석할 있는 BYOL정도네요.

검색된 AMI 하나만 찍어서 세부정보를 확인해 봅시다.


PS> Get-EC2Image -ImageId ami-4b02597b


 


 

음… 역시 해석할 있는 정보들은 많이 없네요. AMI 속성에 ImageOwnerAlias가 aws-marketplace인 AMI 있으면 아래 링크를 통해 확인하고 사용하시는 것이 좋습니다. 잘못 만들면 License 비용이 만만치 않을 있으니까요.

AWS marketplace: https://aws.amazon.com/marketplace

 

지금까지 AMI 검색하여 ImageId 얻는 방법에 대해 알아봤습니다. 주의하셔야 부분은 AMI 고정이 아니라 변한다는 사실을 기억하시고, 어제의 ImageId 오늘도 동일한 ImageId 아닐 있다는 기억하시기 바랍니다. 최신 AMI 추척 하시려면 나름대로의 알고리즘으로 스크립트에 반영하셔야 합니다.

 

참고자료 : http://docs.aws.amazon.com/ko_kr/AWSEC2/latest/UserGuide/concepts.html