0
0

More than 3 years have passed since last update.

EC2 Instance Connectはパブリック IPアドレスを優先する?

Last updated at Posted at 2020-11-14

やってみていること

EC2が3つあります。
1. 踏み台サーバとして起動。パブリックIPあり。
2. Webサーバとして起動。パブリックIPあり。
3. Webサーバとして起動。パブリックIPなし。

なんで、3.はパブリックIPなしかと言うと、元々ELB経由で接続する予定なので、パブリックIPアドレスは不要なのですが、2.のときにうっかり付けて起動してしまった、というわけです。しかも、後からは外せない:frowning2:

今のところはプロト環境として構築中なので、本番のときは付けないで起動せねば!と心に固く誓うだけじゃなく、しっかりメモしたところです。

EC2 Instance Connectってのがあるらしいじゃない!?

保守作業に当たってのアクセス制限とか操作記録とか、どうしようかといろいろ考え中にEC2 Instance Connectというのがあるのを知って試してみています。

環境構築

元々、踏み台サーバからsshでアクセスできるようにしてあったので、そこは割愛します。
実は、踏み台サーバへのログインもどうしようかと、まだ考え中で。。。AWSコンソール使う?余計なもの見せたくないしなぁ。。。もし機会があれば投稿しようと思います。

少なくとも、踏み台サーバからEC2インスタンスへはEC2 Instance Connectでログインするようにしようかと思ったわけです。ログに残るし(未確認:sweat_smile:)、IAMで制御できるし(まだよく分かってない:tired_face:)というのが狙いです。

  1. IAMユーザー(実際にやったのはユーザーが属するグループ)にEC2InstanceConnectポリシーを追加。
  2. 踏み台サーバにログインして、pip install ec2instanceconnectcliを実行。とドキュメントには書いてあったけど、その前にsudo easy_install pipしないとpipが使えない。。。
  3. IAMユーザーのアクセスキーを作る。それを以下のように設定(AWSのドキュメントにあるサンプルなのでご安心を)。リージョンも設定しておくと接続のときに指定しなくていいので楽(かも)。
$ aws configure
AWS Access Key ID [None]: AKIAIOSFODNN7EXAMPLE
AWS Secret Access Key [None]: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
Default region name [None]: us-west-2
Default output format [None]: json

いよいよ接続!

mssh 2.のWebサーバのインスタンスIDとしたところ、だんまり。。。しばらくしてタイムアウト:confounded:
一方でmssh 3.のWebサーバのインスタンスIDとしたところ、無事接続。
タイムアウトのメッセージを見ると、パブリックIPアドレスに対してコネクションタイムアウト、とのこと。そりゃWebサーバに外からsshつながるようにポート開けてないし。msshはIPアドレス指定できなから、インスタンス起動した時点で詰んでたってこと!?

まだ旅の途中

保守作業などでログインするときに人別にIDを付与して、操作記録を残すのは原則だと思うのです。AWSでのベストプラクティスを探す旅路の途中です。ガンダーラはあるのか。。。:thinking:

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0