First, you could enable ICMP through Amazon security groups. This can be done easily with the Amazon Management console, ElasticFox or EC2 command line tools. You could open it up to the whole world:
ec2-authorize default -P icmp -t -1:-1 -s 0.0.0.0/0. . . or, specific IP addresses or ranges:
ec2-authorize default -P icmp -t -1:-1 -s <IP Address>Another approach would be to use TCPing (works with both Linux and Windows - see Ping Over TCP with tcping.exe in Windows or tcping for Linux). I like to use this method because you can test general connectivity over specific ports. For example you could use
tcping ec2-75-101-206-107.compute-1.amazonaws.comto test connectivity to the specified server over the default port 80. Or you could specify a port, like 22 for SSH or 3389 for RDP:
tcping ec2-75-101-206-107.compute-1.amazonaws.com 22
tcping -t -i 1 ec2-75-101-206-107.compute-1.amazonaws.comThis very useful as you can essentially track the progress of the instance coming online, then becoming available. At first you will receive the message, "Connection timed out. . ." This indicates that tcping is not getting a response at all, i.e. that the instance cannot be reached. Once the instance starts, but the OS isn't fully available the message, "Connection refused. . ." will be the result. This means tcping can reach the machine (the network card and TCP/IP stack are available), however, the port you are probing, 80 in this case, isn't accepting connections. Then, when it's available (on the specified port) it will respond with the message, "Port is open. . ."
I like to use the interval of 1 second as it is useful in determining how long an instance was offline and the duration of each stage.
For more info see the following posts.