CloudFormationでRDSデプロイする – 【CloudFormation】

CloudFormationでRDSデプロイする – 【CloudFormation】

CloudFormationでRDSデプロイするyamlです。

RDS

EngineVersionなどはシングルクォーテーションで囲まないと14.10は14.1扱いになってしまいます。

template.yaml

AWSTemplateFormatVersion: 2010-09-09
Transform: AWS::Serverless-2016-10-31
Description: CloudFormation template

Resources:
  DBInstance:
    Type: AWS::RDS::DBInstance
    Properties:
      Engine: postgres
      EngineVersion: '14.10'
      MasterUsername: postgres
      MasterUserPassword: postgres
      AllocatedStorage: '20'
      DBInstanceClass: db.t3.micro
      DBInstanceIdentifier: dbinstancename
      PubliclyAccessible: true

Outputs:
  Address:
    Description: "Address"
    Value: !GetAtt DBInstance.Endpoint.Address # dbinstancename.c98hpxx00o6a.ap-northeast-1.rds.amazonaws.com
  Port:
    Description: "Port"
    Value: !GetAtt DBInstance.Endpoint.Port # 5432

CloudFormationのyaml内でRDSのエンドポイントやポートを参照するには、以下の方法で参照します。

参照 内容
!GetAtt XXX.Endpoint.Address dbinstancename.c98hpxx00o6a.ap-northeast-1.rds.amazonaws.com
!GetAtt XXX.Endpoint.Port 3306

sam deploy

コマンドプロンプトからデプロイします。ここではスタック名はmystackにしています。

sam deploy --template-file template.yaml --resolve-s3 ^
 --stack-name mystack --capabilities CAPABILITY_NAMED_IAM ^
 --no-fail-on-empty-changeset --region ap-northeast-1

ドキュメント

AWS::RDS::DBInstance - AWS CloudFormation
Use the AWS CloudFormation AWS::RDS::DBInstance resource for RDS.
AWS::RDS::DBInstance Endpoint - AWS CloudFormation
This data type represents the information you need to connect to an Amazon RDS DB instance. This data type is used as a ...
タイトルとURLをコピーしました