

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# Amazon EC2 API の結果整合性
<a name="eventual-consistency"></a>

Amazon EC2 API は、この API をサポートしているシステムの分散特性により、結果整合性モデルに従います。つまり、Amazon EC2 リソースに影響を及ぼす、実行した API コマンドの結果は、その後に実行するすべてのコマンドにすぐには表示されない可能性があります。前の API コマンドの直後に API コマンドを実行する場合は、この点に留意する必要があります。

結果整合性は、リソースの管理方法に影響を与える可能性があります。例えば、コマンドを実行してリソースを作成すると、最終的に他のコマンドに表示されます。つまり、その作成したリソースを変更または記述するコマンドを実行すると、その ID がシステム全体に伝播されず、リソースが存在しないことを示すエラーが表示されます。

結果整合性を管理するには、以下を実行します。
+ コマンドを実行して変更する前に、リソースの状態を確認します。エクスポネンシャルバックオフアルゴリズムを使用して適切な `Describe` コマンドを実行し、前のコマンドがシステム内を伝播するのに十分な時間を確保できるようにします。これを行うには、数秒の待機時間から始めて`Describe`コマンドを繰り返し実行し、数分間の待機時間まで徐々に増やします。
+ `Describe` コマンドが正確なレスポンスを返した場合でも、後続のコマンド間の待機時間を追加します。数秒の待機時間から始まる指数バックオフアルゴリズムを適用し、数分間まで徐々に増やします。

**結果整合性エラーの例**  
以下は、結果整合性の結果として発生する可能性のあるエラーコードの例です。
+ `InvalidInstanceID.NotFound`

  `RunInstances` コマンドを正常に実行し、`RunInstances` のレスポンスで指定されたインスタンス ID を使用して別のコマンドをすぐに実行すると、`InvalidInstanceID.NotFound` エラーが返される可能性があります。これは、インスタンスが存在しないことを意味するものではありません。

  影響を受ける可能性のある特定のコマンドは次のとおりです。
  + `DescribeInstances`: インスタンスの実際の状態を確認するには、エクスポネンシャルバックオフアルゴリズムを使用してこのコマンドを実行します。
  + `TerminateInstances`: インスタンスの状態を確認するには、まずエクスポネンシャルバックオフアルゴリズムを使用して `DescribeInstances` コマンドを実行します。
**重要**  
`TerminateInstances` の実行後に `InvalidInstanceID.NotFound` エラーが発生しても、インスタンスが終了していたり、終了するわけではありません。インスタンスはまだ実行中である可能性があります。そのため、`DescribeInstances` を使用してインスタンスの状態を最初に確認することが重要です。
+ `InvalidGroup.NotFound`

  `CreateSecurityGroup` コマンドを正常に実行し、`CreateSecurityGroup` のレスポンスで提供されたセキュリティグループ ID を使用して別のコマンドをすぐに実行すると、`InvalidGroup.NotFound` エラーが返される場合があります。セキュリティグループの状態を確認するには、エクスポネンシャルバックオフアルゴリズムを使用して `DescribeSecurityGroups` コマンドを実行します。
+ `InstanceLimitExceeded`

  指定されたインスタンスタイプに対して現在のインスタンスの上限を超えるインスタンスをリクエストしました。インスタンスを起動してすぐに終了する場合に、この上限に予期せず到達する可能性があります。これは、インスタンスが終了してからしばらくの間、終了したインスタンスがインスタンスの上限に対してカウントされるためです。