9

Java JVM が AWS EC2 インスタンスで実行されているかどうかを判断するための、実行時間に関して最速の方法は何ですか?

私の現在の方法は への http fetch を行うhttp://169.254.169.254/latest/instance-idことですが、AWS で実行していないときはタイムアウトするのに数秒かかります。

アップデート:

私の解決策は、Java システム プロパティ「user.name」を見て、「ec2」が含まれているかどうかを確認することでした。私たちは常に「ec2-user」ユーザー名でアプリを実行しているため、この方法は高速で信頼性があります。

4

3 に答える 3

11

AWS has documentation for: Determining an Application’s Current Region.

Regarding their API "The new Regions.getCurrentRegion() method makes this a lot easier. For example, if you start an Amazon EC2 instance in us-west-1 and run your application on that instance, it would know it’s running in us-west-1 and you could use that information to easily configure your application to talk to other services in us-west-1."

.. そして、正しい方向に進むために探しているキーワードを含むコードスニペットを次に示します。

// When running on an Amazon EC2 instance, this method
// will tell you what region your application is in
Region region = Regions.getCurrentRegion();
于 2016-12-29T18:54:42.877 に答える
0

DNS タイムアウトと再試行の設定を変更して、かかる時間を短縮できる場合があります。以下を /etc/resolv.conf ファイルに追加して、役立つかどうかを確認します。resolv.conf のマンページに詳細があります。

options timeout:1 attempts:1 rotate

これは直接的な修正ではありませんが、現在の方法で問題を解決できる可能性があります。また、resolv.conf への変更はすぐに有効になります。

私は自分のシステムでこれと同じことに興味があります。

于 2013-08-08T21:00:28.990 に答える