0.はじめに
ずっと AWS CloudFormation 使いたいなと思っていたので、
使ってみました。
1.事前準備
- RDS のサブネットグループを作成しておく。
- セキュリティグループを作成しておく。
2.AWS CloudFormation で RDS(MSSQL) を作成
-
AWS CloudFormation のマネジメントコンソールを開く。
-
「スタックの作成」ボタンを押下する。
-
「スタックの作成 - テンプレートの選択」画面が表示されるので、「テンプレートの選択」→「テンプレートを Amazon S3 にアップロードする」をチェック、以下の json ファイルをアップロードし、「次へ」ボタンを押下する。
GS-RDS-MSSQL-from-bak.template
{
"AWSTemplateFormatVersion": "2010-09-09",
"Parameters": {
"ProjectName": {
"Type": "String",
"Default": "[プロジェクト名]"
},
"DbSubnetGroupName": {
"Type": "String",
"Default": "[作成しておいたサブネットグループ名]"
},
"VpcSecurityGroup": {
"Type": "AWS::EC2::SecurityGroup::Id",
"Default": "[作成しておいたセキュリティグループのID]"
}
},
"Resources": {
"DbInstance": {
"Type": "AWS::RDS::DBInstance",
"Properties": {
"Engine": "sqlserver-ex",
"DBInstanceClass": "db.t2.micro",
"AllocatedStorage": "20",
"StorageType": "gp2",
"DBInstanceIdentifier": "[DBインスタンス名]",
"MasterUsername": "[ユーザーID]",
"MasterUserPassword": "[パスワード]",
"DBSubnetGroupName": {
"Ref": "DbSubnetGroupName"
},
"PubliclyAccessible": true,
"AvailabilityZone": "ap-northeast-1a",
"VPCSecurityGroups": [
{
"Ref": "VpcSecurityGroup"
}
],
"CopyTagsToSnapshot": true,
"BackupRetentionPeriod": 7,
"Tags": [
{
"Key": "[タグの名前]",
"Value": "[タグの値]"
}
]
},
"DeletionPolicy": "Snapshot"
}
}
}
```
- 「スタックの作成 - 詳細の指定」画面が表示されるので、以下の項目を入力し、「次へ」ボタンを押下する。
- 「スタックの作成 - オプション」画面が表示されるので、「次へ」ボタンを押下する。
- 「スタックの作成 - 確認」画面が表示されるので、「作成」ボタンを押下する。
- スタックの一覧が表示されるので、作成したスタックの状況を確認します。また RDS のマネジメントコンソールも開き、作成する RDS インスタンスの状況を確認します。
- しばらくすると、作成が完了します。
99.ハマりポイント
- 結構、SQLServer の情報が少なかったので、ちょっと調べたりしました。
- 以下のサイトのサンプルを参考にさせて頂きました。
- CloudFormationでRDS(MySQL)を作成する(0からの作成とスナップショットからの作成) | cloudpack.media
- CloudFormationをいじる RDS編 - おぼえがきつめあわせ
- AWS(Amazon Web Services) - cloudformationにてELBを作成するもロードバランシングしたいEC2インスタンスと異なるVPCに作成されてしまう(73477)|teratail
- amazon web services - AWS RDS Cloud formation template for SQL Server - Stack Overflow
- amazon web services - Creating SQL RDS instance in CloudFormation - Stack Overflow
-
SQL Server Native Backup and Restore in Amazon RDS
- サンプルで一通り確認した後は、以下のサイトからパラメータの微調整をしたりしました。
XX.まとめ
とりあえず使ってみたかったので、
ちゃんと作成されてよかったです。
AWS のリソースのみだけではなく、
それ以外のリソースや OS 内部の設定など、
そういった設定も必要な場合での CloudFormation の使い方ってどうなるんでしょうかね?
その辺も今後試せればと思います。