Amazon EC2 インスタンスの停止と起動
インスタンスにルートデバイスとして Amazon EBS ボリュームがある場合、そのインスタンスを停止して起動できます。ユーザーがインスタンスを停止すると、インスタンスはシャットダウンされます。インスタンスを起動すると、通常、インスタンスは基盤となる新しいホストコンピュータに移行され、新しいパブリック IPv4 アドレスが割り当てられます。
インスタンスの停止は、ユーザーが開始する (インスタンスを手動で停止する場合) ことも、AWS が開始する (インスタンスの基盤となるホストの回復不可能な障害が AWS によって検出されたときに発生するスケジュールされた停止イベントに応じて) こともできます。
ユーザーが開始する停止の場合は、インスタンスからオペレーティングシステムの停止コマンドを実行するのではなく、Amazon EC2 コンソール、CLI、または API を使用することをお勧めします。Amazon EC2 を使用する場合、インスタンスが数分以内に正常にシャットダウンされない場合、Amazon EC2 はハードシャットダウンを実行します。さらに、AWS CloudTrail はインスタンスが停止したたときの API レコードを作成します。
このトピックでは、ユーザーが開始する停止を実行する方法について説明します。AWS によって実行される停止の詳細については、「停止またはリタイアがスケジュールされている Amazon EC2 インスタンスを管理する」を参照してください。
インスタンスを停止しても、そのインスタンスは削除されません。インスタンスが必要なくなったら、終了することができます。詳細については「Amazon EC2 インスタンスを終了する」を参照してください。インスタンスを休止状態にしてインスタンスメモリ (RAM) の内容を保存する場合はを参照してください。Amazon EC2 インスタンスの休止インスタンスライフサイクルアクションの違いについてはを参照してください。インスタンスの状態の違い
インスタンスを手動で停止して起動する
ユーザーはAmazon EBS-backed インスタンス (EBS ルートデバイスを備えたインスタンス) を停止および起動できます。インスタンスストアのルートデバイスを使用して、インスタンスを停止および起動することはできません。
インスタンスを停止すると、インスタンスストアボリューム上のデータは消去されます。インスタンスを停止する前に、必要なデータをインスタンスストアボリュームから永続的ストレージ (Amazon EBS や Amazon S3 など) にコピーしていることを確認します。
[Linux インスタンス] インスタンスから OS halt コマンドを使用しても、シャットダウンは開始されません。haltコマンドを使用すると、インスタンスは終了せず、代わりに CPU をに配置して HLT
CPU 操作を一時停止します。インスタンスは実行状態のままです。
OSの shutdown コマンドまたは poweroff コマンドを使用してシャットダウンを開始できます。OS コマンドを使用すると、インスタンスはデフォルトで停止します。この動作はいつでも変更できます。詳細については、「インスタンスによるシャットダウン動作を変更する」を参照してください。
- Console
-
Amazon EBS-Backed インスタンスを停止および起動するには
-
Amazon EC2 コンソールの https://console.aws.amazon.com/ec2/ を開いてください。
-
ナビゲーションペインで [インスタンス] を選択し、該当するインスタンスを選択してください。
-
[インスタンスの状態]、[インスタンスの停止] の順に選択してください。このオプションが無効になっている場合はインスタンスが既に停止しているか、またはルートボリュームがインスタンスストアボリュームです。
-
確認を求められたら、[Stop] を選択してください。インスタンスが停止するまで、数分かかる場合があります。
-
停止されているインスタンスを開始するにはインスタンスを選択後、[インスタンスの状態]、[インスタンスの開始] の順に選択してください。
-
インスタンスが running
状態になるまで、数分かかる場合があります。
-
Amazon EBS-Backed インスタンスを停止し、stopping
状態に 「stuck」 が表示されている場合、インスタンスを強制終了できます。詳細については、「Amazon EC2 インスタンスの停止に関する問題のトラブルシューティング」を参照してください。
- AWS CLI
-
インスタンスを停止するには
stop-instances コマンドを使用します。
aws ec2 stop-instances --instance-ids i-1234567890abcdef0
インスタンスを起動するには
start-instances コマンドを使用します。
aws ec2 start-instances --instance-ids i-1234567890abcdef0
- PowerShell
-
インスタンスを停止するには
Stop-EC2Instance コマンドレットを使用します。
Stop-EC2Instance -InstanceId i-1234567890abcdef0
インスタンスを起動するには
Start-EC2Instance コマンドレットを使用します。
Start-EC2Instance -InstanceId i-1234567890abcdef0
インスタンスを自動的に停止して起動する
次のサービスを使用して、インスタンスの停止と起動を自動化できます。
実行中および停止中のインスタンスをすべて検索
Amazon EC2 グローバルビューではすべてにわたって、実行中と停止中のすべての AWS リージョン のインスタンスを 1 つのページで確認できます。これはインベントリを取得し、忘れられたインスタンスを見つけるのに特に有用です。グローバルビューを使用する方法については「Amazon EC2 Global View を使用して、リージョン間のリソースを表示する」を参照してください。
あるいは、インスタンスがある各リージョンで、コマンドまたはコマンドレットを実行できます。
- AWS CLI
-
リージョンにある EC2 インスタンスの数を入手するには
次の describe-instances コマンドを使用して、現在のリージョンにあるインスタンスの数を数えます。このコマンドは、インスタンスがあるリージョンごとに実行する必要があります。
aws ec2 describe-instances \
--region us-east-2
\
--query "length(Reservations[].Instances[])"
以下は出力例です。
27
リージョン内の EC2 インスタンスに関する概要情報を取得するには
次の describe-instances コマンドを使用します。このコマンドは、インスタンスがあるリージョンごとに実行する必要があります。
>aws ec2 describe-instances \
--region us-east-2
\
--query "Reservations[].Instances[].[InstanceId,InstanceType,PrivateIpAddress]" \
--output table
以下は出力例です。
---------------------------------------------------------
| DescribeInstances |
+---------------------+---------------+-----------------+
| i-0e3e777f4362f1bf7| t2.micro | 10.0.12.9 |
| i-09453945dcf1529e9| t2.micro | 10.0.143.213 |
| i-08fd74f3f1595fdbd| m7i.4xlarge | 10.0.1.103 |
+---------------------+---------------+-----------------+
- PowerShell
-
リージョンにある EC2 インスタンスの数を入手するには
Get-EC2Instance コマンドレットを使用します。
(Get-EC2Instance -Region us-east-2
).Instances.Length
以下は出力例です。
27
リージョン内の EC2 インスタンスに関する概要情報を取得するには
Get-EC2Instance コマンドレットを使用します。このコマンドは、インスタンスがあるリージョンごとに実行する必要があります。
(Get-EC2Instance).Instances | Select InstanceId, InstanceType, PrivateIpAddress
以下は出力例です。
InstanceId InstanceType PrivateIpAddress
---------- ------------ ----------------
i-0e3e777f4362f1bf7 t2.micro 10.0.12.9
i-09453945dcf1529e9 t2.micro 10.0.143.213
i-08fd74f3f1595fdbd m7i.4xlarge 10.0.1.103
初期と最新の起動時間を確認
インスタンスを記述するとき、インスタンスの起動時間は最新の起動時間です。インスタンスを停止して起動すると、起動時間に新しいインスタンスの開始時刻が反映されます。インスタンスの初回起動時間を確認するにはインスタンスを停止して起動した後でも、プライマリネットワークインターフェイスがインスタンスにアタッチされた時刻を確認してください。
- Console
-
直近の起動時間を見つけるには
インスタンスを選択し、[詳細] タブの [インスタンスの詳細] から、[起動時間] を見つけます。
最初の起動時刻を見つけるには
インスタンスを選択し、[ネットワーク] タブの [ネットワークインターフェイス] から [プライマリネットワークインターフェイス] (デバイスインデックスは 0) を見つけます。
- AWS CLI
-
最初の起動時間と直近の起動時間を見つけるには
次の describe-instances コマンドを使用して、指定したインスタンスの最初の起動時間と直近の起動時間の両方を表示します。
aws ec2 describe-instances \
--instance-id i-1234567890abcdef0
\
--query 'Reservations[].Instances[].{InstanceID:InstanceId,InitialLaunch:NetworkInterfaces[0].Attachment.AttachTime,LastLaunch:LaunchTime}'
以下は出力例です。
[
{
"InstanceID": "i-1234567890abcdef0",
"InitialLaunch": "2024-04-19T00:47:08+00:00",
"LastLaunch": "2024-05-27T06:24:06+00:00"
}
]
- PowerShell
-
直近の起動時間を見つけるには
Get-EC2Instance コマンドレットを使用します。
(Get-EC2Instance -InstanceId i-1234567890abcdef0
).Instances.LaunchTime
以下は出力例です。
Monday, May 27, 2024 6:24:06 AM
最初の起動時刻を見つけるには
Get-EC2Instance コマンドレットを使用します。
(Get-EC2Instance -InstanceId i-1234567890abcdef0
).Instances.NetworkInterfaces.Attachment.AttachTime
以下は出力例です。
Friday, April 19, 2024 12:47:08 AM