How to access shared locations between two Amazon EC2 instances

amazon ec2networkingwindows-server-2003

I have two Amazon EC2 Instances running Windows Server 2003 and IIS 6.0. Both the instances are created in the same region and have the same Security Group. I enables icmp for all ports and connection methods, and am able to successfully ping between both my instances. However, when I try to access the shared locations of one EC2 instance feom another, using:

\\<elastic-ip>

or

\\<internal-private-ip>

I am unable to see the shared locations, and get an error saying:

No Network Provider accepted the given network path

I am able to trace from both EC2 instances using the tracert command.

Please let me know of a way to accessed shared locations between two EC2 instances.

Thanks

P.S.: I know that this can alternatively be achieved using S3, but do not wish to use it for different reasons.

Best Answer

I found the answer to my own query, and here it is:

Theory:

This can be found at this Microsoft knowledgebase article which deals with the ways to enable Microsoft file sharing SMB. The below matter is of relevance:

The following ports are associated with file sharing and server message block (SMB) communications:

  • Microsoft file sharing SMB: User Datagram Protocol (UDP) ports from 135 through 139 and Transmission Control Protocol (TCP) ports from 135 through 139.
  • Direct-hosted SMB traffic without a network basic input/output system (NetBIOS): port 445 (TCP and UPD).

How to do it:

  1. Enable the above ports in the security group associated with your EC2 Instance. Once you have done this, your Security Group Permissions should look something like the image below: EC2 Security Group Permissions

  2. Enable the ports in the windows firewalls of both the instances. A detailed method to do so can be found here. Skip step 7 for Windows Server.

This solves the issue, however, a restart of the instances might be needed.