これには複雑なユースケースが
ありますが、簡単に言うと、インスタンスの実行中に、エラスティックIPを別のIPに切り替えることはできますか?そして、この時間間隔で何が起こりますか(関連付け解除と再関連付けの間[10〜30分になる可能性があります])..インターネット経由で通信できませんか?
編集: これまでのところ素晴らしい答えですが、これは質問の2番目の部分に答えます、主なものは、実行中にIPを変更する方法ですか?
これには複雑なユースケースが
ありますが、簡単に言うと、インスタンスの実行中に、エラスティックIPを別のIPに切り替えることはできますか?そして、この時間間隔で何が起こりますか(関連付け解除と再関連付けの間[10〜30分になる可能性があります])..インターネット経由で通信できませんか?
編集: これまでのところ素晴らしい答えですが、これは質問の2番目の部分に答えます、主なものは、実行中にIPを変更する方法ですか?
すべての質問は、機能ガイド:Amazon EC2 Elastic IPアドレスで多かれ少なかれ扱われます。例:
ほとんどの場合、これは通常、Elastic IPの再マッピングを指示してから数分以内に完了します。これをさらに高速化するために、引き続き取り組んでいます。[私は実際にこのプロセスに1分以上かかることはありません]
インターネットで通信できませんか?
これは目前のシナリオによって異なりますが、簡単にするために、次の2つのFAQに従って、おそらくこの仮定で作業する必要があります。
Elastic IPがインスタンスから削除された場合、そのインスタンスはインターネットから到達可能ですか?
インスタンスからElasticIPを削除すると、インスタンスは一時的にパブリックIPアドレスを失います。クラウドのバックグラウンドプロセスは、しばらくすると新しいパブリックIPをインスタンスに再割り当てします。このプロセス中、インスタンスはプライベートIPアドレスでクラウド内から到達可能なままになります。
新しいIPアドレスをインスタンスに関連付けた後も、既存の接続が機能するのはなぜですか?
Elastic IPをインスタンスに再マップすると、既存の通信の一部(古いIPアドレスと現在はマップされていないIPアドレス)は、再マップ後も引き続き機能します。たとえば、システムに割り当てられたパブリックIPアドレスを介してインスタンスへのオープンssh接続があり、その後、Elastic IPアドレスの1つをそのインスタンスに関連付ける場合、sshセッションはしばらくの間正常に機能し続ける可能性があります。この動作は予想されますが、信頼性はありません。ソフトウェアが正しく機能するように、再マップされた新しいIPアドレスを介して接続を再確立することを強くお勧めします。
フォローアップの質問への回答は、前述のガイドにも埋め込まれていますが、Elastic IPアドレス(EIP)の章、特にAmazonEC2でのElasticIPアドレスの実行中のインスタンスへの関連付けとAmazonEC2で実行中のインスタンスが異なるElasticIPアドレス:
主題に関する詳細については、EC2IP情報FAQを参照してください。
Elastic IPは、NATを使用して割り当てられます。インスタンスには、ElasticIPにNATされた内部IPがあります。インスタンスにElasticIPが関連付けられていない場合でも、プールから任意のIPが割り当てられるため、インターネットと通信できます(アクセスルールが適切に構成されている場合)。
このbashスクリプトを作成して、VPCで実行中のインスタンスのパブリックIP(eip)を変更しました。そのインスタンスに付けた名前(TAG Name = "")を指定するだけで、名前タグがインスタンスIDに変換されます。パブリックDNSの変更には常に時間がかかります。awsguiでEIPアドレスを変更するのは面倒です。古いIPの関連付けを解除し、新しいIPを取得し、新しいIPを関連付け、古いIPを解放します。マウスクリックは悪臭を放ちます。
#change vpc instance public IP address (EIP -> NIC|INSTANCE)
#usage "changeip [instance friendly tag=Name] [region]"
#example "changeip my.instnace us-west-1"
#dafault region is us-west-1 (you must include --region for $region default)
#for VPC instances only
function changeip {
if [[ ! $1 ]]; then
echo 'Error : You must provide tag name for instance'
echo 'Example: changeip [friendly name]'
return
fi
if [[ $2 ]]; then
region='--region '$2
echo 'Using region '$2
else
region='--region us-west-1' #sets default region
echo 'Using default '$region
fi
name=$1
instance=$(ec2-describe-instances $region | grep Name | grep $name | cut -f3)
if [[ ! $instance =~ ^('i-'[A-Za-z0-9]*)$ ]]; then
echo 'Error : Getting the instance id'
echo $instance
return
fi
echo 'Applying to '$1 '=> '$instance
echo 'Please wait....'
ip_new=$(ec2-allocate-address $region -d vpc | cut -f2)
if [[ ! $ip_new =~ ^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$ ]]; then
echo 'Error : Getting a new IP address'
echo $ip_new
return
fi
new_idas=$(ec2-describe-addresses $region $ip_new | cut -f 5) >> /dev/null
if [[ ! $new_idas =~ ^('eipalloc-'[A-Za-z0-9]*)$ ]]; then
echo 'Error : Getting New IP allocation id eipalloc'
echo $new_idas
return
fi
ip_old=$(ec2-describe-addresses $region | grep $instance | cut -f2)
if [[ ! $ip_old =~ ^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$ ]]; then
echo 'Error : Getting old IP address'
echo $ip_old
return
fi
id_dis=$(ec2-describe-addresses $region $ip_old | cut -f 6)
if [[ ! $id_dis =~ ^('eipassoc-'[A-Za-z0-9]*)$ ]]; then
echo 'Error : Dissasociating Old IP'
echo $id_dis
return
fi
id_release=$(ec2-describe-addresses $region $ip_old | cut -f 5) >> /dev/null
if [[ ! $new_idas =~ ^('eipalloc-'[A-Za-z0-9]*)$ ]]; then
echo 'Error : Release Old IP'
echo $id_release
return
fi
ec2-disassociate-address $region -a $id_dis >> /dev/null
sleep 8
ec2-release-address $region -a $id_release >> /dev/null
ec2-associate-address $region -i $instance -a $new_idas >> /dev/null
echo 'SUCCESS!'
echo 'Old = '$ip_old
echo 'New = '$ip_new
}
はい:実行中のインスタンスのIPアドレスを変更できます。2番目のエラスティックIPアドレスをインスタンスに関連付けるだけで、既存のIPアドレスが置き換えられます。
いつでもパブリックDNS名を使用してシステムにアクセスできます。インターネットでの通信は問題ありません。
インスタンスからカールを実行して、使用するプライベート/パブリックアドレスを確認します
http://169。254. 169. 254 / latest / meta-data / local-ipv4
http:// 169. 254. 169. 254 / latest / meta-data / public-ipv4
参照:http ://docs.amazonwebservices.com/AWSEC2/latest/UserGuide/AESDG-chapter-instancedata.html