aws memo

AWS関連の備忘録 (※本ブログの内容は個人的見解であり、所属組織及び企業の意見を代弁するものではありません。1年以上古いエントリは疑ってかかってください)

連続するIPアドレスで複数台のインスタンスを起動する〜追加EBSも添えて〜

172.16.11.101〜 17216.11.120 まで、連続したIPアドレス群でインスタンス起動したいとうような事があります(hostsファイル必要なアレとか)。一緒にEBSをががっと付けたい時もあります。CLIでやった時のメモ。

 

まずはEBS構成。Block Device Mappingを指定した bdmapping.json を用意。

[
  {

    "DeviceName": "/dev/sdb",
    "Ebs": {
      "VolumeSize": 100,
      "DeleteOnTermination": true,
      "VolumeType": "gp2"
    }
  },
  {
    "DeviceName": "/dev/sdc",
    "Ebs": {
      "VolumeSize": 100,
      "DeleteOnTermination": true,
      "VolumeType": "io1",
      "Iops": 3000
    }
  }
]

上記だと、 /dev/sdbに 100GBの汎用SSD EBS  を、/dev/sdcに 100GB 3000IOPSの PIOPS EBSをアタッチする指定。

 

で、以下の様な感じで実行する。

for IP in `seq 101 120`
do
  aws ec2 run-instances \
    --region us-west-2 \
    --image-id ami-xxxxxx \
    --security-group-ids sg-yyyyyyy \
    --key-name id_rsa \
    --instance-type c4.8xlarge \
    --placement GroupName=C4 \
    --subnet-id subnet-zzzzzzz \
    --block-device-mappings file://bdmapping.json \
    --private-ip-address 172.16.11.$IP

done

上記例だと、 172.16.11.101〜172.16.11.120までの20台の C4.8xlargeを、 Placement Group名 C4 内に起動する事になる。

 

Spot Fleetで複数AZ指定ができるようになった

ので、メモ。

Spot fleet launches Spot instances in the lowest priced Availability Zone

本日(2015年7月24日)からSpotフリートの機能にて、spot fleet launch specificationで指定した複数VPCサブネットもしくはAZの中で最も安いAZにSpotインスタンスを起動するようになりました。以前は、複数サブネットの中で最安値のサブネットに起動したい場合には、自分自身で最安値のAZを決定し、Spotフリートリクエストを実行する必要がありました

ということで、spot fleet launch specificationの記載方法の自由度が増しました。

設定例(spot.json)

ここでは、 C3.8xlargeCC2.8xlargeを、subnet-aaaaaa (AZ-a)か subnet-bbbbbb(AZ-b)の組み合わせ4パターンのうち、最安値のパターンで、10台、$0.50で入札する、といった例。

{
    "SpotPrice": "0.50",
    "TargetCapacity": 10,
    "IamFleetRole": "arn:aws:iam::111111111111:role/SpotFleet",
    "LaunchSpecifications": [
       {
           "ImageId": "ami-xxxxxxx",
           "InstanceType": "cc2.8xlarge",
           "SubnetId": "subnet-aaaaaaaa"
       },
       {
           "ImageId": "ami-xxxxxxx",
           "InstanceType": "cc2.8xlarge",
           "SubnetId": "subnet-bbbbbbbb"
       },
       {
           "ImageId": "ami-xxxxxxx",
           "InstanceType": "c3.8xlarge",
           "SubnetId": "subnet-aaaaaaaa"
       },
       {
           "ImageId": "ami-xxxxxxx",
            "InstanceType": "c3.8xlarge",
           "SubnetId": "subnet-bbbbbbbb"
       }
    ]
}

実行

aws ec2 request-spot-fleet --region ap-northeast-1 \

  --spot-fleet-request-config file://spot.json

 Request時点で最安値のゾーン・タイプが10台 spot requestとして入札される。