ManagementConsoleからだとなぜか出来ない。
AWSCLIからだと作成できる
使いたいサブネットを調べる
aws ec2 describe-subnets --output json |jq '.Subnets[]|select(.State=="available")| {CIDR: .CidrBlock, SubnetID: .SubnetId}'
一覧が表示されるので、使いたいCIDRのSubnetIDをメモ
JQを使ってない場合は、|jq以降を削除
ネットワークインターフェースを作る
aws ec2 create-network-interface --private-ip-address <割り振りたいIPアドレス> --subnet-id <サブネットID>
NetworkInterfaceIdがレスポンスされるのでメモ
リクエストする
以下がAmazonLinux(HVM)でm3.largeのインスタンスを1台で
300GのSSDでリクエストする例です
同時にSecurityGroupを設定する事が出来ない為、インスタンス起動後に
別途設定する必要があります
aws ec2 request-spot-instances \ --spot-price "<払っていい時間あたりの金額($)>" \
--instance-count 1 \
--type "one-time" \
--launch-specification \
"{ \
\"ImageId\":\"ami-18869819\", \
\"KeyName\": \"<SSHの鍵の名前>\", \
\"InstanceType\":\"m3.large\", \
\"BlockDeviceMappings\": [{ \
\"DeviceName\": \"/dev/xvda\",
\"Ebs\": { \
\"VolumeSize\": 300, \
\"DeleteOnTermination\": false, \
\"VolumeType\": \"io1\", \
\"Iops\": 900,
\"Encrypted\": false } \
} \
], \
\"NetworkInterfaces\":[{\"NetworkInterfaceId\": \"<ネットワーク・インタフェースID>\", \"DeviceIndex\": 0}] \
}"
参考
--launch-specificationにセット出来るJsonのフォーマット
{
"ImageId": "string",
"KeyName": "string",
"SecurityGroups": ["string", ...],
"UserData": "string",
"AddressingType": "string",
"InstanceType": "m3.medium"|"m3.large"|"m3.xlarge"|"m3.2xlarge"|"t2.micro"|"t2.small"|"t2
.medium"|"m2.xlarge"|"m2.2xlarge"|"m2.4xlarge"|"cr1.8xlarge"|"i2.xlarge"|"i2.2xlarge"|"i2.4xlarge"|"i2.8xlarge"|"hi1.4xlarge"|"hs1.8xlarge"|"c1.medium"|"c1.xl
arge"|"c3.large"|"c3.xlarge"|"c3.2xlarge"|"c3.4xlarge"|"c3.8xlarge"|"c4.large"|"c4.xlarge"|"c4.2xlarge"|"c4.4xlarge"|"c4.8xlarge"|"cc1.4xlarge"|"cc2.8xlarge"|
"g2.2xlarge"|"cg1.4xlarge"|"r3.large"|"r3.xlarge"|"r3.2xlarge"|"r3.4xlarge"|"r3.8xlarge",
"Placement": {
"AvailabilityZone": "string",
"GroupName": "string"
},
"KernelId": "string",
"RamdiskId": "string",
"BlockDeviceMappings": [
{
"VirtualName": "string",
"DeviceName": "string",
"Ebs": {
"SnapshotId": "string",
"VolumeSize": integer,
"DeleteOnTermination": true|false,
"VolumeType": "standard"|"io1"|"gp2",
"Iops": integer,
"Encrypted": true|false
},
"NoDevice": "string"
}
...
],
"SubnetId": "string",
"NetworkInterfaces": [
{
"NetworkInterfaceId": "string",
"DeviceIndex": integer,
"SubnetId": "string",
"Description": "string",
"PrivateIpAddress": "string",
"Groups": ["string", ...],
"DeleteOnTermination": true|false,
"PrivateIpAddresses": [
{
"PrivateIpAddress": "string",
"Primary": true|false
}
...
],
"SecondaryPrivateIpAddressCount": integer,
"AssociatePublicIpAddress": true|false
}
...
],
"IamInstanceProfile": {
"Arn": "string",
"Name": "string"
},
"EbsOptimized": true|false,
"Monitoring": {
"Enabled": true|false
},
"SecurityGroupIds": ["string", ...]
}