質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.50%

  • AWS(Amazon Web Services)

    2538questions

    Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

AWS EC2インスタンスに Elastic IP を関連付けるとssh接続できなくなる

解決済

回答 4

投稿 編集

  • 評価
  • クリップ 1
  • VIEW 3,247

medulla

score 9

AWS EC2 のインスタンスがありますが、Elastic IP を関連付けると、ssh接続した際にタイムアウトが発生し接続できなくなってしまいます。

  • Elastic IP を関連付ける前の状態ですと、ssh接続が正常に行える状態です。
  • この状態で Elastic IP を一つ作成し、当該インスタンスに関連付けるとssh接続できなくなります。
  • この状態で、Elastic IP の関連付けを解除すると、ssh接続は再度正常に行えるようになります。

AWSもElastic IPも詳しくないため、つながらなくなる原因となりそうな部分がわからず困っています。
どなたか解決方法、もしくは原因の調査方法等、おわかりになる方がいらっしゃいましたら、教えていただけますでしょうか。


追記(2017.03.27 13:19)

関連付けしたElastic IPのアドレスでssh接続した際の結果を以下に示します。

$ ssh -vvv -l ec2-user -i "XXX.pem" XXX.XXX.XXX.XXX
OpenSSH_6.6.1, OpenSSL 1.0.1e-fips 11 Feb 2013
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 56: Applying options for *
debug2: ssh_connect: needpriv 0
debug1: Connecting to XXX.XXX.XXX.XXX [XXX.XXX.XXX.XXX] port 22.
debug1: connect to address XXX.XXX.XXX.XXX port 22: Connection timed out
ssh: connect to host XXX.XXX.XXX.XXX port 22: Connection timed out
$


ちなみに、pingは通る状態です。

$ ping -c 4 XXX.XXX.XXX.XXX
PING XXX.XXX.XXX.XXX (XXX.XXX.XXX.XXX) 56(84) bytes of data.
64 bytes from XXX.XXX.XXX.XXX: icmp_seq=1 ttl=238 time=6.85 ms
64 bytes from XXX.XXX.XXX.XXX: icmp_seq=2 ttl=238 time=6.76 ms
64 bytes from XXX.XXX.XXX.XXX: icmp_seq=3 ttl=238 time=8.55 ms
64 bytes from XXX.XXX.XXX.XXX: icmp_seq=4 ttl=238 time=6.76 ms

--- XXX.XXX.XXX.XXX ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3006ms
rtt min/avg/max/mdev = 6.766/7.234/8.552/0.768 ms
$ 
  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 4

checkベストアンサー

+2

恐らくルータに設定が入っているのではないでしょうか。
自分からEC2の繋がる方のIPに対しての22番ポートがOPENされていると思われます。
そこを書き換えればいけると思います。

EC2インスタンスに割り当てられているセキュリティグループには、ルータかMyIPが入っていると思います。
そこはクライアントからの接続設定が入っているだけですので、EIPをつけようが着けまいが変わらないと思います。
サーバー側の設定はPrivateクラウドにしているのであれば別ですが、特に問題ないと思います。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/03/27 13:40

    > そこを書き換えればいけると思います。
    すみません。ネットワークもあまり詳しくないものですから、どこを書き換えれば良いのか、わかっておりません。VPCのサービスダッシュボードにある「ルートテーブル」のこと?でしょうか?それとも、クライアント側になりますでしょうか?

    キャンセル

  • 2017/03/27 14:19

    今お使いのPCに接続しているルータです。

    VPCにルートテーブルは、外部からVPCに入ってくる設定です。
    基本的にAWSコンソール(AWSのWEB画面)で設定するとこは、テーマパーク(TDLとか)の設定ができると思ってください。
    VPCはテーマパークの入り口と柵を構成しています。
    EC2はテーマパークのパビリオンです。
    EIPはVIP専用の入口を利用するための仕組みです。

    今は家から乗った電車の路線は同じだけど、直通電車が間違っているじゃないかと思っています。
    その設定があるのが、家ないし会社のルータにあります。

    キャンセル

  • 2017/03/27 14:23

    と、思ったんですが、クライアントはMACです???

    EIP着けた後にEC2の画面にあるキーストアを作り直してみてください。
    新たに作ったものを使って接続しないといけないような気がします。

    キャンセル

  • 2017/03/27 17:48

    いろいろとご教示いただきまして、ありがとうございます。

    会社からの接続ですが、Elastic IP を使用しない場合も特にルータの設定等は変えておりませんでしたが、Elastic IP になった場合に設定変更が必要となる、といったところが理解できずにおりまして、設定はまだ行っておりません。

    個人的には2つ目にいただいたメッセージの方が解決につながるかなぁと思っておりますが、Elastic IP を付けた後に、後からEC2インスタンスのキーペアを変更するやり方を調べている最中です。AWSのWebコンソールからはそういった機能がなさそうでしたので、自力でやらないといけないかな、と思っております。ちなみにクライアントはWindowsですが、その上にVMも立てており、調査のためのsshのコマンドはVM(CentOSです)からたたいております。

    とりあえず、キーペア再作成をチャレンジしてみます。

    キャンセル

  • 2017/03/27 18:09 編集

    クライアントがWindowsの場合は、キーペア再作成は必要ありません。
    Macの場合はたまに繋がらなくなることがあるので、作り直した方が早いと思ったからです。

    ルータに会社からAWSに22番ポートで接続するための設定が固定で入っているのでは無いかなと思ったのですが、
    VMから接続するのであれば、VMの設定が悪い可能性があります。

    接続構成はこんな感じでしょうか。
    VM(CentOS)⇒PC(Windows)⇒VPC⇒EC2インスタンス

    もしWindowsからSSH接続することが可能であれば、teratermやPuttyなどのWindowsアプリケーションがありますので、インストールすれば良いと思いますよ。
    セキュリティの関係上インストールできないなどで無理そうならVMの設定を見直す必要があると思います。
    #上記の【VM⇒PC】の設定のところです。
    #CentOS内の /etc/iptables の設定か、VMアプリの設定ですかね

    キャンセル

  • 2017/03/27 18:32

    たびたび、言葉足らずで申し訳ございません!
    Windows上ではPutty、WinSCP等インストールしており、そちらで作業をしておりました。
    sshのデバッグプリントを見たかったため、VM上のCentOSからコマンドを打ってみた次第です。
    このVM上からも、Elastic IP を付与した状態でなければ(つまり可変のIPアドレスなら)正常に接続できております。
    Windows上でもElastic IP を付与するまでは特に問題なく一連の作業は行えておりましたが、Elastic IP を付与した途端、つながらなくなってしまったのです。しかも、外すと元に戻るという状況です。。EC2は、今回の調査で、何度も再起動を行っており(^^;、可変のIPアドレスであれば、どのIPアドレスであったとしても特にルータの設定等、クライアント側の環境設定は一切行わずに正常に接続できておりました。
    ルータに関しては社内の者にも確認してみたいと思います。

    キャンセル

  • 2017/03/27 20:10 編集

    PEMが悪いのかな。
    あとはIAM(ユーザのこと)のポリシーで制限されている可能性も無いとは言えません。

    ちなみにキーペアを再作成する場合は
    ・EC2ダッシュボード⇒キーペア
    で作成可能です。

    ただ、ネットワークが一番関係していそうなので、ルータの設定確認が一番必要かと思われます。

    AWS側が悪い場合、ネットワーク設定を確認するところは以下です。

    【AWSコンソール】
    ・VPCダッシュボード⇒ルートテーブル⇒ルート
    ・VPCダッシュボード⇒NATゲートウェイ(使っている場合)
    ・VPCダッシュボード⇒ネットワークACL
    ・VPCダッシュボード⇒セキュリティグループ

    あとちょっと判別が付かなかったのですが
    AWS上にあるWindowsサーバにリモートデスクトップ接続して、そこからEIPで接続しているのでしょうか。
    その場合、上記のAWS側の設定が関係してきます。

    それか、自社内に存在するPCから接続している場合、
    52.xxx系のようなグローバルIPセグメントではなく、
    172系とか192系とか10系のようなプライベートIPセグメントで接続していますか。
    その場合、下記のAWS側の設定が関係してきます。

    ・VPCダッシュボード⇒カスタマゲートウェイ
    ・VPCダッシュボード⇒仮想プライベートゲートウェイ
    ・VPCダッシュボード⇒VPN接続
    ・DirectConnect⇒VirtualInterface

    キャンセル

  • 2017/03/29 11:55

    ご回答いただきまして、ありがとうございます。
    社内に確認したところ、ElasticIPへの通信がファイアーウォールで遮断されておりました。新たに該当のElasticIPへの通信を許可するよう設定をしてもらったところ、正常に接続できました!
    ElasticIPではなく可変のIPの場合になぜつながったか、と言いますと、以前、他の人が社内でAWSへ接続する申請を出しており、その際のアドレス指定が XXX.XXX.XXX.XXX/16 のように幅を持っていたため、可変IPが全てその中に該当したことによって接続ができておりました。

    (ちなみに今さらですが、私の環境はクライアントWindows7→AMIはAmazonLinuxです。)

    結局、原因は最初にご指摘いただいていたとおりでした。いろいろとお手数をおかけしまして大変申し訳ございませんでした!また、最後にいただいた調査箇所についても、AWSのノウハウとして非常に有用な情報をいただけまして、大変感謝しております。本当にありがとうございました。
    このあたりに関しても、今後いろいろと勉強していきたいと思います。

    キャンセル

  • 2017/03/29 12:14 編集

    問題解決おめでとうございます!

    ルータであるならば、AWSで公開しているIPセグメント範囲のサイトがありますので
    こちらを参考に、追加でIPを許可しておいた方が良いでしょう。
    #また同じことが起きてしまう可能性があります。

    ■AWS IPセグメント範囲
    https://ip-ranges.amazonaws.com/ip-ranges.json

    ap-northeast-1 が東京リージョンにあたります。
    あとGLOBALも追加しておいた方が無難ですかね。

    #全コピーして改行とスペースを無くし、"}," を"改行"に置換すればソートし易いと思われます。

    キャンセル

  • 2017/03/29 13:44

    なんと!更に情報提供いただきまして、ありがとうございます!!
    IPセグメント範囲なるものが公開されているんですね。勉強になりました。
    ちょっとネットで調べまして、東京リージョンで、且つEC2のアドレスを取得してみました。

    -------------------
    $ curl https://ip-ranges.amazonaws.com/ip-ranges.json | jq -r '.prefixes[] | if .service == "EC2" then . else empty end' | jq -r '. | if .region == "ap-northeast-1" then .ip_prefix else empty end'
    13.112.0.0/14 <----- ★
    46.51.224.0/19
    52.68.0.0/15
       :
    (全部で23個のアドレスが表示された)
    -------------------

    実は今回払いだされたElasticIPは上記の★部分に該当しておりました。
    ただ、他にも多くのアドレスがあるようですが、東京リージョンを利用している限り、現時点では表示された23個のうちのいずれかの範囲でIPが払いだされる可能性がある、といった認識で合っておりますでしょうか。また、これらの範囲はAmazon側の都合で追加削除される可能性がある、というものになりますでしょうか。

    もともとの課題は解決済みのため追加の質問となってしまい大変恐縮です。もしお時間ございますようでしたら、ご回答いただけると幸いです。

    キャンセル

  • 2017/03/29 14:22

    jq使える環境であれば問題ないですね。

    > ただ、他にも多くのアドレスがあるようですが、東京リージョンを利用している限り、現時点では表示された23個のうちのいずれかの範囲でIPが払いだされる可能性がある、といった認識で合っておりますでしょうか。
    > また、これらの範囲はAmazon側の都合で追加削除される可能性がある、というものになりますでしょうか。

    あくまで、今はその認識で大丈夫です。
    という回答になります。

    AWSに関して言えば、毎日どこかの仕様が追加されたり変更されています。
    #公表されもせず、いきなり変わることもしばしばあります。

    そのため、低いと思いますが、今後変更される可能性は無いとは言い切れないでしょうか。

    キャンセル

  • 2017/03/29 14:58

    > あくまで、今はその認識で大丈夫です
    上記、承知しました。また、アドレス範囲、仕様等、変更の可能性があるということも理解いたしました。
    長々とおつきあいくださいまして、ありがとうございました。
    大変勉強になりました!
    今後も機会がございましたら、よろしくお願いいたします。

    キャンセル

  • 2017/04/06 16:58

    > また、これらの範囲はAmazon側の都合で追加削除される可能性がある、というものになりますでしょうか。

    通りすがりですが IP範囲はそこそこの頻度で追加/削除があります。
    IP範囲の変更は通知を受け取ることが出来ます。ドキュメントをご参考ください。
    https://docs.aws.amazon.com/ja_jp/general/latest/gr/aws-ip-ranges.html#subscribe-notifications

    キャンセル

+1

SSH 接続で、ホストをどうやって指定していますか?
Elastic IP を関連付けると、パブリック DNS も IP アドレスも変化しますから、それまで使っていたホスト指定文字列では接続できなくなります。

ただ、関連付けを解除したら再接続できたというのがちょっと引っ掛かりますが…(Elastic IP を解除したとき、もとの(自動割り当てされていた)パブリック DNS に戻るとは限らないので)

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/03/27 11:15

    すみません。接続時の手順など示しておりませんでした。
    Elastic IPを関連付ける前、後、関連付けを解除した後、全ての局面において、ssh接続するホストはEC2インスタンスの「説明」タブにあります「Public DNS (IPv4)」の値をコピーして使用しておりました。おっしゃる通り、パブリックDNSは変わってきますので、その都度新しいもので接続し直しておりました。このとき、Elastic IPを関連付けした場合のみタイムアウトになってしまいます。

    キャンセル

  • 2017/03/27 11:21

    試しに IPv4 アドレス直接(aaa.bbb.ccc.ddd)指定して接続した場合はどうなりますか? これで接続できるようなら DNS の伝播遅れによる名前解決の失敗だと思われますし、接続できないならセキュリティグループの設定を見直すことになるかと思います。

    キャンセル

  • 2017/03/27 13:27

    IPアドレスを直接指定した場合の結果を、質問詳細に追記(2017.03.27 13:19)いたしました。
    直接指定でもタイムアウトは変わらない状況です。
    セキュリティグループも自分なりには見直しているのですが、なかなか原因がわからない状況です。

    キャンセル

  • 2017/03/27 18:01

    IP直指定でこのメッセージということは、そもそもホストが SSH のポートを開けていないか、ネットワーク経路のどこかでその IP アドレスに対する Port 22 の通信を遮断している(ファイアウォール)のです。
    ホストは待ち受けしている(Elastic IP でなければ通るので)ので、ファイアウォールをはじめとするネットワーク設定の問題でしょう。
    ssh をホストOS:Windows、ゲストOS:CentOS の環境で CentOS 上から叩いているということですが、ゲスト→ホスト間で SSH のポートが開いているのかどうか、ホストから当該 IP アドレスに対する SSH アウトバウンドがファイアウォールで許可されているか、でしょうか。
    ※切り分けのため、TeraTerm あたりで「Windows から SSH」をしてみるのも必要です

    キャンセル

  • 2017/03/27 18:36

    ご回答いただきまして、ありがとうございます。
    言葉足らずで申し訳ございません!
    Windows上ではPutty、WinSCP等インストールしており、そちらでも作業をしておりました。
    sshのデバッグプリントを見たかったため、VM上のCentOSからコマンドを打ってみた次第です。
    実際は、Windows上からPuttyでつないだ際もタイムアウトになってしまう状況です。
    WindowsホストからEC2までの経路について、確認してみたいと思います。

    キャンセル

  • 2017/03/29 12:02

    無事、解決いたしました。
    おっしゃる通り、ElasticIPへの通信がファイアーウォールで遮断されておりました。ファイアーウォールは社内の情シス部門が担当ですが、新たに該当のElasticIPへの通信を許可するよう設定をしてもらったところ、正常に接続できました!
    いろいろとご回答いただきまして、ありがとうございました。

    キャンセル

+1

ssh: connect to host XXX.XXX.XXX.XXX port 22: Connection timed out

timeoutしてますね。社内LANとインターネットの境界に設置されているファイアウォールやルータでSSHを破棄していると思われます。考えられるケースは次のとおりです。

  • AWSのグローバルIPアドレス向けのSSHを許可する設定が入っているが、AWSが新しく使い始めたグローバルIPアドレスが追加されていない
  • 何かしらの経緯で、問題のElastic IP向けのSSHだけを破棄する設定が入ってる

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/03/29 11:59

    おっしゃる通り、ElasticIPへの通信がファイアーウォールで遮断されておりました。ファイアーウォールは社内の情シス部門が担当ですが、新たに該当のElasticIPへの通信を許可するよう設定をしてもらったところ、正常に接続できました!
    ご回答いただきまして、ありがとうございました。

    キャンセル

0

パブリックDNS(ホスト名)指定が必須ということでなければ、IPアドレスを指定してSSH接続することで解決できないでしょうか。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/03/27 13:28

    IPアドレスを直接指定した場合の結果を、質問詳細に追記(2017.03.27 13:19)いたしました。
    直接指定でもタイムアウトは変わらない状況です。

    キャンセル

同じタグがついた質問を見る

  • AWS(Amazon Web Services)

    2538questions

    Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。