🚚

Amazon Aurora I/O-OptimizedをCloudFormationで作成する

2023/05/31に公開

Amazon Aurora I/O-Optimizedの一般提供が開始!

DevelopersIO BASECAMP参加者の加藤です。

2023年5月11日にAmazon Aurora I/O-Optimizedの一般提供が発表されました。

今回の目的は当該機能をテンプレートで作成する事

以下のように、既に概要+コンソールを使っての設定、料金比較など確りと説明されている記事がありましたので勉強させていただきました。当記事は現状CFnのテンプレートで当該機能の作成可否を確認する事だけに留めたいと思います。
https://dev.classmethod.jp/articles/aurora-io-optimized/
https://dev.classmethod.jp/articles/amazon-aurora-io-optimized/


結論

既にユーザーガイドには対象のプロパティ、値が用意されていた為、可能。


過程

ドキュメントから該当部分を探してみる

数日遅れてUpされていたAmazon Web Services ブログの該当部分↓から、ユーザーガイドに反映されていない可能性も少し感じながらも、機能の性質から恐らくあるだろうと信じて探してみる事にしました。



プロパティを発見

AWS>Documentation>AWS CloudFormation>User Guide
内を「Storage」に当たりをつけてブラウザを検索してみました。

以前から存在したAllocatedStorageは整数を指定するもので、StorageEncryptedは字面から一旦スルーして「StorageType」の中に該当しそうな文字列がありました。(翻訳済み)



以前から存在したプロパティか、残念ながら全然覚えていませんが、この部分を追加して作成してみます。

      StorageType: aurora-iopt1

注意点

対応のエンジンバージョン

対応しているエンジンバージョンを選択していない場合、以下のエラーが起きます。

Resource handler returned message: "The aurora-iopt1 storage type isn't supported for the 8.0.mysql_aurora.3.02.2 DB engine version. (Service: Rds, Status Code: 400, Request ID: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx)" (RequestToken: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx, HandlerErrorCode: InvalidRequest)

RDSコンソールに移動して「Cluster storage configuration」を確認しました。

対応していないバージョンを選択している状態では

「選択したAurora MySQLのバージョンはAurora I/O-Optimized 構成をサポートしていません。
新しいクラスタ構成を使用するために、Aurora MySQLの最新バージョン(v 3.03.1以降)を選択してください。」ときちんと注意書きが添えてありました。


修正後のテンプレート

AWSTemplateFormatVersion: 2010-09-09
Resources:
  # ------------------------------------------------------------#
  # VPC
  # ------------------------------------------------------------#
  VPC:
    Type: AWS::EC2::VPC
    Properties:
      CidrBlock: 10.1.0.0/16
      InstanceTenancy: default
      EnableDnsSupport: true
      EnableDnsHostnames: true
      Tags:
        - Key: Name
          Value: !Sub test-vpc
  # ------------------------------------------------------------#
  # Subnet
  # ------------------------------------------------------------#
  Subnet:
    Type: AWS::EC2::Subnet
    Properties:
      CidrBlock: 10.1.0.0/24
      VpcId: !Ref VPC
      AvailabilityZone: !Select [ 0, !GetAZs ]
      Tags:
        - Key: Name
          Value: !Sub test-subnet
  # ------------------------------------------------------------#
  # RDS
  # ------------------------------------------------------------#
# DBクラスター
  RDSCluster: 
    DeletionPolicy: Delete
    Type: AWS::RDS::DBCluster
    Properties: 
      DBClusterIdentifier: aurora-io-optimized-test-cluster
      Engine: aurora-mysql
      EngineVersion: 8.0.mysql_aurora.3.03.1
      StorageType: aurora-iopt1
      ManageMasterUserPassword: true
      MasterUsername: admin
      AvailabilityZones:
        - !Select [ 0, !GetAZs ]
      Tags: 
        - Key: Name
          Value: aurora-io-optimized-test-cluster

無事クラスターが作成されました。


「設定」タブを確認すると「Cluster Storage Configuration」が「Aurora IO-Optimized」になっています!

終わりに

以上でした!

お読みいただき有難うございました。

デベキャン

Discussion