AWS Cloud9 で private subnet を追加して private subnet 内に立てた instance に SSH 接続する 力技

背景:

cloud9 で mongodb を利用するとき app server と同一の EC2 インスタンスにmongoDB をインストールして使用したが、より本番環境に近い private subnet 内に EC2 インスタンスを立て、そこに mongodb server を作ることを試みた。

 

流れ:

  • cloud9 と同一のVPC内にprivate subnet を立てる。
  • Route Table を作成。cloud9 のVPC の明示的なsubnetの関連付けとしてアタッチ。
  • EC2インスタンス立ち上げ。
  • Security Group は

    SSH source カスタム cloud9 Public Subnet IPv4 CIDR
    All ICMP IPv4  カスタム cloud9 Public Subnet IPv4 CIDR --- pingを通してCIDRに誤りがないか確認用

----------------

cloud9 のコンソールから ping PRIVATE_INSTANCE_PRIVATE_IP

で返信があればOK

----------------

  • vi private_key.pem
  • ローカルに保存したpemをコピペ
  • chmod 400 private_key.pem
  • ssh -i private_key.pem ubuntu@PRIVATE_INSTANCE_PRIVATE_IP

====>>>> 接続

----------------

// private subnet instance がインターネットにアクセスできるようにする(sudo apt-get update 等を実行可能にする)

  subnet は cloud9 を実行している1 public subnet (EC2 コンソールから起動中のインスタンスを確認)

  Elastic IP は自動割り当てでOK

  • NAT Gateway に Route Table をアタッチ

  destination 0.0.0.0/0 target 作成した NAT Gateway

public subnet 上に private_key を放置しないようにSSHの使用が終わったら速やかに削除

 

ref:

www.youtube.com

www.youtube.com