Windows PowerShell を使用した Amazon EC2 インスタンスの起動 - AWS Tools for PowerShell

Windows PowerShell を使用した Amazon EC2 インスタンスの起動

Amazon EC2 インスタンスの起動には、前のセクションで作成したキーペアとセキュリティグループが必要です。また、Amazon Machine Image (AMI) の ID も必要です。詳細については、次のドキュメントを参照してください。

重要

無料利用枠に含まれないインスタンスを起動する場合は、インスタンスを起動すると料金が発生し、そのインスタンスの実行中はアイドル状態であっても料金がかかります。

EC2-Classic でのインスタンスの起動

次のコマンドは、単一の t1.micro インスタンスを作成して起動します。

PS > New-EC2Instance -ImageId ami-c49c0dac ` -MinCount 1 ` -MaxCount 1 ` -KeyName myPSKeyPair ` -SecurityGroups myPSSecurityGroup ` -InstanceType t1.micro ReservationId : r-b70a0ef1 OwnerId : 123456789012 RequesterId : Groups : {myPSSecurityGroup} GroupName : {myPSSecurityGroup} Instances : {}

最初、インスタンスは pending 状態ですが、数分後には running 状態になります。インスタンスに関する情報を表示するには、Get-EC2Instance コマンドレットを使用します。複数のインスタンスがある場合は、Filter パラメータを使用して予約 ID の結果をフィルタします。まず、Amazon.EC2.Model.Filter 型のオブジェクトを作成します。次に、フィルターを使用する Get-EC2Instance を呼び出し、Instances プロパティを表示します。

PS > $reservation = New-Object 'collections.generic.list[string]' PS > $reservation.add("r-5caa4371") PS > $filter_reservation = New-Object Amazon.EC2.Model.Filter -Property @{Name = "reservation-id"; Values = $reservation} PS > (Get-EC2Instance -Filter $filter_reservation).Instances AmiLaunchIndex : 0 Architecture : x86_64 BlockDeviceMappings : {/dev/sda1} ClientToken : EbsOptimized : False Hypervisor : xen IamInstanceProfile : ImageId : ami-c49c0dac InstanceId : i-5203422c InstanceLifecycle : InstanceType : t1.micro KernelId : KeyName : myPSKeyPair LaunchTime : 12/2/2018 3:38:52 PM Monitoring : Amazon.EC2.Model.Monitoring NetworkInterfaces : {} Placement : Amazon.EC2.Model.Placement Platform : Windows PrivateDnsName : PrivateIpAddress : 10.25.1.11 ProductCodes : {} PublicDnsName : PublicIpAddress : 198.51.100.245 RamdiskId : RootDeviceName : /dev/sda1 RootDeviceType : ebs SecurityGroups : {myPSSecurityGroup} SourceDestCheck : True SpotInstanceRequestId : SriovNetSupport : State : Amazon.EC2.Model.InstanceState StateReason : StateTransitionReason : SubnetId : Tags : {} VirtualizationType : hvm VpcId :

VPC でのインスタンスの起動

次のコマンドでは、指定したプライベートサブネットで、単一の m1.small インスタンスを作成しています。セキュリティグループは、指定したサブネットに対して有効である必要があります。

PS > New-EC2Instance ` -ImageId ami-c49c0dac ` -MinCount 1 -MaxCount 1 ` -KeyName myPSKeyPair ` -SecurityGroupId sg-5d293231 ` -InstanceType m1.small ` -SubnetId subnet-d60013bf ReservationId : r-b70a0ef1 OwnerId : 123456789012 RequesterId : Groups : {} GroupName : {} Instances : {}

最初、インスタンスは pending 状態ですが、数分後には running 状態になります。インスタンスに関する情報を表示するには、Get-EC2Instance コマンドレットを使用します。複数のインスタンスがある場合は、Filter パラメータを使用して予約 ID の結果をフィルタします。まず、Amazon.EC2.Model.Filter 型のオブジェクトを作成します。次に、フィルターを使用する Get-EC2Instance を呼び出し、Instances プロパティを表示します。

PS > $reservation = New-Object 'collections.generic.list[string]' PS > $reservation.add("r-b70a0ef1") PS > $filter_reservation = New-Object Amazon.EC2.Model.Filter -Property @{Name = "reservation-id"; Values = $reservation} PS > (Get-EC2Instance -Filter $filter_reservation).Instances AmiLaunchIndex : 0 Architecture : x86_64 BlockDeviceMappings : {/dev/sda1} ClientToken : EbsOptimized : False Hypervisor : xen IamInstanceProfile : ImageId : ami-c49c0dac InstanceId : i-5203422c InstanceLifecycle : InstanceType : m1.small KernelId : KeyName : myPSKeyPair LaunchTime : 12/2/2018 3:38:52 PM Monitoring : Amazon.EC2.Model.Monitoring NetworkInterfaces : {} Placement : Amazon.EC2.Model.Placement Platform : Windows PrivateDnsName : PrivateIpAddress : 10.25.1.11 ProductCodes : {} PublicDnsName : PublicIpAddress : 198.51.100.245 RamdiskId : RootDeviceName : /dev/sda1 RootDeviceType : ebs SecurityGroups : {myPSSecurityGroup} SourceDestCheck : True SpotInstanceRequestId : SriovNetSupport : State : Amazon.EC2.Model.InstanceState StateReason : StateTransitionReason : SubnetId : subnet-d60013bf Tags : {} VirtualizationType : hvm VpcId : vpc-a01106c2

VPC でのスポットインスタンスの起動

次のスクリプト例は、指定されたサブネットのスポットインスタンスをリクエストします。セキュリティグループは、指定したサブネットが含まれている VPC 用に作成したものである必要があります。

$interface1 = New-Object Amazon.EC2.Model.InstanceNetworkInterfaceSpecification $interface1.DeviceIndex = 0 $interface1.SubnetId = "subnet-b61f49f0" $interface1.PrivateIpAddress = "10.0.1.5" $interface1.Groups.Add("sg-5d293231") Request-EC2SpotInstance ` -SpotPrice 0.007 ` -InstanceCount 1 ` -Type one-time ` -LaunchSpecification_ImageId ami-7527031c ` -LaunchSpecification_InstanceType m1.small ` -Region us-west-2 ` -LaunchSpecification_NetworkInterfaces $interface1