Search code examples
amazon-web-serviceschef-infraserver-administrationamazon-vpc

How to launch an amazon ec2 instance inside VPC using Chef?


This is a question primarily about Chef. When looking into controlling nodes inside Amazon VPC with Chef, I run into some difficulties, mainly that a node that does not have an external IP address is not easily reachable by chef.

I went through the basic tutorial for scenario #2 http://docs.amazonwebservices.com/AmazonVPC/latest/UserGuide/VPC_Scenario2.html#Case2_Launch_NAT

However, this this times out:

knife ec2 server create -N app-server-1 -f m1.small -i rails-quick-start.pem -r "role[base]" -G WebServerSG -S rails-quick-start -x ubuntu -s subnet-580d7e30 -y -I ami-073ae46e -Z us-east-1d

What am I doing wrong?


Solution

  • The solution was to setup a tunnel and tunnel the ssh on some port of a publicly visible computer to all the other computers in the cloud. So my load balancer serves http traffic on socket 80, is accessible via socket 22, and uses sockets 2222, 2223, 2224, ... to tunnel ssh to non-public cloud instances. On load balancer (or any public instance) run:

    ncat --sh-exec "ncat PRIVATE.SUBNET.IP 22" -l 2222 &
    

    for example:

    ncat --sh-exec "ncat 10.0.1.1 22" -l 2222 &