背景:
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 等を実行可能にする)
- NAT Gateway を作成
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: