« AWS Lambdaを使ってRedshift料金を節約する | メイン | ソラコムBeamでUDP通信機器の暗号化を実装 »

2015年11月18日 (水)

AWS EC2 "悪い" EIPにご用心

エンジニアの佐藤です。こんにちは。
今回は「EIP(Elastic IP Address)は、払い出されたら外部接続を確認しよう」という注意喚起の話題を書かせていただきたいと思います。

EIPを設定したらGitHubに接続できない

ある日のこと、システムのリリースのためにEC2インスタンスを起動し、EIP(仮にxx.xx.xx.xx)を設定して、GitHubからcloneしようとすると、コネクションエラーになりました。おや?と思ってパケットキャプチャで調査すると、名前解決は成功するのですが、TCP SYNパケットに対する応答がありません。
EIPを外し、自動設定のグローバルIPアドレスが設定されると、接続できるようになりました。また、他のEIPを設定しても問題現象は再現しません。xx.xx.xx.xx固有の問題のようでした。
不思議なことに、問題のEIPを設定した場合でも「www.yahoo.com」には接続できます。しかし「msdn.microsoft.com」や「login.salesforce.com」には接続できません。接続先によって成功不成功があるようでした。

AWSのサポートに問い合わせる

AWSに質問したところ、初回の回答は順当なものでした。

  • AWS では特定のサイトやアドレスに関して制限をかけるといったことはしていない。
  • 接続先がアクセス制限を設定していた場合はAWSでは対応できない。

GitHubのブラックリスト

この段階で筆者が考えたのは、このxx.xx.xx.xxがブラックリストに掲載されており、GitHub(または中継ルーター)でブロックされている可能性でした。GitHubにはipset-blacklistというレポジトリがあり、有名ブラックリストを収集してくれます。早速実行してみました。
しかしながら、収集したブラックリストにxx.xx.xx.xxは入っていませんでした。

GitHubに問い合わせる

仕方がないのでGitHubに問い合わせてみることにしました。意外なことに1時間ほどで回答が来ました。「制限していない」と、明確な回答でした。

```

(筆者からGitHubへの質問) If I assign an IP address "xx.xx.xx.xx" to my computer, any request to GitHub is blocked. No connection can be established. That IP address isn't listed in "ipset-blacklist" blacklist. Does any additional filtering block that IP address?

(GitHubからの回答) There's no ban on that IP from our end. It could be an issue with your network environment of ISP. There's nothing we can do about it though.

```

再び、AWSのサポートに問い合わせる

いよいよ迷宮入りです。とりあえずこのGitHubからの回答をAWSサポートに追加情報として提供しましたが、解決に時間を要する可能性が高いと思いました。システムに設定しているEIPは変更し、AWSサポートの回答を待つことにしました。

同僚T氏から「IIJでこの種の問題が確認された場合は、中継ISPに順番に連絡してブラックリストを確認しているらしい。」という恐ろしい情報も伝えられました。ドツボにはまったのでしょうか。

原因はAWS内部のブラックリスト

そしてAWSサポートへの初回質問から約1ヶ月が経過したある日の晩、AWSサポートから以下のような回答が来ました。

  • EIP xx.xx.xx.xxは外部への接続を制限した状態だった。
  • 制限を解除したので、今後は通常通り使用できる。

急いで動作確認したところ、確かに問題現象は解消していました。

ふりかえると

インターネットは接続保証が無い世界ですから、今回のような問題現象は一般的には不自然な出来事ではありません。しかしパブリッククラウドサービスを提供する AWSの内部に原因が隠れており、アマゾンウェブサービス自身その存在を最初気付かず、AWSの利用者が原因を確認する手段もなかったというところに、今回の問題の恐ろしさがあります。問題に気付かないままIPアドレスを遠隔機器に設定したりしていたら、その修正は大変面倒なことになっていたでしょう。

もしかしたら、現在運用しているEIPも、接続制限されているかもしれません。接続先は無数にありますから完全な確認は不可能ですが、EIPが払い出されたら主要接続先のいくつかは試してみた方がいいかもしれません。
AWSサポートの皆さまのご尽力に感謝します。

コメント

コメントを投稿

採用情報

株式会社フレクトでは、事業拡大のため、
・Salesforce/Force.comのアプリケーション開発
・HerokuやAWSなどのクラウドプラットフォーム上での
Webアプリケーション開発
エンジニア、マネージャーを募集中です。

未経験でも、これからクラウドをやってみたい方、
是非ご応募下さい。

フレクト採用ページへ

会社紹介

株式会社フレクトは、
認定コンサルタント
認定上級デベロッパー
認定デベロッパー
が在籍している、セールスフォースパートナーです。
また、heroku partnersにも登録されています。
herokuパートナー
株式会社フレクトのSalesforce/Force.com
導入支援サービス
弊社の認定プロフェッショナルが支援致します。
・Visualforce/Apexによるアプリ開発
・Salesforceと連携するWebアプリ開発
も承っております。
セールスフォースご検討の際は、
お気軽にお問合せください。

2024年3月

          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31            
ブログ powered by TypePad