AWS · 3 min read · Feb 04, 2026
AWSでCloudformationを使用してRDS MySqlインスタンスを作成する

AWSリレーショナルデータベースサービス(RDS AWS)は、クラウドでリレーショナルデータベースをセットアップおよび運用するのを容易にするウェブサービスです。RDSについて詳しく理解するには、「AWSでRDS MySql(リレーショナルデータベースMySql)インスタンスをセットアップする方法」という記事を検索してください。
AWS CloudFormationを使用すると、プログラミング言語(yaml/json)または単純なテキストファイルを使用して、アプリケーションに必要なすべてのリソースをモデル化およびプロビジョニングできます。これにより、AWSリソースの単一の真実のソースが得られます。
この記事では、Cloudformationスタックを使用してRDS MySqlインスタンスを作成する手順を見ていきます。
前提条件
- AWSアカウント(持っていない場合は作成してください)。
- Cloudformationスタックの基本的な理解。
- AWSでのRDS MySql(リレーショナルデータベースMySql)インスタンスの基本的な理解。
何をしますか?
- AWSにログインします。
- Cloudformationスタックを使用してRDS MySqlインスタンスを作成します。
AWSにログインする
上記のリンクをクリックすると、ログイン情報を使用してログインする必要があるウェブページが表示されます。

AWSに正常にログインすると、すべてのサービスがリストされたメインコンソールが表示されます。

Cloudformationを使用してRDS MySqlインスタンスを作成する。
Cloudformationスタックを使用してインスタンスを作成する前に、以下のブロックからコードをコピーするか、ここからテンプレートをダウンロードしてローカルマシンに保存してください。
---
AWSTemplateFormatVersion: '2010-09-09'
Description: このスタックはRDS MySql 5.7インスタンスを作成します
Parameters:
Owner:
Description: このスタックの所有者の名前を入力してください。
Type: String
Default: Name
VPC:
Description: アカウント内の利用可能なVPCからVPCを選択してください。
Type: AWS::EC2::VPC::Id
PrivateSubnet1:
Description: プライベートサブネット1を選択してください。
Type: AWS::EC2::Subnet::Id
PrivateSubnet2:
Description: プライベートサブネット2を選択してください。
Type: AWS::EC2::Subnet::Id
PrivateSubnet3:
Description: プライベートサブネット3を選択してください。
Type: AWS::EC2::Subnet::Id
MasterUsername:
Description: データベース管理者名。
Type: String
Default: rdsroot
MasterUserPassword:
NoEcho: 'true'
Description: データベース管理者パスワード。
Type: String
MinLength: '8'
AllowedPattern: "[a-zA-Z0-9!?]*"
ConstraintDescription: 大文字と小文字のアルファベットと数字のみを含む必要があります
BackupRetentionPeriod:
Description: バックアップ保持期間(日数)を入力してください。
Type: Number
Default: '5'
MultiAvailabilityZone:
Description: マルチアベイラビリティゾーンを有効にしますか?
Type: String
Default: 'true'
AllowedValues:
- 'true'
- 'false'
TcpPort:
Description: RDSリスニングTCPポート番号を入力してください。
Type: Number
Default: '3306'
PreferredBackupWindow:
Description: 希望のバックアップウィンドウ時間を入力してください。
Type: String
Default: 15:00-17:00
PreferredMaintenanceWindow:
Description: 希望のメンテナンスウィンドウ時間を入力してください。
Type: String
Default: Sun:18:00-Sun:22:00
AllocatedStorage:
Default: '15'
Description: データベースのサイズ(GB)を入力してください。
Type: Number
MinValue: '5'
MaxValue: '6144'
ConstraintDescription: 5-6144の間である必要があります
SnapshotOnDelete:
Description: インスタンス削除時にスナップショットを作成しますか?
Type: String
Default: 'true'
AllowedValues:
- 'true'
- 'false'
AutoMinorVersionUpgrade:
Description: 自動マイナーアップグレードを許可しますか?
Type: String
Default: 'true'
AllowedValues:
- 'true'
- 'false'
InstanceType:
Description: インスタンスタイプを選択してください。
Type: String
Default: db.t2.micro
ConstraintDescription: 有効なEC2インスタンスタイプである必要があります。
Mappings:
Settings:
MySQL:
Engine: MySQL
Version: '5.7'
Conditions:
ConfigureSnapshotOnDelete:
Fn::Equals:
- Ref: SnapshotOnDelete
- 'true'
Metadata:
AWS::CloudFormation::Interface:
ParameterGroups:
- Label:
default: 所有権
Parameters:
- Owner
- Label:
default: ネットワーク構成
Parameters:
- VPC
- PrivateSubnet1
- PrivateSubnet2
- PrivateSubnet3
- Label:
default: RDS構成
Parameters:
- InstanceType
- MasterUsername
- MasterUserPassword
- BackupRetentionPeriod
- PreferredBackupWindow
- PreferredMaintenanceWindow
- SnapshotOnDelete
- AllocatedStorage
- AutoMinorVersionUpgrade
- TcpPort
- MultiAvailabilityZone
ParameterLabels:
Owner:
default: チームまたは個人の所有者
InstanceType:
default: インスタンスタイプ
PrivateSubnet1:
default: プライベートサブネット1
PrivateSubnet2:
default: プライベートサブネット2
PrivateSubnet3:
default: プライベートサブネット3
MasterUsername:
default: マスターユーザー名
MasterUserPassword:
default: マスターユーザーパスワード
BackupRetentionPeriod:
default: バックアップ保持期間
PreferredBackupWindow:
default: 希望のバックアップウィンドウ
PreferredMaintenanceWindow:
default: 希望のメンテナンスウィンドウ
AllocatedStorage:
default: 割り当てられたストレージ
AutoMinorVersionUpgrade:
default: 自動マイナーアップグレード
TcpPort:
default: TCPポート
MultiAvailabilityZone:
default: マルチアベイラビリティゾーン?
SnapshotOnDelete:
default: 削除時のスナップショット?
Resources:
RDSAccessSecurityGroup:
Type: AWS::EC2::SecurityGroup
Properties:
GroupDescription: インスタンスからRDSへのアクセス
VpcId:
Ref: VPC
Tags:
- Key: Name
Value:
Fn::Join:
- ''
- - Ref: AWS::StackName
- "-rds"
- Key: Owner
Value:
Ref: Owner
AccessSecurityGroupIngress:
Type: AWS::EC2::SecurityGroupIngress
DependsOn: RDSAccessSecurityGroup
Properties:
GroupId:
Ref: RDSAccessSecurityGroup
IpProtocol: tcp
FromPort:
Ref: TcpPort
ToPort:
Ref: TcpPort
SourceSecurityGroupId:
Ref: RDSAccessSecurityGroup
DbSubnetGroup:
Type: AWS::RDS::DBSubnetGroup
Properties:
DBSubnetGroupDescription:
Fn::Join:
- ''
- - 'RDSサブネットグループ '
- Ref: AWS::StackName
SubnetIds:
- Ref: PrivateSubnet1
- Ref: PrivateSubnet2
- Ref: PrivateSubnet3
Tags:
- Key: Name
Value:
Ref: AWS::StackName
- Key: Owner
Value:
Ref: Owner
DbInstance:
Type: AWS::RDS::DBInstance
DeletionPolicy: Snapshot
DependsOn:
- DbSubnetGroup
- RDSAccessSecurityGroup
Properties:
AllocatedStorage:
Ref: AllocatedStorage
AllowMajorVersionUpgrade: 'false'
AutoMinorVersionUpgrade:
Ref: AutoMinorVersionUpgrade
BackupRetentionPeriod:
Ref: BackupRetentionPeriod
DBInstanceClass:
Ref: InstanceType
DBInstanceIdentifier:
Ref: AWS::StackName
DBSubnetGroupName:
Ref: DbSubnetGroup
Engine:
Fn::FindInMap:
- Settings
- MySQL
- Engine
EngineVersion:
Fn::FindInMap:
- Settings
- MySQL
- Version
MasterUsername:
Ref: MasterUsername
MasterUserPassword:
Ref: MasterUserPassword
MultiAZ:
Ref: MultiAvailabilityZone
Port:
Ref: TcpPort
PreferredBackupWindow:
Ref: PreferredBackupWindow
PreferredMaintenanceWindow:
Ref: PreferredMaintenanceWindow
PubliclyAccessible: 'false'
StorageEncrypted: 'false'
StorageType: gp2
VPCSecurityGroups:
- Ref: RDSAccessSecurityGroup
Tags:
- Key: Name
Value:
Ref: AWS::StackName
- Key: Owner
Value:
Ref: Owner
Outputs:
Owner:
Description: この構成を所有するチームまたは個人。
Value:
Ref: Owner
VPC:
Description: 使用されるVPC
Value:
Ref: VPC
RDSHostname:
Description: RDSホスト名
Value:
Fn::GetAtt:
- DbInstance
- Endpoint.Address
RDSPort:
Description: RDSポート
Value:
Fn::GetAtt:
- DbInstance
- Endpoint.Port
DbSubnetGroup:
Description: 作成されたDBサブネットグループ。
Value:
Ref: DbSubnetGroup
RDSAccessSecurityGroup:
Description: 作成されたRDSアクセスセキュリティグループ。
Value:
Ref: RDSAccessSecurityGroup
PrivateSubnet1:
Description: プライベートサブネット1のデプロイ
Value:
Ref: PrivateSubnet1
PrivateSubnet2:
Description: プライベートサブネット2のデプロイ
Value:
Ref: PrivateSubnet2
PrivateSubnet3:
Description: プライベートサブネット3のデプロイ
Value:
Ref: PrivateSubnet3
BackupRetentionPeriod:
Description: バックアップ保持期間(日数)
Value:
Ref: BackupRetentionPeriod
MultiAvailabilityZone:
Description: マルチアベイラビリティゾーンを有効にしますか?
Value:
Ref: MultiAvailabilityZone
SnapshotOnDelete:
Description: 削除時にスナップショットを作成しますか?
Value:
Ref: SnapshotOnDelete
PreferredBackupWindow:
Description: 希望のバックアップウィンドウ
Value:
Ref: PreferredBackupWindow
PreferredMaintenanceWindow:
Description: 希望のメンテナンスウィンドウ
Value:
Ref: PreferredMaintenanceWindow
AllocatedStorage:
Description: 割り当てられたストレージ(GB)
Value:
Ref: AllocatedStorage
テンプレートがローカルマシンに保存されたら、AWSコンソールに移動し、上部メニューバーから「サービス」をクリックして「Cloudformation」を検索します。

次のようなメインCloudformationダッシュボードが表示されます。「スタックを作成」ボタンをクリックしてRDS MySqlインスタンスを作成するスタックを作成します。

「テンプレートファイルをアップロード」ラジオボタンをクリックし、ローカルマシンから保存したテンプレートを選択して「次へ」ボタンをクリックします。

スタックに任意の名前を指定し、必要な詳細を入力して「次へ」をクリックしてさらに進みます。


Cloudformationスタックにタグを提供することができ、スタックによって作成されるRDS MySqlインスタンスに適用されます。「次へ」をクリックして進みます。

下にスクロールして「スタックを作成」をクリックしてスタックを作成します。

作成には時間がかかります。イベントの下で実行中のアクションを確認できます。

作成中のRDS MySqlインスタンスのステータスを確認するには、「サービス」をクリックして「RDS」を検索します。

メインダッシュボードで「DBインスタンス」をクリックします。

ここで、インスタンスのステータスが「変更中」であることが確認できます。これには作成され、使用可能になるまでに時間がかかります。

Cloudformationスタックのイベントでは、RDS MySqlインスタンスが作成されると、ステータスが「CREATE_COMPLETE」になることが確認できます。

RDSコンソールでは、ステータスが「利用可能」であることが確認できます。

RDS MySqlインスタンスの詳細を確認するには、RDS MySqlインスタンスをクリックし、接続とセキュリティを選択します。
RDS MySqlインスタンスに接続するには、インスタンスによって提供されたエンドポイントを使用できます。

インスタンスがもはや必要ない場合は、コストを節約するためにCloudformationメインダッシュボードからCloudformationスタックを削除してください。
結論
**
この記事では、Cloudformationスタックを使用してRDS MySqlインスタンスを作成する手順を見てきました。
新しい投稿を受信箱で受け取る
スパムはありません。いつでも購読を解除できます。