def db_instances(self, db_instance_cfg): """Build RDS DB Instances.""" existing_rds_names = self.evpc.rds.get_related_db_ids() for rds_name, db_cfg in db_instance_cfg.items(): if rds_name in existing_rds_names: msg = "skipping RDS db_instance: {} (it already exists)" self.log.emit(msg.format(rds_name), "debug") continue self.log.emit("creating {} RDS db_instance ...".format(rds_name)) # make list of security group ids. security_groups = map_filter_false( self.evpc.get_security_group, db_cfg.get("security_groups", []) ) sg_ids = get_ids(security_groups) # make list of subnet ids. subnets = map_filter_false(self.evpc.get_subnet, db_cfg.get("subnets", [])) sn_ids = get_ids(subnets) self.evpc.rds.create_db_subnet_group( DBSubnetGroupName=rds_name, DBSubnetGroupDescription=db_cfg.get("description", ""), SubnetIds=sn_ids, ) self.evpc.rds.create_db_instance( DBInstanceIdentifier=rds_name, DBSubnetGroupName=rds_name, DBName=db_cfg.get("name", rds_name), VpcSecurityGroupIds=sg_ids, DBInstanceClass=db_cfg.get("class", "db.t2.medium"), AllocatedStorage=db_cfg.get("allocated_storage", 100), Engine=db_cfg.get("engine"), EngineVersion=db_cfg.get("engine_version", ""), Iops=db_cfg.get("iops", 0), MultiAZ=db_cfg.get("multi_az", False), MasterUsername=db_cfg.get("master_username"), MasterUserPassword=generate_password(16), BackupRetentionPeriod=db_cfg.get("backup_retention_period", 0), StorageType=db_cfg.get("storage_type", "standard"), # 'gp2' StorageEncrypted=db_cfg.get("storage_encryption", False), Tags=[{"Key": "vpc_name", "Value": self.evpc.vpc_name}], )
def db_instances(self, db_instance_cfg): """Build RDS DB Instances.""" for rds_name, db_cfg in db_instance_cfg.items(): self.log.emit('creating {} RDS db_instance ...'.format(rds_name)) # make list of security group ids. security_groups = map( self.evpc.get_security_group, db_cfg.get('security_groups', []) ) sg_ids = get_ids(security_groups) # make list of subnet ids. subnets = map( self.evpc.get_subnet, db_cfg.get('subnets', []) ) sn_ids = get_ids(subnets) self.evpc.rds.create_db_subnet_group( DBSubnetGroupName = rds_name, DBSubnetGroupDescription = db_cfg.get('description',''), SubnetIds = sn_ids, ) self.evpc.rds.create_db_instance( DBInstanceIdentifier = rds_name, DBSubnetGroupName = rds_name, DBName = db_cfg.get('name', rds_name), VpcSecurityGroupIds = sg_ids, DBInstanceClass = db_cfg.get('class', 'db.t2.medium'), AllocatedStorage = db_cfg.get('allocated_storage', 100), Engine = db_cfg.get('engine'), EngineVersion = db_cfg.get('engine_version', ''), Iops = db_cfg.get('iops', 0), MultiAZ = db_cfg.get('multi_az', False), MasterUsername = db_cfg.get('master_username'), MasterUserPassword = generate_password(16), BackupRetentionPeriod = db_cfg.get('backup_retention_period', 0), Tags = [ { 'Key' : 'vpc_name', 'Value' : self.evpc.vpc_name } ], )
def db_instances(self, db_instance_cfg): """Build RDS DB Instances.""" for rds_name, db_cfg in db_instance_cfg.items(): self.log.emit('creating {} RDS db_instance ...'.format(rds_name)) # make list of security group ids. security_groups = map_filter_false( self.evpc.get_security_group, db_cfg.get('security_groups', [])) sg_ids = get_ids(security_groups) # make list of subnet ids. subnets = map_filter_false(self.evpc.get_subnet, db_cfg.get('subnets', [])) sn_ids = get_ids(subnets) self.evpc.rds.create_db_subnet_group( DBSubnetGroupName=rds_name, DBSubnetGroupDescription=db_cfg.get('description', ''), SubnetIds=sn_ids, ) self.evpc.rds.create_db_instance( DBInstanceIdentifier=rds_name, DBSubnetGroupName=rds_name, DBName=db_cfg.get('name', rds_name), VpcSecurityGroupIds=sg_ids, DBInstanceClass=db_cfg.get('class', 'db.t2.medium'), AllocatedStorage=db_cfg.get('allocated_storage', 100), Engine=db_cfg.get('engine'), EngineVersion=db_cfg.get('engine_version', ''), Iops=db_cfg.get('iops', 0), MultiAZ=db_cfg.get('multi_az', False), MasterUsername=db_cfg.get('master_username'), MasterUserPassword=generate_password(16), BackupRetentionPeriod=db_cfg.get('backup_retention_period', 0), Tags=[{ 'Key': 'vpc_name', 'Value': self.evpc.vpc_name }], )