2016-07-13 2 views
1

Je ne suis pas habitué à utiliser AWS. Je voulais prendre un instantané de l'instance SQL Server actuelle et créer une autre instance avec le même snapshot (afin que toutes les bases de données et les données existantes soient migrées) et plus de capacité de stockage à l'aide d'AWS Cloud Formation.Modèle de formation au cloud AWS RDS pour SQL Server

J'ai vu quelque chose sur Amazon comme https://s3-us-west-2.amazonaws.com/cloudformation-templates-us-west-2/RDS_MySQL_With_Read_Replica.template

mais n'a pas pu l'adapter à mes besoins. Je ne veux pas toute cette instance EC2 et des choses supplémentaires. Juste mon ID instantané existant et les nouveaux détails de l'instance RDS SQL Server qui seront clonés avec l'ID Snapshot

+1

Ce modèle CloudFormation crée une base de données MySQL. Vous pouvez le modifier en MSSQL et supprimer toutes les sections du modèle dont vous n'avez pas besoin, mais vous n'avez pas besoin d'un modèle CloudFormation pour le faire. Créez simplement un instantané en utilisant la console et une nouvelle base de données. Les étapes sont dans la documentation AWS à http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_CommonTasks.BackupRestore.html – jbird

+0

Merci! J'ai besoin d'un modèle CloudFormation, sinon ce n'est pas possible car je voulais que ma nouvelle taille de stockage DB soit supérieure à la taille de stockage de l'instantané Db. – Srini

Répondre

1

Prenez un instantané de votre base de données existante, soit manuellement, à l'aide de la CLI ou PowerShell, prenant note de la DBSnapshotIdentifier.

En utilisant PowerShell, il ressemble à ceci:

New-RDSDBSnapshot -DBSnapshotIdentifier "NameOfYourNewSnapshot" -DBInstanceIdentifier "YourExistingDbIdentifier" 

Bon, maintenant que vous avez un instantané, vous devez changer votre modèle de CloudFormation utiliser le DBSnapshotIdentifier.

Changer votre modèle existant pour créer une base de données SqlServer et spécifiez une nouvelle propriété, DBSnapshotIdentifier:

"MyDB" : { 
"Type" : "AWS::RDS::DBInstance", 
"Properties" : { 
    "DBSecurityGroups" : [ 
     {"Ref" : "MyDbSecurityByEC2SecurityGroup"}, {"Ref" : "MyDbSecurityByCIDRIPGroup"} ], 
    "AllocatedStorage" : "20", 
    "DBInstanceClass" : "db.t2.micro", 
    "Engine" : "sqlserver-ex", 
    "MasterUsername" : "MyName", 
    "MasterUserPassword" : "MyPassword", 
    "DBSnapshotIdentifier" : "NameOfYourNewSnapshot" 
} 
} 

Cela devrait suffire, lorsque vous exécutez votre pile, il va tomber et recréer votre base de données à partir de votre instantané , alors assurez-vous de répondre aux temps d'arrêt.

Docs:

http://docs.aws.amazon.com/powershell/latest/reference/Index.html
http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-database-instance.html
http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-database-instance.html#cfn-rds-dbinstance-dbsnapshotidentifier