Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
C
configuration
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
edx
configuration
Commits
529d374b
Commit
529d374b
authored
May 15, 2014
by
e0d
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #1096 from edx/e0d/xqwatcher
changes to add xqwatcher asg
parents
786dc8bc
a9b2dee2
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
652 additions
and
210 deletions
+652
-210
cloudformation_templates/edx-reference-architecture.json
+652
-210
No files found.
cloudformation_templates/edx-reference-architecture.json
View file @
529d374b
...
...
@@ -254,6 +254,40 @@
],
"ConstraintDescription"
:
"must be a valid EC2 instance type."
},
"XQWatcherInstanceType"
:{
"Description"
:
"Xserver server EC2 instance type"
,
"Type"
:
"String"
,
"Default"
:
"m1.small"
,
"AllowedValues"
:[
"t1.micro"
,
"m1.small"
,
"m1.medium"
,
"m1.large"
,
"m1.xlarge"
,
"m2.xlarge"
,
"m2.2xlarge"
,
"m2.4xlarge"
,
"cr1.8xlarge"
,
"cc2.8xlarge"
,
"c1.medium"
,
"c1.xlarge"
,
"m3.medium"
,
"m3.large"
,
"m3.xlarge"
,
"m3.2xlarge"
,
"c3.large"
,
"c3.xlarge"
,
"c3.2xlarge"
,
"c3.4xlarge"
,
"c3.8xlarge"
,
"r3.large"
,
"r3.xlarge"
,
"r3.2xlarge"
,
"r3.4xlarge"
,
"r3.8xlarge"
],
"ConstraintDescription"
:
"must be a valid EC2 instance type."
},
"SSHLocation"
:{
"Description"
:
"The IP address range that can be used to SSH to the EC2 instances"
,
"Type"
:
"String"
,
...
...
@@ -371,6 +405,11 @@
"Type"
:
"Number"
,
"Default"
:
"2"
},
"XQWatcherDesiredCapacity"
:{
"Description"
:
"The Auto-scaling group desired capacity for the xqueue watcher hosts"
,
"Type"
:
"Number"
,
"Default"
:
"2"
},
"CommonClusterDesiredCapacity"
:{
"Description"
:
"The Auto-scaling group desired capacity for the CommonCluster hosts"
,
"Type"
:
"Number"
,
...
...
@@ -580,29 +619,31 @@
"sa-east-1"
:
{
"AMI"
:
"ami-0439e619"
}
},
"SubnetConfig"
:{
"VPC"
:
{
"CIDR"
:
".0.0/16"
},
"Public01"
:
{
"CIDR"
:
".0.0/24"
},
"Public02"
:
{
"CIDR"
:
".1.0/24"
},
"VPC"
:
{
"CIDR"
:
".0.0/16"
},
"Public01"
:
{
"CIDR"
:
".0.0/24"
},
"Public02"
:
{
"CIDR"
:
".1.0/24"
},
"Edxapp01"
:
{
"CIDR"
:
".10.0/24"
},
"Edxapp02"
:
{
"CIDR"
:
".11.0/24"
},
"XServerJail01"
:
{
"CIDR"
:
".20.0/24"
},
"XServerJail02"
:
{
"CIDR"
:
".21.0/24"
},
"CommonCluster01"
:
{
"CIDR"
:
".46.0/24"
},
"CommonCluster02"
:
{
"CIDR"
:
".47.0/24"
},
"CommonCluster03"
:
{
"CIDR"
:
".48.0/24"
},
"XQWatcherJail01"
:
{
"CIDR"
:
".30.0/24"
},
"XQWatcherJail02"
:
{
"CIDR"
:
".31.0/24"
},
"CommonCluster01"
:
{
"CIDR"
:
".46.0/24"
},
"CommonCluster02"
:
{
"CIDR"
:
".47.0/24"
},
"CommonCluster03"
:
{
"CIDR"
:
".48.0/24"
},
"Data01"
:
{
"CIDR"
:
".50.0/24"
},
"Data02"
:
{
"CIDR"
:
".51.0/24"
},
"Cache01"
:
{
"CIDR"
:
".60.0/24"
},
"Cache02"
:
{
"CIDR"
:
".61.0/24"
},
"Worker01"
:
{
"CIDR"
:
".70.0/24"
},
"Worker02"
:
{
"CIDR"
:
".71.0/24"
},
"Forum01"
:
{
"CIDR"
:
".80.0/24"
},
"Forum02"
:
{
"CIDR"
:
".81.0/24"
},
"Mongo01"
:
{
"CIDR"
:
".90.0/24"
},
"Mongo02"
:
{
"CIDR"
:
".91.0/24"
},
"Mongo03"
:
{
"CIDR"
:
".92.0/24"
},
"Notifier01"
:
{
"CIDR"
:
".100.0/24"
},
"Admin"
:
{
"CIDR"
:
".200.0/24"
}
"Forum01"
:
{
"CIDR"
:
".80.0/24"
},
"Forum02"
:
{
"CIDR"
:
".81.0/24"
},
"Mongo01"
:
{
"CIDR"
:
".90.0/24"
},
"Mongo02"
:
{
"CIDR"
:
".91.0/24"
},
"Mongo03"
:
{
"CIDR"
:
".92.0/24"
},
"Notifier01"
:
{
"CIDR"
:
".100.0/24"
},
"Admin"
:
{
"CIDR"
:
".200.0/24"
}
},
"MapRegionsToAvailZones"
:{
"us-east-1"
:
{
"AZone2"
:
"us-east-1d"
,
"AZone0"
:
"us-east-1b"
,
"AZone1"
:
"us-east-1c"
},
...
...
@@ -652,15 +693,15 @@
{
"Key"
:
"immutable_metadata"
,
"Value"
:{
"Fn::Join"
:[
""
,
[
"{'purpose':'"
,
{
"Ref"
:
"EnvironmentTag"
},
"-"
,
{
"Ref"
:
"DeploymentTag"
},
"-"
,
"external','target':'ec2'}"
]
]
}
[
"{'purpose':'"
,
{
"Ref"
:
"EnvironmentTag"
},
"-"
,
{
"Ref"
:
"DeploymentTag"
},
"-"
,
"external','target':'ec2'}"
]
]
}
}
]
}
...
...
@@ -692,15 +733,15 @@
{
"Key"
:
"immutable_metadata"
,
"Value"
:{
"Fn::Join"
:[
""
,
[
"{'purpose':'"
,
{
"Ref"
:
"EnvironmentTag"
},
"-"
,
{
"Ref"
:
"DeploymentTag"
},
"-"
,
"external','target':'ec2'}"
]
]
}
[
"{'purpose':'"
,
{
"Ref"
:
"EnvironmentTag"
},
"-"
,
{
"Ref"
:
"DeploymentTag"
},
"-"
,
"external','target':'ec2'}"
]
]
}
}
]
}
...
...
@@ -775,15 +816,15 @@
{
"Key"
:
"immutable_metadata"
,
"Value"
:{
"Fn::Join"
:[
""
,
[
"{'purpose':'"
,
{
"Ref"
:
"EnvironmentTag"
},
"-"
,
{
"Ref"
:
"DeploymentTag"
},
"-"
,
"internal-edxapp','target':'ec2'}"
]
]
}
[
"{'purpose':'"
,
{
"Ref"
:
"EnvironmentTag"
},
"-"
,
{
"Ref"
:
"DeploymentTag"
},
"-"
,
"internal-edxapp','target':'ec2'}"
]
]
}
}
]
}
...
...
@@ -823,15 +864,15 @@
{
"Key"
:
"immutable_metadata"
,
"Value"
:{
"Fn::Join"
:[
""
,
[
"{'purpose':'"
,
{
"Ref"
:
"EnvironmentTag"
},
"-"
,
{
"Ref"
:
"DeploymentTag"
},
"-"
,
"internal-edxapp','target':'ec2'}"
]
]
}
[
"{'purpose':'"
,
{
"Ref"
:
"EnvironmentTag"
},
"-"
,
{
"Ref"
:
"DeploymentTag"
},
"-"
,
"internal-edxapp','target':'ec2'}"
]
]
}
}
]
}
...
...
@@ -871,15 +912,15 @@
{
"Key"
:
"immutable_metadata"
,
"Value"
:{
"Fn::Join"
:[
""
,
[
"{'purpose':'"
,
{
"Ref"
:
"EnvironmentTag"
},
"-"
,
{
"Ref"
:
"DeploymentTag"
},
"-"
,
"internal-commoncluster','target':'ec2'}"
]
]
}
[
"{'purpose':'"
,
{
"Ref"
:
"EnvironmentTag"
},
"-"
,
{
"Ref"
:
"DeploymentTag"
},
"-"
,
"internal-commoncluster','target':'ec2'}"
]
]
}
}
]
}
...
...
@@ -919,15 +960,15 @@
{
"Key"
:
"immutable_metadata"
,
"Value"
:{
"Fn::Join"
:[
""
,
[
"{'purpose':'"
,
{
"Ref"
:
"EnvironmentTag"
},
"-"
,
{
"Ref"
:
"DeploymentTag"
},
"-"
,
"internal-commoncluster','target':'ec2'}"
]
]
}
[
"{'purpose':'"
,
{
"Ref"
:
"EnvironmentTag"
},
"-"
,
{
"Ref"
:
"DeploymentTag"
},
"-"
,
"internal-commoncluster','target':'ec2'}"
]
]
}
}
]
}
...
...
@@ -967,15 +1008,15 @@
{
"Key"
:
"immutable_metadata"
,
"Value"
:{
"Fn::Join"
:[
""
,
[
"{'purpose':'"
,
{
"Ref"
:
"EnvironmentTag"
},
"-"
,
{
"Ref"
:
"DeploymentTag"
},
"-"
,
"internal-commoncluster','target':'ec2'}"
]
]
}
[
"{'purpose':'"
,
{
"Ref"
:
"EnvironmentTag"
},
"-"
,
{
"Ref"
:
"DeploymentTag"
},
"-"
,
"internal-commoncluster','target':'ec2'}"
]
]
}
}
]
}
...
...
@@ -1015,15 +1056,15 @@
{
"Key"
:
"immutable_metadata"
,
"Value"
:{
"Fn::Join"
:[
""
,
[
"{'purpose':'"
,
{
"Ref"
:
"EnvironmentTag"
},
"-"
,
{
"Ref"
:
"DeploymentTag"
},
"-"
,
"internal-xserver','target':'ec2'}"
]
]
}
[
"{'purpose':'"
,
{
"Ref"
:
"EnvironmentTag"
},
"-"
,
{
"Ref"
:
"DeploymentTag"
},
"-"
,
"internal-xserver','target':'ec2'}"
]
]
}
}
]
}
...
...
@@ -1063,15 +1104,111 @@
{
"Key"
:
"immutable_metadata"
,
"Value"
:{
"Fn::Join"
:[
""
,
[
"{'purpose':'"
,
{
"Ref"
:
"EnvironmentTag"
},
"-"
,
{
"Ref"
:
"DeploymentTag"
},
"-"
,
"internal-xserver','target':'ec2'}"
]
]
}
[
"{'purpose':'"
,
{
"Ref"
:
"EnvironmentTag"
},
"-"
,
{
"Ref"
:
"DeploymentTag"
},
"-"
,
"internal-xserver','target':'ec2'}"
]
]
}
}
]
}
},
"XQWatcherSubnet01"
:{
"Type"
:
"AWS::EC2::Subnet"
,
"Properties"
:{
"VpcId"
:{
"Ref"
:
"EdxVPC"
},
"CidrBlock"
:{
"Fn::Join"
:
[
""
,
[
"10."
,
{
"Ref"
:
"ClassB"
},
{
"Fn::FindInMap"
:[
"SubnetConfig"
,
"XQWatcherJail01"
,
"CIDR"
]}
]]
},
"AvailabilityZone"
:{
"Fn::FindInMap"
:[
"MapRegionsToAvailZones"
,
{
"Ref"
:
"AWS::Region"
},
"AZone0"
]
},
"Tags"
:[
{
"Key"
:
"play"
,
"Value"
:
"xqwatcher"
},
{
"Key"
:
"Network"
,
"Value"
:
"Private"
},
{
"Key"
:
"immutable_metadata"
,
"Value"
:{
"Fn::Join"
:[
""
,
[
"{'purpose':'"
,
{
"Ref"
:
"EnvironmentTag"
},
"-"
,
{
"Ref"
:
"DeploymentTag"
},
"-"
,
"internal-xqwatcher','target':'ec2'}"
]
]
}
}
]
}
},
"XQWatcherSubnet02"
:{
"Type"
:
"AWS::EC2::Subnet"
,
"Properties"
:{
"VpcId"
:{
"Ref"
:
"EdxVPC"
},
"CidrBlock"
:{
"Fn::Join"
:
[
""
,
[
"10."
,
{
"Ref"
:
"ClassB"
},
{
"Fn::FindInMap"
:[
"SubnetConfig"
,
"XQWatcherJail02"
,
"CIDR"
]}
]]
},
"AvailabilityZone"
:{
"Fn::FindInMap"
:[
"MapRegionsToAvailZones"
,
{
"Ref"
:
"AWS::Region"
},
"AZone1"
]
},
"Tags"
:[
{
"Key"
:
"play"
,
"Value"
:
"xqwatcher"
},
{
"Key"
:
"Network"
,
"Value"
:
"Private"
},
{
"Key"
:
"immutable_metadata"
,
"Value"
:{
"Fn::Join"
:[
""
,
[
"{'purpose':'"
,
{
"Ref"
:
"EnvironmentTag"
},
"-"
,
{
"Ref"
:
"DeploymentTag"
},
"-"
,
"internal-xqwatcher','target':'ec2'}"
]
]
}
}
]
}
...
...
@@ -1251,15 +1388,15 @@
{
"Key"
:
"immutable_metadata"
,
"Value"
:{
"Fn::Join"
:[
""
,
[
"{'purpose':'"
,
{
"Ref"
:
"EnvironmentTag"
},
"-"
,
{
"Ref"
:
"DeploymentTag"
},
"-"
,
"internal-worker','target':'ec2'}"
]
]
}
[
"{'purpose':'"
,
{
"Ref"
:
"EnvironmentTag"
},
"-"
,
{
"Ref"
:
"DeploymentTag"
},
"-"
,
"internal-worker','target':'ec2'}"
]
]
}
}
]
}
...
...
@@ -1299,15 +1436,15 @@
{
"Key"
:
"immutable_metadata"
,
"Value"
:{
"Fn::Join"
:[
""
,
[
"{'purpose':'"
,
{
"Ref"
:
"EnvironmentTag"
},
"-"
,
{
"Ref"
:
"DeploymentTag"
},
"-"
,
"internal-worker','target':'ec2'}"
]
]
}
[
"{'purpose':'"
,
{
"Ref"
:
"EnvironmentTag"
},
"-"
,
{
"Ref"
:
"DeploymentTag"
},
"-"
,
"internal-worker','target':'ec2'}"
]
]
}
}
]
}
...
...
@@ -1347,15 +1484,15 @@
{
"Key"
:
"immutable_metadata"
,
"Value"
:{
"Fn::Join"
:[
""
,
[
"{'purpose':'"
,
{
"Ref"
:
"EnvironmentTag"
},
"-"
,
{
"Ref"
:
"DeploymentTag"
},
"-"
,
"internal-forum','target':'ec2'}"
]
]
}
[
"{'purpose':'"
,
{
"Ref"
:
"EnvironmentTag"
},
"-"
,
{
"Ref"
:
"DeploymentTag"
},
"-"
,
"internal-forum','target':'ec2'}"
]
]
}
}
]
}
...
...
@@ -1395,15 +1532,15 @@
{
"Key"
:
"immutable_metadata"
,
"Value"
:{
"Fn::Join"
:[
""
,
[
"{'purpose':'"
,
{
"Ref"
:
"EnvironmentTag"
},
"-"
,
{
"Ref"
:
"DeploymentTag"
},
"-"
,
"internal-forum','target':'ec2'}"
]
]
}
[
"{'purpose':'"
,
{
"Ref"
:
"EnvironmentTag"
},
"-"
,
{
"Ref"
:
"DeploymentTag"
},
"-"
,
"internal-forum','target':'ec2'}"
]
]
}
}
]
}
...
...
@@ -1443,15 +1580,15 @@
{
"Key"
:
"immutable_metadata"
,
"Value"
:{
"Fn::Join"
:[
""
,
[
"{'purpose':'"
,
{
"Ref"
:
"EnvironmentTag"
},
"-"
,
{
"Ref"
:
"DeploymentTag"
},
"-"
,
"internal-mongo','target':'ec2'}"
]
]
}
[
"{'purpose':'"
,
{
"Ref"
:
"EnvironmentTag"
},
"-"
,
{
"Ref"
:
"DeploymentTag"
},
"-"
,
"internal-mongo','target':'ec2'}"
]
]
}
}
]
}
...
...
@@ -1491,15 +1628,15 @@
{
"Key"
:
"immutable_metadata"
,
"Value"
:{
"Fn::Join"
:[
""
,
[
"{'purpose':'"
,
{
"Ref"
:
"EnvironmentTag"
},
"-"
,
{
"Ref"
:
"DeploymentTag"
},
"-"
,
"internal-mongo','target':'ec2'}"
]
]
}
[
"{'purpose':'"
,
{
"Ref"
:
"EnvironmentTag"
},
"-"
,
{
"Ref"
:
"DeploymentTag"
},
"-"
,
"internal-mongo','target':'ec2'}"
]
]
}
}
]
}
...
...
@@ -1539,15 +1676,15 @@
{
"Key"
:
"immutable_metadata"
,
"Value"
:{
"Fn::Join"
:[
""
,
[
"{'purpose':'"
,
{
"Ref"
:
"EnvironmentTag"
},
"-"
,
{
"Ref"
:
"DeploymentTag"
},
"-"
,
"internal-mongo','target':'ec2'}"
]
]
}
[
"{'purpose':'"
,
{
"Ref"
:
"EnvironmentTag"
},
"-"
,
{
"Ref"
:
"DeploymentTag"
},
"-"
,
"internal-mongo','target':'ec2'}"
]
]
}
}
]
}
...
...
@@ -1587,15 +1724,15 @@
{
"Key"
:
"immutable_metadata"
,
"Value"
:{
"Fn::Join"
:[
""
,
[
"{'purpose':'"
,
{
"Ref"
:
"EnvironmentTag"
},
"-"
,
{
"Ref"
:
"DeploymentTag"
},
"-"
,
"internal-notifier','target':'ec2'}"
]
]
}
[
"{'purpose':'"
,
{
"Ref"
:
"EnvironmentTag"
},
"-"
,
{
"Ref"
:
"DeploymentTag"
},
"-"
,
"internal-notifier','target':'ec2'}"
]
]
}
}
]
}
...
...
@@ -1999,6 +2136,28 @@
}
}
},
"PrivateSubnetRouteTableAssociationXQWatcher01"
:{
"Type"
:
"AWS::EC2::SubnetRouteTableAssociation"
,
"Properties"
:{
"SubnetId"
:{
"Ref"
:
"XQWatcherSubnet01"
},
"RouteTableId"
:{
"Ref"
:
"PrivateRouteTable"
}
}
},
"PrivateSubnetRouteTableAssociationXQWatcher02"
:{
"Type"
:
"AWS::EC2::SubnetRouteTableAssociation"
,
"Properties"
:{
"SubnetId"
:{
"Ref"
:
"XQWatcherSubnet02"
},
"RouteTableId"
:{
"Ref"
:
"PrivateRouteTable"
}
}
},
"PrivateSubnetRouteTableAssociationData01"
:{
"Type"
:
"AWS::EC2::SubnetRouteTableAssociation"
,
"Properties"
:{
...
...
@@ -2273,6 +2432,28 @@
}
}
},
"PrivateSubnetNetworkAclAssociationXQWatcher01"
:{
"Type"
:
"AWS::EC2::SubnetNetworkAclAssociation"
,
"Properties"
:{
"SubnetId"
:{
"Ref"
:
"XQWatcherSubnet01"
},
"NetworkAclId"
:{
"Ref"
:
"PrivateNetworkAcl"
}
}
},
"PrivateSubnetNetworkAclAssociationXQWatcher02"
:{
"Type"
:
"AWS::EC2::SubnetNetworkAclAssociation"
,
"Properties"
:{
"SubnetId"
:{
"Ref"
:
"XQWatcherSubnet02"
},
"NetworkAclId"
:{
"Ref"
:
"PrivateNetworkAcl"
}
}
},
"PrivateSubnetNetworkAclAssociationData01"
:{
"Type"
:
"AWS::EC2::SubnetNetworkAclAssociation"
,
"Properties"
:{
...
...
@@ -2874,17 +3055,17 @@
]
}
},
"EdxappRole"
:
{
"Type"
:
"AWS::IAM::Role"
,
"EdxappRole"
:
{
"Type"
:
"AWS::IAM::Role"
,
"Properties"
:
{
"AssumeRolePolicyDocument"
:
{
"Statement"
:
[
{
"Effect"
:
"Allow"
,
"Principal"
:
{
"Service"
:
[
"ec2.amazonaws.com"
]
},
"Action"
:
[
"sts:AssumeRole"
]
}
]
"AssumeRolePolicyDocument"
:
{
"Statement"
:
[
{
"Effect"
:
"Allow"
,
"Principal"
:
{
"Service"
:
[
"ec2.amazonaws.com"
]
},
"Action"
:
[
"sts:AssumeRole"
]
}
]
},
"Path"
:
"/"
,
"Policies"
:
[
{
...
...
@@ -2909,26 +3090,26 @@
}
]
}
},
"EdxappInstanceProfile"
:
{
"EdxappInstanceProfile"
:
{
"Type"
:
"AWS::IAM::InstanceProfile"
,
"Properties"
:
{
"Path"
:
"/"
,
"Roles"
:
[
{
"Ref"
:
"EdxappRole"
"Ref"
:
"EdxappRole"
}
]
}
},
"XServerRole"
:
{
"Type"
:
"AWS::IAM::Role"
,
"XServerRole"
:
{
"Type"
:
"AWS::IAM::Role"
,
"Properties"
:
{
"AssumeRolePolicyDocument"
:
{
"Statement"
:
[
{
"Effect"
:
"Allow"
,
"Principal"
:
{
"Service"
:
[
"ec2.amazonaws.com"
]
},
"Action"
:
[
"sts:AssumeRole"
]
}
]
"AssumeRolePolicyDocument"
:
{
"Statement"
:
[
{
"Effect"
:
"Allow"
,
"Principal"
:
{
"Service"
:
[
"ec2.amazonaws.com"
]
},
"Action"
:
[
"sts:AssumeRole"
]
}
]
},
"Path"
:
"/"
,
"Policies"
:
[
{
...
...
@@ -2952,12 +3133,50 @@
}
]
}
},
"XServerInstanceProfile"
:
{
"XServerInstanceProfile"
:
{
"Type"
:
"AWS::IAM::InstanceProfile"
,
"Properties"
:
{
"Path"
:
"/"
,
"Roles"
:
[
{
"Ref"
:
"XServerRole"
}
]
}
},
"XQWatcherRole"
:
{
"Type"
:
"AWS::IAM::Role"
,
"Properties"
:
{
"AssumeRolePolicyDocument"
:
{
"Statement"
:
[
{
"Effect"
:
"Allow"
,
"Principal"
:
{
"Service"
:
[
"ec2.amazonaws.com"
]
},
"Action"
:
[
"sts:AssumeRole"
]
}
]
},
"Path"
:
"/"
,
"Policies"
:
[
{
"PolicyName"
:
"XQWatcherBasePolicy"
,
"PolicyDocument"
:
{
"Statement"
:[
{
"Effect"
:
"Allow"
,
"Action"
:[
"ec2:DescribeTags"
],
"Resource"
:
"*"
}
]
}
}
]
}
},
"XQWatcherInstanceProfile"
:
{
"Type"
:
"AWS::IAM::InstanceProfile"
,
"Properties"
:
{
"Path"
:
"/"
,
"Roles"
:
[
{
"Ref"
:
"XServ
erRole"
"Ref"
:
"XQWatch
erRole"
}
]
}
},
...
...
@@ -3026,7 +3245,7 @@
"EdxappServer"
:{
"Type"
:
"AWS::AutoScaling::LaunchConfiguration"
,
"Properties"
:{
"IamInstanceProfile"
:{
"Ref"
:
"EdxappInstanceProfile"
},
"IamInstanceProfile"
:{
"Ref"
:
"EdxappInstanceProfile"
},
"SecurityGroups"
:[
{
"Ref"
:
"EdxappServerSecurityGroup"
...
...
@@ -3907,7 +4126,7 @@
"FromPort"
:
"5672"
,
"ToPort"
:
"5672"
,
"SourceSecurityGroupId"
:
{
"Ref"
:
"NotifierSecurityGroup"
}
}
}
],
"SecurityGroupEgress"
:[
{
...
...
@@ -4360,6 +4579,229 @@
]
}
},
"XQWatcherServer"
:{
"Type"
:
"AWS::AutoScaling::LaunchConfiguration"
,
"Properties"
:{
"IamInstanceProfile"
:{
"Ref"
:
"XQWatcherInstanceProfile"
},
"SecurityGroups"
:[
{
"Ref"
:
"XQWatcherServerSecurityGroup"
}
],
"ImageId"
:{
"Fn::FindInMap"
:[
"AWSRegionArch2AMI"
,
{
"Ref"
:
"AWS::Region"
},
{
"Fn::FindInMap"
:[
"AWSInstanceType2Arch"
,
{
"Ref"
:
"XQWatcherInstanceType"
},
"Arch"
]
}
]
},
"KeyName"
:{
"Ref"
:
"KeyName"
},
"InstanceType"
:{
"Ref"
:
"XQWatcherInstanceType"
},
"BlockDeviceMappings"
:[
{
"DeviceName"
:
"/dev/sda1"
,
"Ebs"
:{
"VolumeSize"
:
"100"
}
}
]
}
},
"XQWatcherServerAsGroup"
:{
"Type"
:
"AWS::AutoScaling::AutoScalingGroup"
,
"Properties"
:{
"AvailabilityZones"
:[
{
"Fn::GetAtt"
:[
"XQWatcherSubnet01"
,
"AvailabilityZone"
]
},
{
"Fn::GetAtt"
:[
"XQWatcherSubnet02"
,
"AvailabilityZone"
]
}
],
"VPCZoneIdentifier"
:[
{
"Ref"
:
"XQWatcherSubnet01"
},
{
"Ref"
:
"XQWatcherSubnet02"
}
],
"Tags"
:[
{
"Key"
:
"Name"
,
"Value"
:
{
"Fn::Join"
:
[
"-"
,[{
"Ref"
:
"EnvironmentTag"
},{
"Ref"
:
"DeploymentTag"
},
"xqwatcher"
]]},
"PropagateAtLaunch"
:
true
},
{
"Key"
:
"play"
,
"Value"
:
"xqwatcher"
,
"PropagateAtLaunch"
:
true
},
{
"Key"
:
"services"
,
"Value"
:
"xqwatcher"
,
"PropagateAtLaunch"
:
true
},
{
"Key"
:
"environment"
,
"Value"
:{
"Ref"
:
"EnvironmentTag"
},
"PropagateAtLaunch"
:
true
},
{
"Key"
:
"deployment"
,
"Value"
:{
"Ref"
:
"DeploymentTag"
},
"PropagateAtLaunch"
:
true
}
],
"LaunchConfigurationName"
:{
"Ref"
:
"XQWatcherServer"
},
"MinSize"
:{
"Ref"
:
"XQWatcherDesiredCapacity"
},
"MaxSize"
:{
"Ref"
:
"XQWatcherDesiredCapacity"
},
"DesiredCapacity"
:{
"Ref"
:
"XQWatcherDesiredCapacity"
}
}
},
"XQWatcherServerScaleUpPolicy"
:{
"Type"
:
"AWS::AutoScaling::ScalingPolicy"
,
"Properties"
:{
"AdjustmentType"
:
"ChangeInCapacity"
,
"AutoScalingGroupName"
:{
"Ref"
:
"XQWatcherServerAsGroup"
},
"Cooldown"
:
"60"
,
"ScalingAdjustment"
:
"1"
}
},
"XQWatcherServerScaleDownPolicy"
:{
"Type"
:
"AWS::AutoScaling::ScalingPolicy"
,
"Properties"
:{
"AdjustmentType"
:
"ChangeInCapacity"
,
"AutoScalingGroupName"
:{
"Ref"
:
"XQWatcherServerAsGroup"
},
"Cooldown"
:
"60"
,
"ScalingAdjustment"
:
"-1"
}
},
"XQWatcherCPUAlarmHigh"
:{
"Type"
:
"AWS::CloudWatch::Alarm"
,
"Properties"
:{
"AlarmDescription"
:
"Scale-up if CPU > 90% for 10 minutes"
,
"MetricName"
:
"CPUUtilization"
,
"Namespace"
:
"AWS/EC2"
,
"Statistic"
:
"Average"
,
"Period"
:
"300"
,
"EvaluationPeriods"
:
"2"
,
"Threshold"
:
"90"
,
"AlarmActions"
:[
{
"Ref"
:
"XQWatcherServerScaleUpPolicy"
}
],
"Dimensions"
:[
{
"Name"
:
"AutoScalingGroupName"
,
"Value"
:{
"Ref"
:
"XQWatcherServerAsGroup"
}
}
],
"ComparisonOperator"
:
"GreaterThanThreshold"
}
},
"XQWatcherCPUAlarmLow"
:{
"Type"
:
"AWS::CloudWatch::Alarm"
,
"Properties"
:{
"AlarmDescription"
:
"Scale-down if CPU < 70% for 10 minutes"
,
"MetricName"
:
"CPUUtilization"
,
"Namespace"
:
"AWS/EC2"
,
"Statistic"
:
"Average"
,
"Period"
:
"300"
,
"EvaluationPeriods"
:
"2"
,
"Threshold"
:
"70"
,
"AlarmActions"
:[
{
"Ref"
:
"XQWatcherServerScaleDownPolicy"
}
],
"Dimensions"
:[
{
"Name"
:
"AutoScalingGroupName"
,
"Value"
:{
"Ref"
:
"XQWatcherServerAsGroup"
}
}
],
"ComparisonOperator"
:
"LessThanThreshold"
}
},
"XQWatcherServerSecurityGroup"
:{
"Type"
:
"AWS::EC2::SecurityGroup"
,
"Properties"
:{
"GroupDescription"
:
"Open up SSH access."
,
"VpcId"
:{
"Ref"
:
"EdxVPC"
},
"SecurityGroupIngress"
:[
{
"IpProtocol"
:
"tcp"
,
"FromPort"
:
"22"
,
"ToPort"
:
"22"
,
"CidrIp"
:
{
"Fn::Join"
:
[
""
,
[
"10."
,
{
"Ref"
:
"ClassB"
},
{
"Fn::FindInMap"
:
[
"SubnetConfig"
,
"VPC"
,
"CIDR"
]}]]}
}
],
"Tags"
:[
{
"Key"
:
"play"
,
"Value"
:
"xqwatcher"
},
{
"Key"
:
"environment"
,
"Value"
:{
"Ref"
:
"EnvironmentTag"
}
},
{
"Key"
:
"deployment"
,
"Value"
:{
"Ref"
:
"DeploymentTag"
}
}
]
}
},
"EdxDataSecurityGroup"
:{
"Type"
:
"AWS::EC2::SecurityGroup"
,
"Properties"
:{
...
...
@@ -4496,7 +4938,7 @@
"WorkerServer"
:{
"Type"
:
"AWS::AutoScaling::LaunchConfiguration"
,
"Properties"
:{
"IamInstanceProfile"
:{
"Ref"
:
"EdxappInstanceProfile"
},
"IamInstanceProfile"
:{
"Ref"
:
"EdxappInstanceProfile"
},
"SecurityGroups"
:[
{
"Ref"
:
"WorkerServerSecurityGroup"
...
...
@@ -4930,11 +5372,11 @@
],
"HealthCheck"
:{
"Target"
:{
"Fn::Join"
:[
""
,
[
"TCP:"
,
{
"Ref"
:
"ForumServerPort"
}
]
]
},
[
"TCP:"
,
{
"Ref"
:
"ForumServerPort"
}
]
]
},
"HealthyThreshold"
:
"3"
,
"UnhealthyThreshold"
:
"5"
,
"Interval"
:
"30"
,
...
...
@@ -5431,17 +5873,17 @@
"VpcSecurityGroupIds"
:
[
{
"Ref"
:
"CacheSecurityGroup"
}
]
}
},
"NotifierRole"
:
{
"Type"
:
"AWS::IAM::Role"
,
"NotifierRole"
:
{
"Type"
:
"AWS::IAM::Role"
,
"Properties"
:
{
"AssumeRolePolicyDocument"
:
{
"Statement"
:
[
{
"Effect"
:
"Allow"
,
"Principal"
:
{
"Service"
:
[
"ec2.amazonaws.com"
]
},
"Action"
:
[
"sts:AssumeRole"
]
}
]
"AssumeRolePolicyDocument"
:
{
"Statement"
:
[
{
"Effect"
:
"Allow"
,
"Principal"
:
{
"Service"
:
[
"ec2.amazonaws.com"
]
},
"Action"
:
[
"sts:AssumeRole"
]
}
]
},
"Path"
:
"/"
,
"Policies"
:
[
{
...
...
@@ -5464,12 +5906,12 @@
}
]
}
},
"NotifierInstanceProfile"
:
{
"NotifierInstanceProfile"
:
{
"Type"
:
"AWS::IAM::InstanceProfile"
,
"Properties"
:
{
"Path"
:
"/"
,
"Roles"
:
[
{
"Ref"
:
"NotifierRole"
"Ref"
:
"NotifierRole"
}
]
}
},
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment