1
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

AWSAdvent Calendar 2022

Day 15

Cloudformation で RDS (Amazon Aurora MySQL ) からクローンを作成する

Last updated at Posted at 2022-12-13

はじめに

Amazon Auroraでは、既存のAuroraクラスターを素早く複製するクローン機能があります。
クローン機能を使い、CloudformationでAuroraを作成する方法についてまとめます。

事前準備

  • Amazon Auroraを起動
    • エンジンバージョンは、5.7.mysql_aurora.2.10.2
    • スクリーンショット 2022-12-13 10.27.05.png

CloudFormationでスタックを作成

下記のymlファイルでスタックを作成します。

AWSTemplateFormatVersion: '2010-09-09'
Description: For each environment of project
Metadata:
  AWS::CloudFormation::Interface:
    ParameterGroups:
      - Label:
          default: Clone source DB cluster information
        Parameters:
          - EngineType
          - MySQLMajorVersion
          - MySQLMinorVersion
          - CloneSourceDBCluster
      - Label:
          default: RDS Configuration
        Parameters:
          - DBInstanceClass
          - DBSubnetGroup
          - DBParameterGroup
          - DBClusterParameterGroup
          - DBSecurityGroup
          - DBInstanceIdentifierName
          - DBClusterIdentifierName

Parameters:
  EngineType:
    Type: String
    Description: Clone source DB cluster engine type.
    Default: aurora-mysql
  MySQLMajorVersion:
    Type: String
    Description: Clone source DB cluster mysql major version. For example 5.7
  MySQLMinorVersion:
    Type: String
    Description: Clone source DB cluster mysql minor version. For example 2.10.2
  CloneSourceDBCluster:
    Type: String
    Description: Clone source DB cluster name.
  DBInstanceClass:
    Type: String
    Default: db.t3.small
  DBSubnetGroup:
    Type: String
    Description: DB Subnet Group
  DBClusterParameterGroup:
    Type: String
    Description: DB Cluster Parameter Group
  DBParameterGroup:
    Type: String
    Description: DB instance Parameter Group
  DBSecurityGroup:
    Type: AWS::EC2::SecurityGroup::Id
    Description: Security Group ID
  DBInstanceIdentifierName:
    Type: String
    Description: DB instance identifier name
  DBClusterIdentifierName:
    Type: String
    Description: DB cluster identifier name

Resources:
  DBCluster:
    Type: AWS::RDS::DBCluster
    DeletionPolicy: Delete
    Properties:
      BackupRetentionPeriod: 7
      DBClusterIdentifier: !Ref DBClusterIdentifierName
      DBSubnetGroupName: !Ref DBSubnetGroup
      DBClusterParameterGroupName: !Ref DBClusterParameterGroup
      Engine: !Ref EngineType
      EngineVersion: !Sub ${MySQLMajorVersion}.mysql_aurora.${MySQLMinorVersion}
      EngineMode: provisioned
      VpcSecurityGroupIds:
        - !Ref DBSecurityGroup
      PreferredBackupWindow: 16:00-17:00
      DeletionProtection: false
      PreferredMaintenanceWindow: tue:18:00-tue:19:00
      SourceDBClusterIdentifier: !Ref CloneSourceDBCluster
      RestoreType: copy-on-write
      UseLatestRestorableTime: true

  DBInstance:
    Type: AWS::RDS::DBInstance
    DeletionPolicy: Delete
    Properties:
      DBClusterIdentifier: !Ref DBCluster
      DBInstanceIdentifier: !Ref DBInstanceIdentifierName
      DBInstanceClass: !Ref DBInstanceClass
      DBSubnetGroupName: !Ref DBSubnetGroup
      DBParameterGroupName: !Ref DBParameterGroup
      Engine: !Ref EngineType
      EngineVersion: !Sub ${MySQLMajorVersion}.mysql_aurora.${MySQLMinorVersion}
      PubliclyAccessible: false
      AvailabilityZone: !Sub ${AWS::Region}a
      AutoMinorVersionUpgrade: false
      EnablePerformanceInsights: false
      PreferredMaintenanceWindow: tue:18:00-tue:19:00
      PromotionTier: 1
      MonitoringInterval: 0

ymlファイルの解説

ymlファイルは、AWSの公式ドキュメントがわかりやすかったので、参考にしました。

必須プロパティ

クローンを作成する上で必須のプロパティは、3つです。

  • SourceDBClusterIdentifier
    • クローン元のクラスター識別子名
  • RestoreType
    • copy-on-writeは、クローン元からクローンとして復元されます。
  • UseLatestRestorableTime
    • クラスターを最新の復元可能なバックアップ時刻に復元するかどうかを示す値。trueにすることで、最新から復元する。

不要プロパティ

クローンを作成する上で、記載してはならないプロパティは、4つあります。
クローン元に依存するため、指定できないようです。

  • MasterUsername
  • MasterUserPassword
  • SnapshotIdentifier
    • スナップショットからAuroraを作成(復元)する
  • StorageEncrypted
    • DB クラスターを暗号化するかどうか

注意点

クローン元と作成するAuroraのエンジンバージョンは、同じにしてください。
今回の場合は、5.7.mysql_aurora.2.10.2です。

  • Engine
  • EngineVersion

入力するパラメータ

入力するパラメータは、結論から言うと、以下のようになります。
下記画像の上部の赤枠は、クローン元の情報でありクローン元に依存するパラメータ
下部は、作成するAuroraに関するパラメータを記載します。
スクリーンショット 2022-12-13 10.29.31.png

クローン元に依存するパラメータ

各パラメータで入力する値を説明していきます。

バージョンに関する3点は、クローン元と同じ値にします。

  • EngineType
  • MySQLMajorVersion
  • MySQLMinorVersion

また、クローン元の識別子を以下のパラメータに記載します。

  • CloneSourceDBCluster
    スクリーンショット 2022-12-13 10.27.05.png

作成するAuroraに関するパラメータ

各パラメータは、自身の環境に合わせて記載しましょう。

  • DBSubnetGroup
    スクリーンショット 2022-12-13 10.32.49.png
  • DBParameterGroup
  • DBClusterParameterGroup
    スクリーンショット 2022-12-13 10.33.39.png
  • DBSecurityGroup
    • Aurora用のセキュリティーグループのID
  • DBInstanceIdentifierName
    • インスタンスの識別子名
  • DBClusterIdentifierName
    • クラスターの識別子名

上記のパラメータからスタックを作成すると、testというクラスターからクローンが作成されました!

スクリーンショット 2022-12-13 10.39.08.png

1
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?