Re: bind_ip in ec2 auto scaling environment

From: Markus Thielsch <markus.thielsch@xxxxxxxxxxx>
To: mongodb-user <mongodb-user@xxxxxxxxxxxxxxxx>
Date: Thu, 21 Apr 2016 23:44:09 -0700 (PDT)
Why ads?


Hi Chris,

When using bindIP 
<https://docs.mongodb.org/manual/reference/configuration-options/#net.bindIp
within a replica set please consider the following:

Within AWS EC2 instances can have multiple IPs 
<http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-instance-addressing.html
(private and public). Each mongod generally only needs to listen to its own 
private IP/hostname. The output of rs.conf() run on any member of your 
replica set can give you more information as to which IP/hostname you need 
to specify.

Have a look at this example of rs.conf(). You would be wanting to use the 
"host": entry of each member: 

replset:PRIMARY> rs.conf()
{
    "_id" : "replset",
    "version" : 1,
    "members" : [
        {
            "_id" : 0,
            "host" : "punisher1:27017",
            "arbiterOnly" : false,
            "buildIndexes" : true,
            "hidden" : false,
            "priority" : 1,
            "tags" : {

            },
            "slaveDelay" : 0,
            "votes" : 1
        },
        {
            "_id" : 1,
            "host" : "punisher2:27017",
            "arbiterOnly" : false,
            "buildIndexes" : true,
            "hidden" : false,
            "priority" : 1,
            "tags" : {

            },
            "slaveDelay" : 0,
            "votes" : 1
        },
        {
            "_id" : 2,
            "host" : "punisher3:27017",
            "arbiterOnly" : false,
            "buildIndexes" : true,
            "hidden" : false,
            "priority" : 1,
            "tags" : {

            },
            "slaveDelay" : 0,
            "votes" : 1
        }
    ],
    "settings" : {
        "chainingAllowed" : true,
        "heartbeatTimeoutSecs" : 10,
        "getLastErrorModes" : {

        },
        "getLastErrorDefaults" : {
            "w" : 1,
            "wtimeout" : 0
        }
    }
}

If we take above replica set as an example your bindIP would need to look 
like this:

   - on member[0]: bindIp: punisher1 
   - on member[1]: bindIp: punisher2 
   - on member[2]: bindIp: punisher3 

As a general consideration if your database servers don’t need to be public 
another approach would be to use VPCs 
<http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-vpc.html> and 
private IPs exclusively for your EC2 deployment.

Please also have a look at our MongoDB Security Checklist 
<https://docs.mongodb.org/manual/administration/security-checklist/>.

Regards,
Markus

On Friday, April 15, 2016 at 6:35:53 AM UTC+10, Chris Zieba wrote:

Hi,

What is best practice for setting the bind_ip when a replica set maintains 
connections from many servers in different replica sets? 

Thanks,
Chris



-- 
You received this message because you are subscribed to the Google Groups "mongodb-user"
group.

For other MongoDB technical support options, see: https://docs.mongodb.org/manual/support/
--- 
You received this message because you are subscribed to the Google Groups "mongodb-user" group.
To unsubscribe from this group and stop receiving emails from it, send an email to mongodb-user+unsubscribe@xxxxxxxxxxxxxxxx.
To post to this group, send email to mongodb-user@xxxxxxxxxxxxxxxx.
Visit this group at https://groups.google.com/group/mongodb-user.
To view this discussion on the web visit https://groups.google.com/d/msgid/mongodb-user/d0ab50dd-397c-46cb-a2a0-829e1cb842ac%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
Why ads?