This repository has been archived by the owner on Jun 13, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 47
/
Copy path07_rds-mappings.yml
60 lines (55 loc) · 1.94 KB
/
07_rds-mappings.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
---
AWSTemplateFormatVersion: "2010-09-09"
Description: "RDS instance for various environments"
Parameters:
Environment:
Type: String
AllowedValues:
- dev
- stage
- prod
# https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/conditions-section-structure.html
# https://github.com/awsdocs/aws-cloudformation-user-guide/issues/3
Conditions:
Prod: !Equals [ !Ref Environment, prod ] # yaml shorthand could be confusing (!=)
# !Equals
# Fn::Equals:
Mappings:
AttributesByEnvironment:
dev:
AllocatedStorage: 10
BackupRetentionPeriod: 5
DBInstanceClass: db.m4.large
Iops: 1000
MultiAZ: False
stage:
AllocatedStorage: 100
BackupRetentionPeriod: 5
DBInstanceClass: db.m4.2xlarge
Iops: 3000
MultiAZ: False
prod:
AllocatedStorage: 100
BackupRetentionPeriod: 35
DBInstanceClass: db.m4.2xlarge
Iops: 3000
MultiAZ: True
Resources:
RdsDbInstance:
Type: "AWS::RDS::DBInstance"
Properties:
AllocatedStorage: !FindInMap [AttributesByEnvironment, !Ref Environment, "AllocatedStorage"] # https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-conditions.html
AllowMajorVersionUpgrade: false
AutoMinorVersionUpgrade: true
BackupRetentionPeriod: !FindInMap [AttributesByEnvironment, !Ref Environment, "BackupRetentionPeriod"]
DBClusterIdentifier: myDBCluster # reminder: see update requires replacement
DBInstanceClass: !FindInMap [AttributesByEnvironment, !Ref Environment, "DBInstanceClass"]
Engine: postgres # https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html
EngineVersion: 9.6.6
Iops: !FindInMap [AttributesByEnvironment, !Ref Environment, "Iops"]
MultiAZ: !Condition Prod
StorageEncrypted: !Condition Prod
StorageType: io1
Tags:
- Name: Environment
Value: !Ref Environment