Trechos de modelo do Amazon RDS
Tópicos
- Recurso de instância de banco de dados do Amazon RDS
- Recurso de instância de banco de dados do Oracle do Amazon RDS
- Recurso DBSecurityGroup do Amazon RDS para intervalo de CIDR
- DBSecurityGroup do Amazon RDS com um grupo de segurança do Amazon EC2
- Security groups da VPC múltiplos
- Instância de banco de dados do Amazon RDS em um grupo de segurança da VPC
Recurso de instância de banco de dados do Amazon RDS
Este exemplo mostra um recurso de instância de banco de dados do Amazon RDS. Como a propriedade EngineVersion opcional não está especificada, a versão do mecanismo padrão é usada para esta instância de banco de dados. Para obter detalhes sobre a versão do mecanismo padrão e outras configurações padrão, consulte CreateDBInstance. A propriedade DBSecurityGroups autoriza o ingresso na rede dos recursos AWS::RDS::DBSecurityGroup
chamados MyDbSecurityByEC2SecurityGroup e MyDbSecurityByCIDRIPGroup. Para obter detalhes, consulte AWS::RDS::DBInstance. O recurso Instância de Banco de Dados também tem um atributo DeletionPolicy definido para Snapshot. Com o DeletionPolicy definido para Snapshot, o AWS CloudFormation obterá um snapshot dessa instância de banco de dados antes de excluí-lo durante a exclusão da pilha.
JSON
"MyDB" : { "Type" : "AWS::RDS::DBInstance", "Properties" : { "DBSecurityGroups" : [ {"Ref" : "MyDbSecurityByEC2SecurityGroup"}, {"Ref" : "MyDbSecurityByCIDRIPGroup"} ], "AllocatedStorage" : "5", "DBInstanceClass" : "db.t2.small", "Engine" : "MySQL", "MasterUsername" : "MyName", "MasterUserPassword" : "MyPassword" }, "DeletionPolicy" : "Snapshot" }
YAML
MyDB: Type: AWS::RDS::DBInstance Properties: DBSecurityGroups: - Ref: MyDbSecurityByEC2SecurityGroup - Ref: MyDbSecurityByCIDRIPGroup AllocatedStorage: '5' DBInstanceClass: db.t2.small Engine: MySQL MasterUsername: MyName MasterUserPassword: MyPassword DeletionPolicy: Snapshot
Recurso de instância de banco de dados do Oracle do Amazon RDS
Este exemplo cria um recurso de instância de banco de dados do Oracle Database especificando o mecanismo como oracle-ee com um modelo de licença Bring-Your-Own-License. Para obter detalhes sobre as configurações para instâncias de banco de dados do Oracle Database, consulte CreateDBInstance. A propriedade DBSecurityGroups autoriza o ingresso na rede dos recursos AWS::RDS::DBSecurityGroup
chamados MyDbSecurityByEC2SecurityGroup e MyDbSecurityByCIDRIPGroup. Para obter detalhes, consulte AWS::RDS::DBInstance. O recurso Instância de Banco de Dados também tem um atributo DeletionPolicy definido para Snapshot. Com o DeletionPolicy definido para Snapshot, o AWS CloudFormation obterá um snapshot dessa instância de banco de dados antes de excluí-lo durante a exclusão da pilha.
JSON
"MyDB" : { "Type" : "AWS::RDS::DBInstance", "Properties" : { "DBSecurityGroups" : [ {"Ref" : "MyDbSecurityByEC2SecurityGroup"}, {"Ref" : "MyDbSecurityByCIDRIPGroup"} ], "AllocatedStorage" : "5", "DBInstanceClass" : "db.t2.small", "Engine" : "oracle-ee", "LicenseModel" : "bring-your-own-license", "MasterUsername" : "master", "MasterUserPassword" : "SecretPassword01" }, "DeletionPolicy" : "Snapshot" }
YAML
MyDB: Type: AWS::RDS::DBInstance Properties: DBSecurityGroups: - Ref: MyDbSecurityByEC2SecurityGroup - Ref: MyDbSecurityByCIDRIPGroup AllocatedStorage: '5' DBInstanceClass: db.t2.small Engine: oracle-ee LicenseModel: bring-your-own-license MasterUsername: master MasterUserPassword: SecretPassword01 DeletionPolicy: Snapshot
Recurso DBSecurityGroup do Amazon RDS para intervalo de CIDR
Este exemplo mostra um recurso DBSecurityGroup do Amazon RDS com uma autorização de entrada para o intervalo de CIDR especificado no formato ddd.ddd.ddd.ddd/dd. Para obter detalhes, consulte AWS::RDS::DBSecurityGroup e Ingress.
JSON
"MyDbSecurityByCIDRIPGroup" : { "Type" : "AWS::RDS::DBSecurityGroup", "Properties" : { "GroupDescription" : "Ingress for CIDRIP", "DBSecurityGroupIngress" : { "CIDRIP" : "
192.168.0.0/32
" } } }
YAML
MyDbSecurityByCIDRIPGroup: Type: AWS::RDS::DBSecurityGroup Properties: GroupDescription: Ingress for CIDRIP DBSecurityGroupIngress: CIDRIP: "
192.168.0.0/32
"
DBSecurityGroup do Amazon RDS com um grupo de segurança do Amazon EC2
Este exemplo mostra um recurso AWS::RDS::DBSecurityGroup com autorização de entrada de um grupo de segurança do Amazon EC2 referenciado pelo MyEc2SecurityGroup.
Para fazer isso, defina um security group do EC2 e, em seguida, use a função intrínseca Ref para fazer referência ao security group do EC2 no DBSecurityGroup.
JSON
"DBInstance" : { "Type": "AWS::RDS::DBInstance", "Properties": { "DBName" : { "Ref" : "DBName" }, "Engine" : "MySQL", "MasterUsername" : { "Ref" : "DBUsername" }, "DBInstanceClass" : { "Ref" : "DBClass" }, "DBSecurityGroups" : [ { "Ref" : "DBSecurityGroup" } ], "AllocatedStorage" : { "Ref" : "DBAllocatedStorage" }, "MasterUserPassword": { "Ref" : "DBPassword" } } }, "DBSecurityGroup": { "Type": "AWS::RDS::DBSecurityGroup", "Properties": { "DBSecurityGroupIngress": { "EC2SecurityGroupName": { "Ref": "WebServerSecurityGroup" } }, "GroupDescription" : "Frontend Access" } }, "WebServerSecurityGroup" : { "Type" : "AWS::EC2::SecurityGroup", "Properties" : { "GroupDescription" : "Enable HTTP access via port 80 and SSH access", "SecurityGroupIngress" : [ {"IpProtocol" : "tcp", "FromPort" : 80, "ToPort" : 80, "CidrIp" : "0.0.0.0/0"}, {"IpProtocol" : "tcp", "FromPort" : 22, "ToPort" : 22, "CidrIp" : "0.0.0.0/0"} ] } }
YAML
Este exemplo é extraído do seguinte exemplo completo: Drupal_Single_Instance_With_RDS.template
DBInstance: Type: AWS::RDS::DBInstance Properties: DBName: Ref: DBName Engine: MySQL MasterUsername: Ref: DBUsername DBInstanceClass: Ref: DBClass DBSecurityGroups: - Ref: DBSecurityGroup AllocatedStorage: Ref: DBAllocatedStorage MasterUserPassword: Ref: DBPassword DBSecurityGroup: Type: AWS::RDS::DBSecurityGroup Properties: DBSecurityGroupIngress: EC2SecurityGroupName: Ref: WebServerSecurityGroup GroupDescription: Frontend Access WebServerSecurityGroup: Type: AWS::EC2::SecurityGroup Properties: GroupDescription: Enable HTTP access via port 80 and SSH access SecurityGroupIngress: - IpProtocol: tcp FromPort: 80 ToPort: 80 CidrIp: 0.0.0.0/0 - IpProtocol: tcp FromPort: 22 ToPort: 22 CidrIp: 0.0.0.0/0
Security groups da VPC múltiplos
Este exemplo mostra um recurso AWS::RDS::DBSecurityGroup com autorização de entrada para vários grupos de segurança de VPC do Amazon EC2 em AWS::RDS::DBSecurityGroupIngress.
JSON
{ "Resources" : { "DBinstance" : { "Type" : "AWS::RDS::DBInstance", "Properties" : { "AllocatedStorage" : "5", "DBInstanceClass" : "db.t2.small", "DBName" : {"Ref": "MyDBName" }, "DBSecurityGroups" : [ { "Ref" : "DbSecurityByEC2SecurityGroup" } ], "DBSubnetGroupName" : { "Ref" : "MyDBSubnetGroup" }, "Engine" : "MySQL", "MasterUserPassword": { "Ref" : "MyDBPassword" }, "MasterUsername" : { "Ref" : "MyDBUsername" } }, "DeletionPolicy" : "Snapshot" }, "DbSecurityByEC2SecurityGroup" : { "Type" : "AWS::RDS::DBSecurityGroup", "Properties" : { "GroupDescription" : "Ingress for Amazon EC2 security group", "EC2VpcId" : { "Ref" : "MyVPC" }, "DBSecurityGroupIngress" : [ { "EC2SecurityGroupId" : "sg-b0ff1111", "EC2SecurityGroupOwnerId" : "111122223333" }, { "EC2SecurityGroupId" : "sg-ffd722222", "EC2SecurityGroupOwnerId" : "111122223333" } ] } } } }
YAML
Resources: DBinstance: Type: AWS::RDS::DBInstance Properties: AllocatedStorage: '5' DBInstanceClass: db.t2.small DBName: Ref: MyDBName DBSecurityGroups: - Ref: DbSecurityByEC2SecurityGroup DBSubnetGroupName: Ref: MyDBSubnetGroup Engine: MySQL MasterUserPassword: Ref: MyDBPassword MasterUsername: Ref: MyDBUsername DeletionPolicy: Snapshot DbSecurityByEC2SecurityGroup: Type: AWS::RDS::DBSecurityGroup Properties: GroupDescription: Ingress for Amazon EC2 security group EC2VpcId: Ref: MyVPC DBSecurityGroupIngress: - EC2SecurityGroupId: sg-b0ff1111 EC2SecurityGroupOwnerId: '111122223333' - EC2SecurityGroupId: sg-ffd722222 EC2SecurityGroupOwnerId: '111122223333'
Instância de banco de dados do Amazon RDS em um grupo de segurança da VPC
Este exemplo mostra uma instância do banco de dados do Amazon RDS associada a um security group da VPC do Amazon EC2.
JSON
{ "DBEC2SecurityGroup": { "Type": "AWS::EC2::SecurityGroup", "Properties" : { "GroupDescription": "Open database for access", "SecurityGroupIngress" : [{ "IpProtocol" : "tcp", "FromPort" : 3306, "ToPort" : 3306, "SourceSecurityGroupName" : { "Ref" : "WebServerSecurityGroup" } }] } }, "DBInstance" : { "Type": "AWS::RDS::DBInstance", "Properties": { "DBName" : { "Ref" : "DBName" }, "Engine" : "MySQL", "MultiAZ" : { "Ref": "MultiAZDatabase" }, "MasterUsername" : { "Ref" : "DBUser" }, "DBInstanceClass" : { "Ref" : "DBClass" }, "AllocatedStorage" : { "Ref" : "DBAllocatedStorage" }, "MasterUserPassword": { "Ref" : "DBPassword" }, "VPCSecurityGroups" : [ { "Fn::GetAtt": [ "DBEC2SecurityGroup", "GroupId" ] } ] } } }
YAML
DBEC2SecurityGroup: Type: AWS::EC2::SecurityGroup Properties: GroupDescription: Open database for access SecurityGroupIngress: - IpProtocol: tcp FromPort: 3306 ToPort: 3306 SourceSecurityGroupName: Ref: WebServerSecurityGroup DBInstance: Type: AWS::RDS::DBInstance Properties: DBName: Ref: DBName Engine: MySQL MultiAZ: Ref: MultiAZDatabase MasterUsername: Ref: DBUser DBInstanceClass: Ref: DBClass AllocatedStorage: Ref: DBAllocatedStorage MasterUserPassword: Ref: DBPassword VPCSecurityGroups: - !GetAtt DBEC2SecurityGroup.GroupId