Amazon Elastic Compute Cloud (Amazon EC2) コンソールで Amazon CloudWatch アラームを作成しようとしています。基になるハードウェア障害が原因でインスタンスが正常に機能しなくなった場合に EC2 インスタンスを復元し、アラームがトリガーされたら通知を送信しようと考えています。ただし、[アラームの作成] ページの [このインスタンスの復元] の [アクションの実行:] オプションは、グレーアウト (無効化) されています。また、アラーム通知オプション (トピック名および受取人) も無効化されています。これらのオプションをオンに戻すにはどうすればよいですか?

EC2 インスタンスでインスタンスストアボリュームが使用されていると CloudWatch で判断されると、[Recover this instance (このインスタンスの復元)] オプションは無効化されます。インスタンスストアボリュームを使用する EC2 インスタンス (インスタンスストアボリュームのブロックデバイスマッピングを使用して起動されるインスタンスなど) では、復元アクションはサポートされていません。CloudWatch では各 EC2 インスタンスに関連付けられているメタデータを読み取り、復元処理を有効化する前に、インスタンスストアボリュームが使用されていないことを確認します。

注意: 復元オプションは、特定のインスタンスタイプでのみサポートされています。サポートされているインスタンスタイプが起動されていることを確認してください。詳細については、現在の詳細の「インスタンスの復元」を参照してください。また、EC2 復元アラームアクションも、StatusCheckFailed_System メトリクスでのみ有効です。

続行する前に、「インスタンスを停止、終了、再起動、または復元するアラームを作成する」を参照してください。CloudWatch アラームを作成するための前提条件をすべて満たしていることを確認してください。

EC2 Linux インスタンスの一時的なインスタンスストアボリュームを検索する

1.     Linux インスタンスに接続します

2.     次のコマンドを使用して、インスタンスのメタデータを取得します

curl http://169.254.169.254/latest/meta-data/block-device-mapping/

3.     この出力を使用して、インスタンスにマッピングされているインスタンスストアボリューム (「ephemeral」で始まる) を特定します。たとえば、以下の出力には、2 種類のインスタンスストアボリューム (ephemeral0 および ephemeral2) があります。

[ec2-user ~]$ curl http://169.254.169.254/latest/meta-data/block-device-mapping/
ami
ephemeral0
ephemeral2
root

EC2 Windows インスタンスの一時的なインスタンスストアボリュームを検索する

ブラウザを使用する場合:

1.     Windows インスタンスに接続します

2.     ブラウザを開き、以下に移動します。

http://169.254.169.254/latest/meta-data/block-device-mapping/

3.     返る情報を使用して、インスタンスにマッピングされているインスタンスストアボリューム (「ephemeral」で始まる) を特定します。

Windows PowerShell を使用する場合:

1.     PowerShell で Windows インスタンスに接続します。

2.     次のコマンドを実行します。

PS C:\> Invoke-RestMethod -uri http://169.254.169.254/latest/meta-data/block-device-mapping/

3.     この出力を使用して、インスタンスにマッピングされているインスタンスストアボリューム (「ephemeral」で始まる) を特定します。たとえば、以下の出力には、1 種類のインスタンスストアボリューム (ephemeral0) があります。

ami
ephemeral0
root
swap

詳細については、「インスタンスストアボリュームのインスタンスブロックデバイスマッピングの表示」を参照してください。

EC2 インスタンスの AMI で一時的なインスタンスストアボリュームを検索する

EC2 インスタンスの Amazon マシンイメージ (AMI)ブロックデバイスマッピングで、ブロックデバイスインスタンスストアボリュームを確認することもできます (Block Devices フィールドには =ephemeral# を含む。ここで # は 0〜23 の整数)。

注意: AWS CLI、SDK、または AWS CloudFormation などのサービスを使用して、EC2 インスタンス (Windows または Linux) すると、インスタンスタイプが公式的にインスタンスストアボリュームをサポートしていない場合でもブロックデバイスマッピングが発生することがあります。Amazon EC2 コンソールを使用して、インスタンスストアボリュームがサポートされていないインスタンスタイプを起動する場合、EC2 では、変更されたブロックデバイスマッピングは無視されます。

Amazon EC2 コンソールまたは AWS コマンドラインインターフェイス (AWS CLI) を使用して AMI のブロックデバイスマッピングで EBS ボリュームを列挙する方法については、「AMI ブロックデバイスマッピングの EBS ボリュームの表示」を参照してください。

たとえば、次の AWS CLI コマンド (describe-images) では、AMI の BlockDeviceMapping が返ります。

aws ec2 describe-images --image-ids ami-xxxxxxxx

VirtualNameephemeral で始まるインスタンスストアボリュームの出力例を以下に示します。

aws ec2 describe-images --image-ids ami-11112222

"BlockDeviceMappings": [
   {
      "DeviceName": "/dev/xvda",
      "Ebs": {
         "DeleteOnTermination": true,
         "SnapshotId": "snap-        ",
         "VolumeSize": 8,
         "VolumeType": "gp2",
         "Encrypted": false
      }
   },
   {
      "DeviceName": "/dev/sdb",
      "VirtualName": "ep0hemeral0"
   },
   {
      "DeviceName": "/dev/sdc",
      "VirtualName": "ephemeral2"
   }
],

AMI のインスタンスストアボリュームへの参照をすべて削除または無効化する

EC2 インスタンスでインスタンスストアボリュームが使用されていることを確認したら、AMI のインスタンスストアボリュームへの参照をすべて削除または無効化する必要があります。インスタンスストアボリュームは追加できないか、既存の EC2 インスタンスから削除できないため、インスタンスを再起動する必要があります。

以下のいずれかのメソッドを使用して、インスタンスストアボリュームへの参照を削除または上書きします。

  • インスタンスストアボリュームへの参照を AMI から削除します。次に、インスタンスを再起動します。
  • EC2 コンソールから EC2 インスタンスを起動して、インスタンスボリュームストアがサポートされていないインスタンスタイプの AMI を上書きします。
  • AWS CLI から EC2 インスタンスを起動し、インスタンスストアボリュームを参照している AMI 内の各デバイスを手動で無効にします。たとえば、インスタンスストアボリュームにマッピングされているデバイス /dev/sdb および /dev/sdc がある場合は、run-instances コマンドを使用して EC2 インスタンスを起動します。
aws ec2 run-instances --image-id ami-11112222 --subnet-id subnet-11112222 --instance-type t2.medium
 --key-name my_key --associate-public-ip-address --block-device-mappings 
 '[{"DeviceName": "/dev/sdb","NoDevice": ""},{"DeviceName": "/dev/sdc","NoDevice": ""}]'
  • CloudFormation を使用して起動された EC2 インスタンスで、CloudFormation テンプレートを作成して、インスタンスストアボリュームへの任意のデバイスのマッピングを上書きします。例:
{
  "AWSTemplateFormatVersion": "2010-09-09",
  "Resources": {
   "I4EY8I": {
    "Type": "AWS::EC2::Instance",
    "Properties": {
     "ImageId" : "ami-11112222",
     "InstanceType" : "t2.medium",
     "SubnetId" : "subnet-11112222",
     "KeyName" : "my_key",
   "BlockDeviceMappings" : [
     {
       "DeviceName":"/dev/sdb",
       "NoDevice": {}
     },
     {
       "DeviceName":"/dev/sdc",
       "NoDevice": {}
     }
  ]
   }
  }
 }
}
  • SDK を使用して起動された EC2 インスタンスで、インスタンスストアボリュームへのデバイスのマッピングを上書きする方法については、関連する SDK ドキュメントをご確認ください。

このページは役に立ちましたか? はい | いいえ

AWS サポート ナレッジ センターに戻る

サポートが必要ですか? AWS サポートセンターをご覧ください。

公開日: 2016 年 2 月 30 日

更新日: 2018 年 12 月 12 日