雷がAmazon EC2インスタンスに当たった場合はどうなりますか?

多くの人が知っているように、最近アイルランドではAmazonデータセンターの1つが停止しました。 これはすでに言われています。 同僚との会話から理解したように、Amazon EC2のほとんどのユーザーはダウンタイムになりましたが、もう運がありませんでした。インスタンスが停止しただけでなく、ボリュームの1つがエラー状態になりました。

すべては問題ありません(スナップショットがあります)が、問題は、インスタンスにルートとして接続されているEBSボリュームを無効(デタッチ)できないことです。 いずれにせよ、ウェブ経由。



したがって、インスタンスは停止状態にあります。 ボリュームはエラー状態で接続されています。 謝罪の手紙と「心配しないで、スナップショットから復元されたボリュームを接続するだけ」などの基本的な指示が来るはずです。 しかし、結局のところ、すべてがそれほど単純ではありません。 以下に、インスタンスを復元するために必要な手順のリストを示します。

簡単なメモ:おそらく、Amazon EC2を積極的に使用している人にとっては、これは問題のようには見えません。 しかし、私にとって、EC2に関連するものは「機能していましたか?」 クール!」、どのように、何をすべきかを理解するのはそれほど簡単ではありませんでした。 したがって、同じ位置にあり、古いインスタンスを削除するだけで新しいインスタンスを作成したくない人にとって、この命令はより可能性が高くなります。

サポートでサポートを作成しましたが、Amazon AMI / API Toolsを使用するためのコンパニオンアドバイスに加えて、何もプロンプトを表示できませんでした。

サーバーが「落雷」に陥ったとしても、これは次回も「打撃」を意味するものではありません。

だから私がやったこと:

1. Recovertyスナップショットからの回復


最初に行うことは、AWSマネジメントコンソールのElastic Block Storage-> Snapshotsに移動することです。 「vol-XXXXXXXのリカバリスナップショット」という説明のスナップショットが必要です。 それから、ボリュームaの復元されたコピーを作成する必要があります。

2.壊れたボリュームを切断してみます


ラッキーだったら? サポートで彼らが私に書いたものを引用します:

AWSマネジメントコンソール内から[ボリュームの切り離し]を選択して、このボリュームをインスタンスから切り離すことができます。 これが「デタッチ」状態でハングした場合、複数の強制デタッチを実行する必要がある場合があります。

いずれかのコマンドを実行できない場合、または両方が失敗したように見える場合は、新しいインスタンスを起動し、新しく復元したボリュームをこの新しいインスタンスに接続する必要があります。

インスタンスからボリュームを切断するには、AWSマネジメントコンソールから[ボリュームの切断]を選択できます。 「デタッチ」状態でハングする場合は、「強制」オプションを有効にしていくつかのシャットダウン操作を実行する必要があります。

コマンドで成功しなかった場合は、新しいインスタンスを作成し、復元したボリュームをインスタンスに接続する必要があります。


残念ながら、それは私にはうまくいきませんでした-すべての操作に対して「Unable to ...」を発行しました

3. AMIツールを活用する



したがって、この状況での唯一の解決策は、Amazon AMIツールを使用することです。
こちらからダウンロードできます。

だから、私はUbuntuを持っているので、それで十分でした:
sudo apt-get install ec2-ami-tools sudo apt-get install ec2-api-tools 


Windowsはこれ以上複雑になるべきではありません。

次に、アクセスキーを作成する必要があります。 これは、管理コンソールのネットワーク/セキュリティの「キーペア」とは少し異なります。

キーアクセス証明書のペアを作成するには、 aws.amazon.comにアクセスしそこにある[アカウント]-> [セキュリティ認証情報]を選択する必要があります。 [x.509証明書]タブに移動します。 そこで、「新しい証明書の作成」をクリックして、2つのファイルを保存します。1つの証明書(ec2-cert.pemを呼び出しましょう)と秘密鍵(ec2-key.pem)を保存します。

重要:キーと証明書を混同しないでください。 それらは同じ拡張子(.pem)を持っていますが、スワップされると、ツールはjava.security.cert.CertificateParsingExceptionでドロップアウトします。

さらに、環境変数を設定することをお勧めします(必ずしもそうではありませんが、パラメーターを介して可能です)。
 export EC2_CERT=~/--/ec2_cert.pem export EC2_PRIVATE_KEY=~/--/ec2-key.pem 


その後、すべてが正常にピックアップされたかどうかを確認できます。
 $ ec2-describe-regions REGION eu-west-1 ec2.eu-west-1.amazonaws.com REGION us-east-1 ec2.us-east-1.amazonaws.com REGION ap-northeast-1 ec2.ap-northeast-1.amazonaws.com REGION us-west-1 ec2.us-west-1.amazonaws.com REGION ap-southeast-1 ec2.ap-southeast-1.amazonaws.com 


ここでeu-west-1リージョンで問題が発生し、そこに敵対者のインスタンスがあります。 インスタンスを確認します。
 $ ec2-describe-instances RESERVATION .... INSTANCE ...(   ) BLOCKDEVICE /dev/sda1 vol-20155a49 2011-05-20T14:14:54.000Z ... 

ここでは、BLOCKDEVICEも必要です(1つは、/ dev / sda1を覚えておいてください-まだ必要です)。 つまり、「vol-20155a49」(もちろん、別のものがあります)。 コンソールで確認します-これは切断したくない同じボリュームですか? その場合、最後のステップがあります。
 $ ec2-detach-volume --region eu-west-1 vol_2055a49 --force 

その後、管理コンソールに移動し、スナップショットから復元されたボリュームを静かに接続します。 ところで、ここでは、BLOCKDEVICEの直後に何が起こったのかを覚えておく必要もあります。「/ dev / sda1」でした。

できた! これでインスタンスを開始できます:)

要約すると、Amazon AMI / API Toolsは見た目ほど複雑ではなく(合計205のユーティリティ)、Webベースの管理コンソールで障害が発生した場合に使用できます。

雷雨や火災はありません!

便利なリンク:
* ユーティリティのセットアップ手順
* キーと証明書の使用方法
*ユーティリティのダウンロード: AMI / API

Source: https://habr.com/ru/post/J126729/


All Articles