Sure, you can start or stop an EC2 instance in the AWS console by just searching for its name and click, click, click, get it done.
But it’s much more manly (or womanly) to start the instance via a command, which in my case means an AWS PowerShell cmdlet. The rub is that to start an instance using the AWS API, you have to supply the unique EC2 instance ID. When you are working in the console, you are probably thinking in instance names, not instance IDs. But in a cmdlet talking to the AWS API, logical names would be imprecise.
So, as long as you are sure your instance name tags are unique, this one-liner does the trick.
( (Get-EC2Instance | ? { $_.instances.tag.value -match "YOUR NAME TAG HERE" } ).Instances).InstanceID | Start-EC2Instance
And no surprise, you can stop it the same way.
( (Get-EC2Instance | ? { $_.instances.tag.value -match "YOUR NAME TAG HERE" } ).Instances).InstanceID | Stop-EC2Instance
Leave a Reply