Example usage for com.amazonaws.services.rds.model CreateDBSecurityGroupRequest CreateDBSecurityGroupRequest

List of usage examples for com.amazonaws.services.rds.model CreateDBSecurityGroupRequest CreateDBSecurityGroupRequest

Introduction

In this page you can find the example usage for com.amazonaws.services.rds.model CreateDBSecurityGroupRequest CreateDBSecurityGroupRequest.

Prototype

public CreateDBSecurityGroupRequest() 

Source Link

Document

Default constructor for CreateDBSecurityGroupRequest object.

Usage

From source file:RDSManager.java

public void createRDSSecurityGroup() {
    try {/*from   w w  w .  j a v  a2 s  .  c om*/

        System.out.println("Creating RDS Security Group");

        CreateDBSecurityGroupRequest d = new CreateDBSecurityGroupRequest();
        d.setDBSecurityGroupName(SECURITY_GROUP_NAME);
        d.setDBSecurityGroupDescription(SECURITY_GROUP_DESC);
        rds.createDBSecurityGroup(d);

        AuthorizeDBSecurityGroupIngressRequest auth = new AuthorizeDBSecurityGroupIngressRequest();
        auth.setDBSecurityGroupName(SECURITY_GROUP_NAME);
        auth.setCIDRIP("0.0.0.0/0");
        //auth.setEC2SecurityGroupName(groupName);
        //auth.setEC2SecurityGroupOwnerId(OwnerId);
        DBSecurityGroup dbsecuritygroup = rds.authorizeDBSecurityGroupIngress(auth);

    } catch (Exception e) {
        e.printStackTrace();
        System.exit(0);
    }
}

From source file:com.amazon.aws.myyoutube.videoUtil.GetRDSInstance.java

License:Open Source License

public static void main(String[] args) throws Exception {

    credentials = new PropertiesCredentials(
            GetRDSInstance.class.getResourceAsStream("AwsCredentials.properties"));

    try {/*from  ww w . ja v  a2 s.  co  m*/
        rds = new AmazonRDSClient(credentials);

        /*********************************************
         *  RDS DB
         *********************************************/

        System.out.println("Creating a database instance");

        CreateDBSecurityGroupRequest d = new CreateDBSecurityGroupRequest()
                .withDBSecurityGroupName("javaSecurityGroup1")
                .withDBSecurityGroupDescription("DB security group1");
        rds.createDBSecurityGroup(d);

        AuthorizeDBSecurityGroupIngressRequest auth = new AuthorizeDBSecurityGroupIngressRequest()
                .withDBSecurityGroupName("javaSecurityGroup1")
                //         .withEC2SecurityGroupName("javaSecurityGroup")
                .withCIDRIP("0.0.0.0/0");
        //         .withCIDRIP("216.165.95.69/32");

        DBSecurityGroup dbsecuritygroup = rds.authorizeDBSecurityGroupIngress(auth);
        String[] dBSecurityGroups = { dbsecuritygroup.getDBSecurityGroupName() };

        CreateDBInstanceRequest createDBInstanceRequest = new CreateDBInstanceRequest().withEngine("MySQL")
                .withLicenseModel("general-public-license").withEngineVersion("5.6.13")
                .withDBInstanceClass("db.t1.micro").withMultiAZ(false).withAutoMinorVersionUpgrade(true)
                .withAllocatedStorage(5).withDBInstanceIdentifier("mydbinstance1").withMasterUsername("awsuser")
                .withMasterUserPassword("mypassword").withDBName("dbname1").withPort(3306)
                .withAvailabilityZone(null).withDBSecurityGroups(dBSecurityGroups);

        ArrayList<String> arrDbSecur = new ArrayList<String>();
        arrDbSecur.add("javaSecurityGroup1");
        createDBInstanceRequest.setDBSecurityGroups(arrDbSecur);

        DBInstance dbInstance = rds.createDBInstance(createDBInstanceRequest);

        Thread.sleep(600000);

        DescribeDBInstancesRequest instRequest = new DescribeDBInstancesRequest()
                .withDBInstanceIdentifier("mydbinstance1");

        DescribeDBInstancesResult instres = rds.describeDBInstances(instRequest);

        Endpoint e = instres.getDBInstances().get(0).getEndpoint();
        System.out.println("ENd point " + e.getAddress() + " " + e.getPort());
        System.out.println("Database Created");
        System.out.println("Creating a table");
        //connection
        java.sql.Connection con = null;
        Statement st = null;
        // Format "jdbc:mysql://" + hostname + ":" + port + "/" + dbName + "?user=" + userName + "&password=" + password;
        String url = "jdbc:mysql://" + e.getAddress() + ":" + e.getPort()
                + "/dbname1?user=awsuser&password=mypassword"; //  "jdbc:mysql://master:password@"+e+"/dbname";
        System.out.println("Url is " + url);
        String user = "awsuser";
        String password = "mypassword";

        con = DriverManager.getConnection(url, user, password);

        System.out.println("Connection created");

        java.sql.Statement stat = con.createStatement();

        String query = "CREATE TABLE Items ( item_id VARCHAR(200), type INTEGER, quantity INTEGER, user VARCHAR(100), price FLOAT(5,2) );";
        stat.execute(query);

        String query1 = "CREATE TABLE WishList ( user VARCHAR(200), wishlistId VARCHAR(100) );";
        stat.execute(query1);

    } catch (AmazonServiceException ase) {
        System.out.println("Caught Exception: " + ase.getMessage());
        System.out.println("Response Status Code: " + ase.getStatusCode());
        System.out.println("Error Code: " + ase.getErrorCode());
        System.out.println("Request ID: " + ase.getRequestId());
    }
}

From source file:com.jaspersoft.jasperserver.api.engine.jasperreports.util.AwsDataSourceRecovery.java

License:Open Source License

private void createRDSSecurityGroup(AwsReportDataSource awsReportDataSource) throws Exception {
    AWSCredentials awsCredentials = AwsCredentialUtil.getAWSCredentials(awsReportDataSource.getAWSAccessKey(),
            awsReportDataSource.getAWSSecretKey(), awsReportDataSource.getRoleARN());

    AmazonRDSClient rdsClient = new AmazonRDSClient(awsCredentials);
    DescribeDBInstancesRequest describeDBInstancesRequest = new DescribeDBInstancesRequest()
            .withDBInstanceIdentifier(awsReportDataSource.getDbInstanceIdentifier());
    String endpoint = awsReportDataSource.getAWSRegion();
    if (endpoint != null) {
        rdsClient.setEndpoint(RDS + "." + endpoint);
    }/*from ww w.  j  av a 2  s.  co m*/
    DBInstance dbInstance;
    DescribeDBInstancesResult describeInstancesResult = rdsClient
            .describeDBInstances(describeDBInstancesRequest);
    if (describeInstancesResult != null && describeInstancesResult.getDBInstances() != null
            && describeInstancesResult.getDBInstances().size() > 0) {
        dbInstance = describeInstancesResult.getDBInstances().get(0);
        if (!dbInstance.getDBInstanceStatus().equals(awsDataSourceActiveStatus)) {
            throw new JSException(
                    messageSource.getMessage("aws.exception.datasource.recovery.instance.not.active", null,
                            LocaleContextHolder.getLocale()));
        }
        Map<String, String> awsDSInstanceDetails = new HashMap<String, String>();
        awsDSInstanceDetails.put(DB_REGION, parseRegionFromSubRegion(dbInstance.getAvailabilityZone()));
        DBSubnetGroup dbSubnetGroup = dbInstance.getDBSubnetGroup();
        if (dbSubnetGroup != null) {
            awsDSInstanceDetails.put(DB_VPC_ID, dbSubnetGroup.getVpcId());
        } else {
            awsDSInstanceDetails.put(DB_VPC_ID, null);
        }

        String instanceSourceIp = determineSourceIpAddress(awsDSInstanceDetails);

        if (!isNotEmpty(instanceSourceIp)) {
            throw new JSException(
                    getErrorMessage("aws.exception.datasource.recovery.public.ip.not.determined"));
        }

        //IP that should be added in CIDRIP of JS DB Security Group
        String ingressIpMask = instanceSourceIp + ingressIpPermission;

        String vpcSecurityGroupId = null;
        if (awsDSInstanceDetails.get(DB_VPC_ID) != null) {
            //Recover VPC Security Group.
            vpcSecurityGroupId = recoverVpcSecurityGroup(awsReportDataSource,
                    awsDSInstanceDetails.get(DB_VPC_ID), ingressIpMask);
        } else {
            //Recover Db Security Group
            //Fount existing JS DB Security Group
            Boolean jsSecurityGroupMembershipFount = true;

            DBSecurityGroup dbSecurityGroup = null;
            try {
                DescribeDBSecurityGroupsRequest describeDBSecurityGroupsRequest = new DescribeDBSecurityGroupsRequest()
                        .withDBSecurityGroupName(awsProperties.getSecurityGroupName());
                DescribeDBSecurityGroupsResult describeDBSecurityGroupsResult = rdsClient
                        .describeDBSecurityGroups(describeDBSecurityGroupsRequest);
                dbSecurityGroup = describeDBSecurityGroupsResult.getDBSecurityGroups().get(0);
            } catch (DBSecurityGroupNotFoundException ex) {
                jsSecurityGroupMembershipFount = false;
            }

            boolean ingressIpMaskExist = false;
            if (jsSecurityGroupMembershipFount) {
                List<IPRange> ipRanges = dbSecurityGroup.getIPRanges();
                for (IPRange ipRange : ipRanges) {
                    if (ipRange.getCIDRIP().contains(ingressIpMask)) {
                        ingressIpMaskExist = true;
                        break;
                    }
                }
                if (!ingressIpMaskExist) {
                    //Remove old ingress Ips
                    for (IPRange ipRange : ipRanges) {
                        RevokeDBSecurityGroupIngressRequest revokeDBSecurityGroupIngressRequest = new RevokeDBSecurityGroupIngressRequest()
                                .withDBSecurityGroupName(awsProperties.getSecurityGroupName())
                                .withCIDRIP(ipRange.getCIDRIP());
                        rdsClient.revokeDBSecurityGroupIngress(revokeDBSecurityGroupIngressRequest);
                    }
                }
            } else {
                dbSecurityGroup = rdsClient.createDBSecurityGroup(new CreateDBSecurityGroupRequest()
                        .withDBSecurityGroupName(awsProperties.getSecurityGroupName())
                        .withDBSecurityGroupDescription(awsProperties.getSecurityGroupDescription()));
            }
            //Authorize new ingress Ip
            if (!ingressIpMaskExist) {
                rdsClient.authorizeDBSecurityGroupIngress(new AuthorizeDBSecurityGroupIngressRequest()
                        .withDBSecurityGroupName(dbSecurityGroup.getDBSecurityGroupName())
                        .withCIDRIP(ingressIpMask));
            }
        }

        if (vpcSecurityGroupId == null) {
            List<DBSecurityGroupMembership> dbSecurityGroupMemberships = dbInstance.getDBSecurityGroups();
            List<String> dbSecurityGroupNames = new ArrayList<String>();
            for (DBSecurityGroupMembership dbSecurityGroupMembership : dbSecurityGroupMemberships) {
                dbSecurityGroupNames.add(dbSecurityGroupMembership.getDBSecurityGroupName());
            }
            //If RDS Instance does not contain JSSecurityGroup that we should assign it to.
            if (!dbSecurityGroupNames.contains(awsProperties.getSecurityGroupName())) {
                dbSecurityGroupNames.add(awsProperties.getSecurityGroupName());
                ModifyDBInstanceRequest modifyDBInstanceRequest = new ModifyDBInstanceRequest()
                        .withDBSecurityGroups(dbSecurityGroupNames)
                        .withDBInstanceIdentifier(dbInstance.getDBInstanceIdentifier());
                modifyDBInstanceRequest.setApplyImmediately(true);
                rdsClient.modifyDBInstance(modifyDBInstanceRequest);
            }
        } else {
            List<VpcSecurityGroupMembership> vpcSecurityGroupMemberships = dbInstance.getVpcSecurityGroups();
            List<String> vpcSecurityGroupIds = new ArrayList<String>();
            for (VpcSecurityGroupMembership vpcSecurityGroupMembership : vpcSecurityGroupMemberships) {
                vpcSecurityGroupIds.add(vpcSecurityGroupMembership.getVpcSecurityGroupId());
            }
            //If RDS Instance does not contain VPC Security Group that we should assign it to.
            if (!vpcSecurityGroupIds.contains(vpcSecurityGroupId)) {
                vpcSecurityGroupIds.add(vpcSecurityGroupId);
                ModifyDBInstanceRequest modifyDBInstanceRequest = new ModifyDBInstanceRequest()
                        .withVpcSecurityGroupIds(vpcSecurityGroupIds)
                        .withDBInstanceIdentifier(dbInstance.getDBInstanceIdentifier());
                modifyDBInstanceRequest.setApplyImmediately(true);
                rdsClient.modifyDBInstance(modifyDBInstanceRequest);
            }
        }
    }
}

From source file:com.kpbird.aws.Main.java

public void createRDSSecurityGroup() {
    try {/*from w  ww  .j a  va2  s.  c  om*/

        log.Info("About to Launch RDS");

        CreateDBSecurityGroupRequest d = new CreateDBSecurityGroupRequest();
        d.setDBSecurityGroupName(DBSecurityGroupName);
        d.setDBSecurityGroupDescription(DBSsecurityGroupDescription);
        rdsclient.createDBSecurityGroup(d);

        AuthorizeDBSecurityGroupIngressRequest auth = new AuthorizeDBSecurityGroupIngressRequest();
        auth.setDBSecurityGroupName(DBSecurityGroupName);
        auth.setEC2SecurityGroupName(groupName);
        auth.setEC2SecurityGroupOwnerId(OwnerId);

        DBSecurityGroup dbsecuritygroup = rdsclient.authorizeDBSecurityGroupIngress(auth);

    } catch (Exception e) {
        e.printStackTrace();
        System.exit(0);
    }
}

From source file:org.cloudml.connectors.BeanstalkConnector.java

License:Open Source License

public void createDBInstance(String engine, String version, String dbInstanceIdentifier, String dbName,
        String username, String password, Integer allocatedSize, String dbInstanceClass, String securityGroup) {

    if (allocatedSize <= 0) //default minimal size for rds
        allocatedSize = 5;//from w ww  .j  a  va2  s  . c o  m

    String groupName = dbInstanceIdentifier + "-security-group";
    CreateDBSecurityGroupRequest csg = new CreateDBSecurityGroupRequest().withDBSecurityGroupName(groupName)
            .withDBSecurityGroupDescription(groupName);

    try {
        rdsClient.createDBSecurityGroup(csg);
    } catch (Exception e) {
        journal.log(Level.INFO, ">> Security Group " + groupName + " already exists.");
    }

    CreateDBInstanceRequest request = new CreateDBInstanceRequest().withDBName(null)
            .withAllocatedStorage(allocatedSize).withDBInstanceIdentifier(dbInstanceIdentifier)
            .withDBName(dbName).withMasterUsername(username).withMasterUserPassword(password).withEngine(engine)
            .withPubliclyAccessible(true).withEngineVersion(version);
    request.getDBSecurityGroups().add(groupName);
    if (!securityGroup.equals(""))
        request.getDBSecurityGroups().add(securityGroup);

    previousRequests.put(dbInstanceIdentifier, request);
    if (dbInstanceClass == null || dbInstanceClass.length() == 0) {
        request.setDBInstanceClass("db.t1.micro");
    } else {
        request.setDBInstanceClass(dbInstanceClass);
    }
    DBInstance instance = rdsClient.createDBInstance(request);
    journal.log(Level.INFO,
            String.format(">> RDS instance created: %s, at %s", instance.toString(), instance.getEndpoint()));

    createdInstances.put(dbInstanceIdentifier, instance);

}

From source file:org.cloudml.connectors.BeanstalkConnector.java

License:Open Source License

/**
 * Not used yet!/* w  w  w.j  ava  2 s .c om*/
 *
 * @param dbInstanceIdentifier
 * @param group
 * @param owner
 */
public void setSecuretGroup(String dbInstanceIdentifier, String group, String owner) {

    String groupName = dbInstanceIdentifier + "-security-group";
    CreateDBSecurityGroupRequest csg = new CreateDBSecurityGroupRequest();
    csg.setDBSecurityGroupName(groupName);
    csg.setDBSecurityGroupDescription(groupName);
    rdsClient.createDBSecurityGroup(csg);

    RevokeDBSecurityGroupIngressRequest rsgi = new RevokeDBSecurityGroupIngressRequest();
    rsgi.setDBSecurityGroupName(groupName);
    rsgi.setEC2SecurityGroupId(group);
    rsgi.setEC2SecurityGroupOwnerId(owner);
    rsgi.setRequestCredentials(awsCredentials);
    //rsgi.set
    rdsClient.revokeDBSecurityGroupIngress(rsgi);

    ModifyDBInstanceRequest request = new ModifyDBInstanceRequest();
    Collection<String> groups = new ArrayList();
    groups.add(groupName);
    request.setDBSecurityGroups(groups);
    request.setDBInstanceIdentifier(dbInstanceIdentifier);
    rdsClient.modifyDBInstance(request);

}