usergrid-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From mru...@apache.org
Subject [1/6] usergrid git commit: Move and re-organize the AWS cluster deployment along with updates to the Usergrid artifact and dependencies specified.
Date Wed, 27 Jan 2016 01:50:32 GMT
Repository: usergrid
Updated Branches:
  refs/heads/master 586dad080 -> d478adb0c


http://git-wip-us.apache.org/repos/asf/usergrid/blob/d478adb0/stack/awscluster/ugcluster-cf.json
----------------------------------------------------------------------
diff --git a/stack/awscluster/ugcluster-cf.json b/stack/awscluster/ugcluster-cf.json
deleted file mode 100644
index e9db671..0000000
--- a/stack/awscluster/ugcluster-cf.json
+++ /dev/null
@@ -1,2062 +0,0 @@
-{
-    "AWSTemplateFormatVersion": "2010-09-09",
-    "Description": "Usergrid AWS Cluster",
-    "Parameters": {
-        "DnsSubDomain": {
-            "Description": "DNS name for stack, must not already exist in Route53.",
-            "Type": "String",
-            "Default": "ugtest"
-        },
-        "DnsDomain": {
-            "Description": "DNS domain for stack, must already exist in Route53",
-            "Type": "String",
-            "Default": "usergrid.com"
-        },
-        "ReleaseBucket": {
-            "Description": "S3 Bucket where Usergrid assembly is to be found.",
-            "Type": "String",
-            "Default": "ug-cloudformation"
-        },
-        "RestMinServers": {
-            "Description": "Minimum number of REST servers.",
-            "Type": "Number",
-            "Default": "1",
-            "MinValue": "1"
-        },
-        "RestMaxServers": {
-            "Description": "Maximum number REST servers.",
-            "Type": "Number",
-            "Default": "3",
-            "MinValue": "1"
-        },
-        "RestInstanceType": {
-            "Description": "Instance type for REST servers",
-            "Type": "String",
-            "Default": "c3.xlarge",
-            "AllowedValues": [
-                "m1.small",
-                "m1.medium",
-                "m1.large",
-                "m1.xlarge",
-                "m3.xlarge",
-                "m3.large",
-                "c3.xlarge",
-                "c3.2xlarge",
-                "c3.4xlarge"
-            ],
-            "ConstraintDescription": "must be valid instance type."
-        },
-      "RestIndexWorkers":{
-        "Description": "The number of index workers to ingest ElasticSearch batch operations per tomcat",
-        "Type": "Number",
-        "Default": "8",
-        "MinValue": "3"
-      },
-      "TomcatThreadsPerCore": {
-        "Description": "Number of threads to configure tomcat for per core",
-        "Type": "Number",
-        "Default": "50",
-        "MinValue": "1"
-      },
-        "KeyPair": {
-          "Description": "Name of an existing EC2 KeyPair to enable SSH access to the instance",
-          "Type": "AWS::EC2::KeyPair::KeyName",
-          "Default": "ug-cloudformation",
-          "ConstraintDescription": "must be the name of an existing EC2 KeyPair."
-        },
-        "CassClusterName": {
-            "Description": "Name to be used for Cassandra cluster.",
-            "Type": "String",
-            "Default": "usergrid"
-        },
-        "CassNumServers": {
-            "Description": "Number of Cass servers to start.",
-            "Type": "Number",
-            "Default": "6",
-            "MinValue": "2"
-        },
-        "CassInstanceType": {
-            "Description": "Instance type for Cass servers",
-            "Type": "String",
-            "Default": "c3.4xlarge",
-            "AllowedValues": [
-                "c3.large",
-                "c3.xlarge",
-                "c3.2xlarge",
-                "c3.4xlarge"
-            ],
-            "ConstraintDescription": "must be valid instance type."
-        },
-        "CassReplicationFactor": {
-            "Description": "Cassandra replication factor",
-            "Type": "Number",
-            "Default": "2",
-            "MinValue": "1"
-        },
-
-      "CassReadConsistency": {
-                "Description": "Cassandra replication factor for Astyanax",
-                "Type": "String",
-                "Default": "CL_ONE"
-            },
-      "CassWriteConsistency": {
-                "Description": "Cassandra replication factor for Astyanax",
-                "Type": "String",
-                "Default": "CL_ONE"
-            },
-        "ESClusterName": {
-            "Description": "Name to be used for Elasticsearch cluster.",
-            "Type": "String",
-            "Default": "usergrid"
-        },
-        "ESNumServers": {
-            "Description": "Number of ES servers to start.",
-            "Type": "Number",
-            "Default": "6",
-            "MinValue": "2"
-        },
-        "ESNumMasterServers": {
-                   "Description": "Number of ES master servers to start.",
-                   "Type": "Number",
-                   "Default": "1",
-                   "MinValue": "1"
-               },
-
-
-        "ESInstanceType": {
-            "Description": "Instance type for ES servers",
-            "Type": "String",
-            "Default": "c3.4xlarge",
-            "AllowedValues": [
-                "c3.large",
-                "c3.xlarge",
-                "c3.2xlarge",
-                "c3.4xlarge"
-            ],
-            "ConstraintDescription": "must be valid instance type."
-        },
-        "SuperUserEmail": {
-            "Description": "Email for superuser user",
-            "Type": "String",
-            "Default": "tnine+super@apigee.com"
-        },
-        "TestAdminUserEmail": {
-            "Description": "Email for test admin user",
-            "Type": "String",
-            "Default": "tnine+admin@apigee.com"
-        },
-        "NotificationEmail": {
-            "Description": "Email for notifications",
-            "Type": "String",
-            "Default": "tnine+super@apigee.com"
-        },
-        "GraphiteInstanceType": {
-            "Description": "Instance type for Graphite server",
-            "Type": "String",
-            "Default": "m3.large",
-            "AllowedValues": [
-                "t1.micro",
-                "m1.small",
-                "m1.medium",
-                "m1.large",
-                "m3.large",
-                "m1.xlarge",
-                "m3.xlarge",
-                "m3.2xlarge",
-                "c3.4xlarge"
-            ],
-            "ConstraintDescription": "must be valid instance type."
-        },
-        "GraphiteNumServers": {
-            "Description": "Minimum number of graphite servers. There should only be one",
-            "Type": "Number",
-            "Default": "1",
-            "MinValue": "1"
-        },
-        "OpsCenterInstanceType": {
-                   "Description": "Instance type for Opscenter server",
-                   "Type": "String",
-                   "Default": "c3.large",
-                   "AllowedValues": [
-                       "c3.large",
-                       "c3.xlarge",
-                       "c3.2xlarge",
-                       "c3.4xlarge"
-                   ],
-                   "ConstraintDescription": "must be valid instance type."
-               },
-               "OpsCenterNumServers": {
-                   "Description": "Minimum number of opscenter servers. There should only be one",
-                   "Type": "Number",
-                   "Default": "1",
-                   "MinValue": "1"
-               },
-        "InstallYourkit": {
-            "Description": "Install the yourkit remote profiling agent into tomcat.  Valid values are 'true' or 'false'",
-            "Type": "String",
-            "Default": "false"
-        }
-    },
-    "Mappings": {
-        "AWSInstanceType2Arch": {
-            "t1.micro": {
-                "Arch": "64"
-            },
-            "m1.small": {
-                "Arch": "64"
-            },
-            "m1.medium": {
-                "Arch": "64"
-            },
-            "m1.large": {
-                "Arch": "64"
-            },
-            "m1.xlarge": {
-                "Arch": "64"
-            },
-            "m3.large": {
-                "Arch": "64"
-            },
-            "m3.xlarge": {
-                "Arch": "64"
-            },
-            "c3.large": {
-                "Arch": "64"
-            },
-            "c3.xlarge": {
-                "Arch": "64"
-            },
-            "c3.2xlarge": {
-                "Arch": "64"
-            },
-            "c3.4xlarge": {
-                "Arch": "64"
-            }
-        },
-        "AWSRegionArch2AMI": {
-            "ap-southeast-2": {
-                "64": "ami-c1335ffb"
-            },
-            "us-east-1": {
-                "64": "ami-b89f18d0"
-            },
-            "us-west-2": {
-                "64": "ami-194a0429"
-            }
-        },
-        "FourAZs": {
-            "ap-southeast-2": {
-                "AZ1": "ap-southeast-2a",
-                "AZ2": "ap-southeast-2b",
-                "AZ3": "ap-southeast-2a",
-                "AZ4": "ap-southeast-2b"
-            },
-            "us-east-1": {
-                "AZ1": "us-east-1b",
-                "AZ2": "us-east-1c",
-                "AZ3": "us-east-1d",
-                "AZ4": "us-east-1e"
-            },
-            "us-west-2": {
-                "AZ1": "us-west-2a",
-                "AZ2": "us-west-2b",
-                "AZ3": "us-west-2c",
-                "AZ4": "us-west-2a"
-            }
-        }
-    },
-    "Resources": {
-        "GraphiteUser": {
-            "Type": "AWS::IAM::User",
-            "Properties": {
-                "Path": "/",
-                "Policies": [
-                    {
-                        "PolicyName": "root",
-                        "PolicyDocument": {
-                            "Statement": [
-                                {
-                                    "Effect": "Allow",
-                                    "Action": "*",
-                                    "Resource": "*"
-
-                                }
-                            ]
-                        }
-                    }
-                ]
-            }
-        },
-        "GraphiteKey": {
-            "Type": "AWS::IAM::AccessKey",
-            "Properties": {
-                "UserName": {
-                    "Ref": "GraphiteUser"
-                }
-            }
-        },
-        "GraphiteAutoScalingLaunchConfiguration":{
-         "Type":"AWS::AutoScaling::LaunchConfiguration",
-         "Properties":{
-            "UserData":{
-               "Fn::Base64":{
-                  "Fn::Join":[
-                     "",
-                     [
-                      "#!/bin/bash -x\n",
-                      "sudo git clone https://github.com/hopsoft/docker-graphite-statsd.git \n",
-                      "sudo ./docker-graphite-statsd/bin/start \n",
-                      "sudo git clone https://github.com/dotcloud/collectd-graphite.git \n",
-                      "sudo collectd-graphite/docker build -t collectd-graphite . \n",
-
-                      "#!/bin/bash -ex\n",
-                      "# REST SERVER STARTUP \n",
-                      "exec >/var/log/usergrid-bootstrap.log 2>&1\n",
-                      "\n",
-                      "mkdir -p /usr/share/usergrid\n",
-                      "\n",
-                      "# create script that sets our environment variables\n",
-                      "cat >/etc/profile.d/usergrid-env.sh <<EOF\n",
-                      "alias sudo='sudo -E'\n",
-                      "\n",
-                      "export TYPE=graphite\n",
-                      "export STACK_NAME=", { "Ref":"AWS::StackName" }, "\n",
-                      "\n",
-                      "export DNS_NAME=", { "Ref":"DnsSubDomain" }, "\n",
-                      "export DNS_DOMAIN=", { "Ref":"DnsDomain" },
-                      "\n",
-                      "export PUBLIC_HOSTNAME=`(curl -s http://169.254.169.254/latest/meta-data/public-hostname)`\n",
-                      "export INTERNAL_HOSTNAME=`(curl http://169.254.169.254/latest/meta-data/local-ipv4)`\n",
-                      "export ELB_NAME=", { "Ref":"RestElasticLoadBalancer" }, "\n",
-                      "\n",
-                      "export EC2_INSTANCE_ID=`ec2metadata --instance-id`\n",
-                      "export EC2_REGION=", { "Ref":"AWS::Region" },
-                      "\n",
-                      "export EC2_URL=https://ec2.amazonaws.com/\n",
-                      "\n",
-                      "export REST_SECURITY_GROUP_NAME=", { "Ref":"RestSecurityGroup" }, "\n",
-                      "export GRAPHITE_NUM_SERVERS=", { "Ref":"GraphiteNumServers" }, "\n",
-                      "export RELEASE_BUCKET=", { "Ref":"ReleaseBucket" }, "\n",
-                      "EOF\n",
-                      "\n",
-                      "# put AWS creds in environment\n",
-                      "cat >/etc/profile.d/aws-credentials.sh <<EOF\n",
-                      "export AWS_ACCESS_KEY=", { "Ref":"RestKey" }, "\n",
-                      "export AWS_SECRET_KEY=", { "Fn::GetAtt":[ "RestKey", "SecretAccessKey" ] }, "\n",
-                      "EOF\n",
-                      "\n",
-                      "# setup s3cmd (will be installed by init script) \n",
-                      "cat >/etc/s3cfg <<EOF\n",
-                      "access_key=", { "Ref":"RestKey" }, "\n",
-                      "secret_key=", { "Fn::GetAtt":[ "RestKey", "SecretAccessKey" ] }, "\n",
-                      "EOF\n",
-                      "chmod 644 /etc/s3cfg\n",
-                      "ln -s /etc/s3cfg ~ubuntu/.s3cfg\n",
-                      "ln -s /etc/s3cfg ~root/.s3cfg\n",
-                      "\n",
-                      "# download usergrid and init script bundle from S3\n",
-                      "wget -O- -q http://s3tools.org/repo/deb-all/stable/s3tools.key | apt-key add -\n",
-                      "wget -O/etc/apt/sources.list.d/s3tools.list http://s3tools.org/repo/deb-all/stable/s3tools.list\n",
-                      "apt-get update\n",
-                      "apt-get -y install s3cmd\n",
-                      "cd /usr/share/usergrid\n",
-                      "s3cmd --config=/etc/s3cfg get s3://", { "Ref":"ReleaseBucket" }, "/awscluster-1.0-SNAPSHOT-any.tar.gz\n",
-                      "tar xvf awscluster-1.0-SNAPSHOT-any.tar.gz\n",
-                      "rm -fr awscluster-1.0-SNAPSHOT-any.tar.gz\n",
-                      "chmod 755 ./init_instance/*.sh\n",
-                      "cd ./init_instance\n",
-                      "# Init as a REST intance \n",
-                      "sh ./init_graphite_server.sh\n"
-                   ]
-                  ]
-
-               }
-            },
-            "KeyName":{
-               "Ref":"KeyPair"
-            },
-            "ImageId":{
-               "Fn::FindInMap":[
-                  "AWSRegionArch2AMI",
-                  {
-                     "Ref":"AWS::Region"
-                  },
-                  {
-                     "Fn::FindInMap":[
-                        "AWSInstanceType2Arch",
-                        {
-                           "Ref":"GraphiteInstanceType"
-                        },
-                        "Arch"
-                     ]
-                  }
-               ]
-            },
-            "InstanceType":{
-               "Ref":"GraphiteInstanceType"
-            },
-            "IamInstanceProfile":{
-               "Ref":"RootInstanceProfile"
-            },
-            "SecurityGroups":[
-                            {
-                               "Ref":"GraphiteSecurityGroup"
-                            }
-                         ]
-
-         }
-      },
-        "GraphiteAutoScalingGroup": {
-            "Type": "AWS::AutoScaling::AutoScalingGroup",
-            "Version": "2014-07-24",
-            "Properties": {
-                "AvailabilityZones": [
-                    {
-                        "Fn::FindInMap": [
-                            "FourAZs",
-                            {
-                                "Ref": "AWS::Region"
-                            },
-                            "AZ1"
-                        ]
-                    },
-                    {
-                        "Fn::FindInMap": [
-                            "FourAZs",
-                            {
-                                "Ref": "AWS::Region"
-                            },
-                            "AZ2"
-                        ]
-                    },
-                    {
-                         "Fn::FindInMap": [
-                             "FourAZs",
-                             {
-                                 "Ref": "AWS::Region"
-                             },
-                             "AZ3"
-                         ]
-                     },
-                    {
-                         "Fn::FindInMap": [
-                             "FourAZs",
-                             {
-                                 "Ref": "AWS::Region"
-                             },
-                             "AZ4"
-                         ]
-                     }
-                ],
-                "LaunchConfigurationName": {
-                    "Ref": "GraphiteAutoScalingLaunchConfiguration"
-                },
-                "MinSize": {
-                    "Ref": "GraphiteNumServers"
-                },
-                "MaxSize": {
-                    "Ref": "GraphiteNumServers"
-                },
-                "NotificationConfiguration": {
-                    "TopicARN": {
-                        "Ref": "NotificationTopic"
-                    },
-                    "NotificationTypes": [
-                        "autoscaling:EC2_INSTANCE_LAUNCH",
-                        "autoscaling:EC2_INSTANCE_LAUNCH_ERROR",
-                        "autoscaling:EC2_INSTANCE_TERMINATE",
-                        "autoscaling:EC2_INSTANCE_TERMINATE_ERROR"
-                    ]
-                }
-            }
-        },
-        "OpsCenterUser": {
-                        "Type": "AWS::IAM::User",
-                        "Properties": {
-                            "Path": "/",
-                            "Policies": [
-                                {
-                                    "PolicyName": "root",
-                                    "PolicyDocument": {
-                                        "Statement": [
-                                            {
-                                                "Effect": "Allow",
-                                                "Action": "*",
-                                                "Resource": "*"
-
-                                            }
-                                        ]
-                                    }
-                                }
-                            ]
-                        }
-                    },
-        "OpsCenterKey": {
-                        "Type": "AWS::IAM::AccessKey",
-                        "Properties": {
-                            "UserName": {
-                                "Ref": "OpsCenterUser"
-                            }
-                        }
-                    },
-        "OpsCenterAutoScalingLaunchConfiguration":{
-                     "Type":"AWS::AutoScaling::LaunchConfiguration",
-                     "Properties":{
-                        "UserData":{
-                           "Fn::Base64":{
-                              "Fn::Join":[
-                                 "",
-                                 [
-                                    "#!/bin/bash -ex\n",
-                                    "# OPSCENTER NODE STARTUP \n",
-                                    "exec >/var/log/usergrid-bootstrap.log 2>&1\n",
-                                    "\n",
-                                    "mkdir -p /usr/share/usergrid\n",
-                                    "\n",
-                                    "# create script that sets our environment variables\n",
-                                    "cat >/etc/profile.d/usergrid-env.sh <<EOF\n",
-                                    "alias sudo='sudo -E'\n", "\n",
-                                    "export TYPE=opscenter\n",
-                                    "export STACK_NAME=", { "Ref":"AWS::StackName" }, "\n", "\n",
-                                    "export PUBLIC_HOSTNAME=`(curl -s http://169.254.169.254/latest/meta-data/public-hostname)`\n",
-                                    "export INTERNAL_HOSTNAME=`(curl http://169.254.169.254/latest/meta-data/local-ipv4)`\n",
-                                    "\n",
-                                    "export EC2_INSTANCE_ID=`ec2metadata --instance-id`\n",
-                                    "export EC2_REGION=", { "Ref":"AWS::Region" },
-                                    "\n",
-                                    "export EC2_URL=https://ec2.amazonaws.com/\n",
-                                    "\n",
-                                    "export OPSCENTER_SECURITY_GROUP_NAME=", { "Ref":"OpsCenterSecurityGroup" }, "\n",
-                                    "\n",
-                                    "\n",
-                                    "export CASSANDRA_CLUSTER_NAME=", { "Ref":"CassClusterName" }, "\n",
-                                    "export CASSANDRA_NUM_SERVERS=", { "Ref":"CassNumServers" }, "\n",
-                                    "export GRAPHITE_NUM_SERVERS=", { "Ref":"GraphiteNumServers" }, "\n",
-                                    "export CASSANDRA_KEYSPACE_NAME=usergrid", "\n",
-                                    "export CASSANDRA_REPLICATION_FACTOR=", { "Ref":"CassReplicationFactor" }, "\n",
-                                    "\n",
-                                    "export RELEASE_BUCKET=", { "Ref":"ReleaseBucket" }, "\n",
-                                    "\n",
-                                    "EOF\n",
-                                    "\n",
-                                    "# put AWS creds in environment\n",
-                                    "cat >/etc/profile.d/aws-credentials.sh <<EOF\n",
-                                    "export AWS_ACCESS_KEY=", { "Ref":"CassKey" }, "\n",
-                                    "export AWS_SECRET_KEY=", { "Fn::GetAtt":[ "CassKey", "SecretAccessKey" ] }, "\n",
-                                    "EOF\n",
-                                    "\n",
-                                    "# put AWS creds Priam's config file\n",
-                                    "cat >/etc/awscredential.properties <<EOF\n",
-                                    "AWSACCESSID=", { "Ref":"CassKey" }, "\n",
-                                    "AWSKEY=", { "Fn::GetAtt":[ "CassKey", "SecretAccessKey" ] },
-                                    "\n",
-                                    "EOF\n",
-                                    "\n",
-                                    "# setup s3cmd (will be installed by init script) \n",
-                                    "cat >/etc/s3cfg <<EOF\n",
-                                    "access_key=", { "Ref":"CassKey" }, "\n",
-                                    "secret_key=", { "Fn::GetAtt":[ "CassKey", "SecretAccessKey" ] },
-                                    "\n",
-                                    "EOF\n",
-                                    "chmod 644 /etc/s3cfg\n",
-                                    "ln -s /etc/s3cfg ~ubuntu/.s3cfg\n",
-                                    "ln -s /etc/s3cfg ~root/.s3cfg\n",
-                                    "\n",
-                                    "# download usergrid and init script bundle from S3\n",
-                                    "wget -O- -q http://s3tools.org/repo/deb-all/stable/s3tools.key | apt-key add -\n",
-                                    "wget -O/etc/apt/sources.list.d/s3tools.list http://s3tools.org/repo/deb-all/stable/s3tools.list\n",
-                                    "apt-get update\n",
-                                    "apt-get -y install s3cmd\n",
-                                    "cd /usr/share/usergrid\n",
-                                    "s3cmd --config=/etc/s3cfg get s3://", { "Ref":"ReleaseBucket" }, "/awscluster-1.0-SNAPSHOT-any.tar.gz\n",
-                                    "tar xvf awscluster-1.0-SNAPSHOT-any.tar.gz\n",
-                                    "rm -fr awscluster-1.0-SNAPSHOT-any.tar.gz\n",
-                                    "chmod 755 ./init_instance/*.sh\n",
-                                    "cd ./init_instance\n",
-                                    "# init as an opscenter node \n",
-                                    "sh ./init_opscenter_server.sh\n"
-                               ]
-                              ]
-
-                           }
-                        },
-                        "KeyName":{
-                           "Ref":"KeyPair"
-                        },
-                        "ImageId":{
-                           "Fn::FindInMap":[
-                              "AWSRegionArch2AMI",
-                              {
-                                 "Ref":"AWS::Region"
-                              },
-                              {
-                                 "Fn::FindInMap":[
-                                    "AWSInstanceType2Arch",
-                                    {
-                                       "Ref":"OpsCenterInstanceType"
-                                    },
-                                    "Arch"
-                                 ]
-                              }
-                           ]
-                        },
-                        "InstanceType":{
-                           "Ref":"OpsCenterInstanceType"
-                        },
-                        "IamInstanceProfile":{
-                           "Ref":"RootInstanceProfile"
-                        },
-                        "SecurityGroups":[
-                                        {
-                                           "Ref":"OpsCenterSecurityGroup"
-                                        }
-                                     ],
-
-                         "BlockDeviceMappings": [
-                             {
-                                 "DeviceName": "/dev/sdb",
-                                 "VirtualName": "ephemeral0"
-                             },
-                             {
-                                 "DeviceName": "/dev/sdc",
-                                 "VirtualName": "ephemeral1"
-                              }
-                            ]
-
-                     }
-                  },
-        "OpsCenterAutoScalingGroup": {
-                        "Type": "AWS::AutoScaling::AutoScalingGroup",
-                        "Version": "2014-07-24",
-                        "Properties": {
-                          "AvailabilityZones": [
-                                {
-                                    "Fn::FindInMap": [
-                                        "FourAZs",
-                                        {
-                                            "Ref": "AWS::Region"
-                                        },
-                                        "AZ1"
-                                    ]
-                                },
-                                {
-                                    "Fn::FindInMap": [
-                                        "FourAZs",
-                                        {
-                                            "Ref": "AWS::Region"
-                                        },
-                                        "AZ2"
-                                    ]
-                                },
-                                {
-                                     "Fn::FindInMap": [
-                                         "FourAZs",
-                                         {
-                                             "Ref": "AWS::Region"
-                                         },
-                                         "AZ3"
-                                     ]
-                                 },
-                                {
-                                     "Fn::FindInMap": [
-                                         "FourAZs",
-                                         {
-                                             "Ref": "AWS::Region"
-                                         },
-                                         "AZ4"
-                                     ]
-                                 }
-                            ],
-                            "LaunchConfigurationName": {
-                                "Ref": "OpsCenterAutoScalingLaunchConfiguration"
-                            },
-                            "MinSize": {
-                                "Ref": "OpsCenterNumServers"
-                            },
-                            "MaxSize": {
-                                "Ref": "OpsCenterNumServers"
-                            },
-                            "NotificationConfiguration": {
-                                "TopicARN": {
-                                    "Ref": "NotificationTopic"
-                                },
-                                "NotificationTypes": [
-                                    "autoscaling:EC2_INSTANCE_LAUNCH",
-                                    "autoscaling:EC2_INSTANCE_LAUNCH_ERROR",
-                                    "autoscaling:EC2_INSTANCE_TERMINATE",
-                                    "autoscaling:EC2_INSTANCE_TERMINATE_ERROR"
-                                ]
-                            }
-                        }
-                    },
-        "RestUser": {
-            "Type": "AWS::IAM::User",
-            "Properties": {
-                "Path": "/",
-                "Policies": [
-                    {
-                        "PolicyName": "root",
-                        "PolicyDocument": {
-                            "Statement": [
-                                {
-                                    "Effect": "Allow",
-                                    "Action": "*",
-                                    "Resource": "*"
-                                }
-                            ]
-                        }
-                    }
-                ]
-            }
-        },
-        "RestKey": {
-            "Type": "AWS::IAM::AccessKey",
-            "Properties": {
-                "UserName": {
-                    "Ref": "RestUser"
-                }
-            }
-        },
-        "CassUser": {
-            "Type": "AWS::IAM::User",
-            "Properties": {
-                "Path": "/",
-                "Policies": [
-                    {
-                        "PolicyName": "root",
-                        "PolicyDocument": {
-                            "Statement": [
-                                {
-                                    "Effect": "Allow",
-                                    "Action": "*",
-                                    "Resource": "*"
-                                }
-                            ]
-                        }
-                    }
-                ]
-            }
-        },
-        "CassKey": {
-            "Type": "AWS::IAM::AccessKey",
-            "Properties": {
-                "UserName": {
-                    "Ref": "CassUser"
-                }
-            }
-        },
-        "ESUser": {
-            "Type": "AWS::IAM::User",
-            "Properties": {
-                "Path": "/",
-                "Policies": [
-                    {
-                        "PolicyName": "root",
-                        "PolicyDocument": {
-                            "Statement": [
-                                {
-                                    "Effect": "Allow",
-                                    "Action": "*",
-                                    "Resource": "*"
-                                }
-                            ]
-                        }
-                    }
-                ]
-            }
-        },
-        "ESKey": {
-            "Type": "AWS::IAM::AccessKey",
-            "Properties": {
-                "UserName": {
-                    "Ref": "CassUser"
-                }
-            }
-        },
-        "CassAutoScalingLaunchConfiguration":{
-         "Type":"AWS::AutoScaling::LaunchConfiguration",
-         "Properties":{
-            "UserData":{
-               "Fn::Base64":{
-                  "Fn::Join":[
-                     "",
-                     [
-                        "#!/bin/bash -ex\n",
-                        "# CASSANDRA NODE STARTUP \n",
-                        "exec >/var/log/usergrid-bootstrap.log 2>&1\n",
-                        "\n",
-                        "mkdir -p /usr/share/usergrid\n",
-                        "\n",
-                        "# create script that sets our environment variables\n",
-                        "cat >/etc/profile.d/usergrid-env.sh <<EOF\n",
-                        "alias sudo='sudo -E'\n", "\n",
-                        "export TYPE=cass\n",
-                        "export STACK_NAME=", { "Ref":"AWS::StackName" }, "\n", "\n",
-                        "export PUBLIC_HOSTNAME=`(curl -s http://169.254.169.254/latest/meta-data/public-hostname)`\n",
-                        "export INTERNAL_HOSTNAME=`(curl http://169.254.169.254/latest/meta-data/local-ipv4)`\n",
-                        "\n",
-                        "export EC2_INSTANCE_ID=`ec2metadata --instance-id`\n",
-                        "export EC2_REGION=", { "Ref":"AWS::Region" },
-                        "\n",
-                        "export EC2_URL=https://ec2.amazonaws.com/\n",
-                        "\n",
-                        "export CASS_SECURITY_GROUP_NAME=", { "Ref":"CassSecurityGroup" }, "\n",
-                        "\n",
-                        "\n",
-                        "export CASSANDRA_CLUSTER_NAME=", { "Ref":"CassClusterName" }, "\n",
-                        "export CASSANDRA_NUM_SERVERS=", { "Ref":"CassNumServers" }, "\n",
-                        "export GRAPHITE_NUM_SERVERS=", { "Ref":"GraphiteNumServers" }, "\n",
-                        "export CASSANDRA_KEYSPACE_NAME=usergrid", "\n",
-                        "export CASSANDRA_REPLICATION_FACTOR=", { "Ref":"CassReplicationFactor" }, "\n",
-                        "\n",
-                        "export RELEASE_BUCKET=", { "Ref":"ReleaseBucket" }, "\n",
-                        "\n",
-                        "EOF\n",
-                        "\n",
-                        "# put AWS creds in environment\n",
-                        "cat >/etc/profile.d/aws-credentials.sh <<EOF\n",
-                        "export AWS_ACCESS_KEY=", { "Ref":"CassKey" }, "\n",
-                        "export AWS_SECRET_KEY=", { "Fn::GetAtt":[ "CassKey", "SecretAccessKey" ] }, "\n",
-                        "EOF\n",
-                        "\n",
-                        "# put AWS creds Priam's config file\n",
-                        "cat >/etc/awscredential.properties <<EOF\n",
-                        "AWSACCESSID=", { "Ref":"CassKey" }, "\n",
-                        "AWSKEY=", { "Fn::GetAtt":[ "CassKey", "SecretAccessKey" ] },
-                        "\n",
-                        "EOF\n",
-                        "\n",
-                        "# setup s3cmd (will be installed by init script) \n",
-                        "cat >/etc/s3cfg <<EOF\n",
-                        "access_key=", { "Ref":"CassKey" }, "\n",
-                        "secret_key=", { "Fn::GetAtt":[ "CassKey", "SecretAccessKey" ] },
-                        "\n",
-                        "EOF\n",
-                        "chmod 644 /etc/s3cfg\n",
-                        "ln -s /etc/s3cfg ~ubuntu/.s3cfg\n",
-                        "ln -s /etc/s3cfg ~root/.s3cfg\n",
-                        "\n",
-                        "# download usergrid and init script bundle from S3\n",
-                        "wget -O- -q http://s3tools.org/repo/deb-all/stable/s3tools.key | apt-key add -\n",
-                        "wget -O/etc/apt/sources.list.d/s3tools.list http://s3tools.org/repo/deb-all/stable/s3tools.list\n",
-                        "apt-get update\n",
-                        "apt-get -y install s3cmd\n",
-                        "cd /usr/share/usergrid\n",
-                        "s3cmd --config=/etc/s3cfg get s3://", { "Ref":"ReleaseBucket" }, "/awscluster-1.0-SNAPSHOT-any.tar.gz\n",
-                        "tar xvf awscluster-1.0-SNAPSHOT-any.tar.gz\n",
-                        "rm -fr awscluster-1.0-SNAPSHOT-any.tar.gz\n",
-                        "chmod 755 ./init_instance/*.sh\n",
-                        "cd ./init_instance\n",
-                        "# init as a Cassandra node \n",
-                        "sh ./init_db_server.sh\n"
-                     ]
-                  ]
-               }
-            },
-                "KeyName": {
-                    "Ref": "KeyPair"
-                },
-                "ImageId": {
-                    "Fn::FindInMap": [
-                        "AWSRegionArch2AMI",
-                        {
-                            "Ref": "AWS::Region"
-                        },
-                        {
-                            "Fn::FindInMap": [
-                                "AWSInstanceType2Arch",
-                                {
-                                    "Ref": "CassInstanceType"
-                                },
-                                "Arch"
-                            ]
-                        }
-                    ]
-                },
-                "InstanceType": {
-                    "Ref": "CassInstanceType"
-                },
-                "IamInstanceProfile": {
-                    "Ref": "RootInstanceProfile"
-                },
-                "SecurityGroups": [
-                    {
-                        "Ref": "CassSecurityGroup"
-                    }
-                ],
-
-                 "BlockDeviceMappings": [
-                     {
-                         "DeviceName": "/dev/sdb",
-                         "VirtualName": "ephemeral0"
-                     },
-                     {
-                         "DeviceName": "/dev/sdc",
-                         "VirtualName": "ephemeral1"
-                      }
-                    ]
-            }
-      },
-        "CassAutoScalingGroup": {
-            "Type": "AWS::AutoScaling::AutoScalingGroup",
-            "Version": "2009-05-15",
-            "Properties": {
-              "AvailabilityZones": [
-                    {
-                        "Fn::FindInMap": [
-                            "FourAZs",
-                            {
-                                "Ref": "AWS::Region"
-                            },
-                            "AZ1"
-                        ]
-                    },
-                    {
-                        "Fn::FindInMap": [
-                            "FourAZs",
-                            {
-                                "Ref": "AWS::Region"
-                            },
-                            "AZ2"
-                        ]
-                    },
-                    {
-                         "Fn::FindInMap": [
-                             "FourAZs",
-                             {
-                                 "Ref": "AWS::Region"
-                             },
-                             "AZ3"
-                         ]
-                     },
-                    {
-                         "Fn::FindInMap": [
-                             "FourAZs",
-                             {
-                                 "Ref": "AWS::Region"
-                             },
-                             "AZ4"
-                         ]
-                     }
-                ],
-                "LaunchConfigurationName": {
-                    "Ref": "CassAutoScalingLaunchConfiguration"
-                },
-                "MinSize": {
-                    "Ref": "CassNumServers"
-                },
-                "MaxSize": {
-                    "Ref": "CassNumServers"
-                },
-                "NotificationConfiguration": {
-                    "TopicARN": {
-                        "Ref": "NotificationTopic"
-                    },
-                    "NotificationTypes": [
-                        "autoscaling:EC2_INSTANCE_LAUNCH",
-                        "autoscaling:EC2_INSTANCE_LAUNCH_ERROR",
-                        "autoscaling:EC2_INSTANCE_TERMINATE",
-                        "autoscaling:EC2_INSTANCE_TERMINATE_ERROR"
-                    ]
-                }
-            }
-        },
-        "ESMasterAutoScalingLaunchConfiguration":{
-         "Type":"AWS::AutoScaling::LaunchConfiguration",
-         "Properties":{
-            "UserData":{
-               "Fn::Base64":{
-                  "Fn::Join":[
-                     "",
-                     [
-                        "#!/bin/bash -ex\n",
-                        "# ES NODE STARTUP \n",
-                        "exec >/var/log/usergrid-bootstrap.log 2>&1\n",
-                        "\n",
-                        "mkdir -p /usr/share/usergrid\n",
-                        "\n",
-                        "# create script that sets our environment variables\n",
-                        "cat >/etc/profile.d/usergrid-env.sh <<EOF\n",
-                        "alias sudo='sudo -E'\n", "\n",
-                        "export TYPE=es\n",
-                        "export STACK_NAME=", { "Ref":"AWS::StackName" }, "\n", "\n",
-                        "export PUBLIC_HOSTNAME=`(curl -s http://169.254.169.254/latest/meta-data/public-hostname)`\n",
-                        "export INTERNAL_HOSTNAME=`(curl http://169.254.169.254/latest/meta-data/local-ipv4)`\n",
-                        "\n",
-                        "export EC2_INSTANCE_ID=`ec2metadata --instance-id`\n",
-                        "export EC2_REGION=", { "Ref":"AWS::Region" },
-                        "\n",
-                        "export EC2_URL=https://ec2.amazonaws.com/\n",
-                        "\n",
-                        "export ES_SECURITY_GROUP_NAME=", { "Ref":"ESSecurityGroup" }, "\n",
-                        "\n",
-                        "\n",
-                        "export ES_CLUSTER_NAME=", { "Ref":"ESClusterName" }, "\n",
-                        "export ES_NUM_SERVERS=", { "Ref":"ESNumServers" }, "\n",
-                         "export ES_MASTER=true", "\n",
-
-                        "export GRAPHITE_NUM_SERVERS=", { "Ref":"GraphiteNumServers" }, "\n",
-
-                        "\n",
-                        "export RELEASE_BUCKET=", { "Ref":"ReleaseBucket" }, "\n",
-                        "\n",
-                        "EOF\n",
-                        "\n",
-                        "# put AWS creds in environment\n",
-                        "cat >/etc/profile.d/aws-credentials.sh <<EOF\n",
-                        "export AWS_ACCESS_KEY=", { "Ref":"ESKey" }, "\n",
-                        "export AWS_SECRET_KEY=", { "Fn::GetAtt":[ "ESKey", "SecretAccessKey" ] }, "\n",
-                        "EOF\n",
-                        "\n",
-                        "# setup s3cmd (will be installed by init script) \n",
-                        "cat >/etc/s3cfg <<EOF\n",
-                        "access_key=", { "Ref":"ESKey" }, "\n",
-                        "secret_key=", { "Fn::GetAtt":[ "ESKey", "SecretAccessKey" ] },
-                        "\n",
-                        "EOF\n",
-                        "chmod 644 /etc/s3cfg\n",
-                        "ln -s /etc/s3cfg ~ubuntu/.s3cfg\n",
-                        "ln -s /etc/s3cfg ~root/.s3cfg\n",
-                        "\n",
-                        "# download usergrid and init script bundle from S3\n",
-                        "wget -O- -q http://s3tools.org/repo/deb-all/stable/s3tools.key | apt-key add -\n",
-                        "wget -O/etc/apt/sources.list.d/s3tools.list http://s3tools.org/repo/deb-all/stable/s3tools.list\n",
-                        "apt-get update\n",
-                        "apt-get -y install s3cmd\n",
-                        "cd /usr/share/usergrid\n",
-                        "s3cmd --config=/etc/s3cfg get s3://", { "Ref":"ReleaseBucket" }, "/awscluster-1.0-SNAPSHOT-any.tar.gz\n",
-                        "tar xvf awscluster-1.0-SNAPSHOT-any.tar.gz\n",
-                        "rm -fr awscluster-1.0-SNAPSHOT-any.tar.gz\n",
-                        "chmod 755 ./init_instance/*.sh\n",
-                        "cd ./init_instance\n",
-                        "# init as an ES node \n",
-                        "sh ./init_es_server.sh\n"
-                     ]
-                  ]
-               }
-            },
-                "KeyName": {
-                    "Ref": "KeyPair"
-                },
-                "ImageId": {
-                    "Fn::FindInMap": [
-                        "AWSRegionArch2AMI",
-                        {
-                            "Ref": "AWS::Region"
-                        },
-                        {
-                            "Fn::FindInMap": [
-                                "AWSInstanceType2Arch",
-                                {
-                                    "Ref": "CassInstanceType"
-                                },
-                                "Arch"
-                            ]
-                        }
-                    ]
-                },
-                "InstanceType": {
-                    "Ref": "ESInstanceType"
-                },
-                "IamInstanceProfile": {
-                    "Ref": "RootInstanceProfile"
-                },
-                "SecurityGroups": [
-                    {
-                        "Ref": "ESSecurityGroup"
-                    }
-                ],
-
-                 "BlockDeviceMappings": [
-                     {
-                         "DeviceName": "/dev/sdb",
-                         "VirtualName": "ephemeral0"
-                     },
-                     {
-                         "DeviceName": "/dev/sdc",
-                         "VirtualName": "ephemeral1"
-                      }
-                    ]
-            }
-      },
-        "ESMasterAutoScalingGroup": {
-            "Type": "AWS::AutoScaling::AutoScalingGroup",
-            "Version": "2009-05-15",
-            "Properties": {
-              "AvailabilityZones": [
-                      {
-                          "Fn::FindInMap": [
-                              "FourAZs",
-                              {
-                                  "Ref": "AWS::Region"
-                              },
-                              "AZ1"
-                          ]
-                      },
-                      {
-                          "Fn::FindInMap": [
-                              "FourAZs",
-                              {
-                                  "Ref": "AWS::Region"
-                              },
-                              "AZ2"
-                          ]
-                      },
-                      {
-                           "Fn::FindInMap": [
-                               "FourAZs",
-                               {
-                                   "Ref": "AWS::Region"
-                               },
-                               "AZ3"
-                           ]
-                       },
-                      {
-                           "Fn::FindInMap": [
-                               "FourAZs",
-                               {
-                                   "Ref": "AWS::Region"
-                               },
-                               "AZ4"
-                           ]
-                       }
-                  ],
-                "LaunchConfigurationName": {
-                    "Ref": "ESMasterAutoScalingLaunchConfiguration"
-                },
-                "MinSize": {
-                    "Ref": "ESNumMasterServers"
-                },
-                "MaxSize": {
-                    "Ref": "ESNumMasterServers"
-                },
-                "NotificationConfiguration": {
-                    "TopicARN": {
-                        "Ref": "NotificationTopic"
-                    },
-                    "NotificationTypes": [
-                        "autoscaling:EC2_INSTANCE_LAUNCH",
-                        "autoscaling:EC2_INSTANCE_LAUNCH_ERROR",
-                        "autoscaling:EC2_INSTANCE_TERMINATE",
-                        "autoscaling:EC2_INSTANCE_TERMINATE_ERROR"
-                    ]
-                }
-            }
-        },
-        "ESAutoScalingLaunchConfiguration":{
-                 "Type":"AWS::AutoScaling::LaunchConfiguration",
-                 "Properties":{
-                    "UserData":{
-                       "Fn::Base64":{
-                          "Fn::Join":[
-                             "",
-                             [
-                                "#!/bin/bash -ex\n",
-                                "# ES NODE STARTUP \n",
-                                "exec >/var/log/usergrid-bootstrap.log 2>&1\n",
-                                "\n",
-                                "mkdir -p /usr/share/usergrid\n",
-                                "\n",
-                                "# create script that sets our environment variables\n",
-                                "cat >/etc/profile.d/usergrid-env.sh <<EOF\n",
-                                "alias sudo='sudo -E'\n", "\n",
-                                "export TYPE=es\n",
-                                "export STACK_NAME=", { "Ref":"AWS::StackName" }, "\n", "\n",
-                                "export PUBLIC_HOSTNAME=`(curl -s http://169.254.169.254/latest/meta-data/public-hostname)`\n",
-                                "export INTERNAL_HOSTNAME=`(curl http://169.254.169.254/latest/meta-data/local-ipv4)`\n",
-                                "\n",
-                                "export EC2_INSTANCE_ID=`ec2metadata --instance-id`\n",
-                                "export EC2_REGION=", { "Ref":"AWS::Region" },
-                                "\n",
-                                "export EC2_URL=https://ec2.amazonaws.com/\n",
-                                "\n",
-                                "export ES_SECURITY_GROUP_NAME=", { "Ref":"ESSecurityGroup" }, "\n",
-                                "\n",
-                                "\n",
-                                "export ES_CLUSTER_NAME=", { "Ref":"ESClusterName" }, "\n",
-                                "export ES_NUM_SERVERS=", { "Ref":"ESNumServers" }, "\n",
-                                 "export ES_MASTER=false","\n",
-                                "export GRAPHITE_NUM_SERVERS=", { "Ref":"GraphiteNumServers" }, "\n",
-                                "\n",
-                                "export RELEASE_BUCKET=", { "Ref":"ReleaseBucket" }, "\n",
-                                "\n",
-                                "EOF\n",
-                                "\n",
-                                "# put AWS creds in environment\n",
-                                "cat >/etc/profile.d/aws-credentials.sh <<EOF\n",
-                                "export AWS_ACCESS_KEY=", { "Ref":"ESKey" }, "\n",
-                                "export AWS_SECRET_KEY=", { "Fn::GetAtt":[ "ESKey", "SecretAccessKey" ] }, "\n",
-                                "EOF\n",
-                                "\n",
-                                "# setup s3cmd (will be installed by init script) \n",
-                                "cat >/etc/s3cfg <<EOF\n",
-                                "access_key=", { "Ref":"ESKey" }, "\n",
-                                "secret_key=", { "Fn::GetAtt":[ "ESKey", "SecretAccessKey" ] },
-                                "\n",
-                                "EOF\n",
-                                "chmod 644 /etc/s3cfg\n",
-                                "ln -s /etc/s3cfg ~ubuntu/.s3cfg\n",
-                                "ln -s /etc/s3cfg ~root/.s3cfg\n",
-                                "\n",
-                                "# download usergrid and init script bundle from S3\n",
-                                "wget -O- -q http://s3tools.org/repo/deb-all/stable/s3tools.key | apt-key add -\n",
-                                "wget -O/etc/apt/sources.list.d/s3tools.list http://s3tools.org/repo/deb-all/stable/s3tools.list\n",
-                                "apt-get update\n",
-                                "apt-get -y install s3cmd\n",
-                                "cd /usr/share/usergrid\n",
-                                "s3cmd --config=/etc/s3cfg get s3://", { "Ref":"ReleaseBucket" }, "/awscluster-1.0-SNAPSHOT-any.tar.gz\n",
-                                "tar xvf awscluster-1.0-SNAPSHOT-any.tar.gz\n",
-                                "rm -fr awscluster-1.0-SNAPSHOT-any.tar.gz\n",
-                                "chmod 755 ./init_instance/*.sh\n",
-                                "cd ./init_instance\n",
-                                "# init as an ES node \n",
-                                "sh ./init_es_server.sh\n"
-                             ]
-                          ]
-                       }
-                    },
-                        "KeyName": {
-                            "Ref": "KeyPair"
-                        },
-                        "ImageId": {
-                            "Fn::FindInMap": [
-                                "AWSRegionArch2AMI",
-                                {
-                                    "Ref": "AWS::Region"
-                                },
-                                {
-                                    "Fn::FindInMap": [
-                                        "AWSInstanceType2Arch",
-                                        {
-                                            "Ref": "CassInstanceType"
-                                        },
-                                        "Arch"
-                                    ]
-                                }
-                            ]
-                        },
-                        "InstanceType": {
-                            "Ref": "ESInstanceType"
-                        },
-                        "IamInstanceProfile": {
-                            "Ref": "RootInstanceProfile"
-                        },
-                        "SecurityGroups": [
-                            {
-                                "Ref": "ESSecurityGroup"
-                            }
-                        ],
-
-                         "BlockDeviceMappings": [
-                             {
-                                 "DeviceName": "/dev/sdb",
-                                 "VirtualName": "ephemeral0"
-                             },
-                             {
-                                 "DeviceName": "/dev/sdc",
-                                 "VirtualName": "ephemeral1"
-                              }
-                            ]
-                    }
-              },
-        "ESAutoScalingGroup": {
-                    "Type": "AWS::AutoScaling::AutoScalingGroup",
-                    "Version": "2009-05-15",
-                    "Properties": {
-                      "AvailabilityZones": [
-                              {
-                                  "Fn::FindInMap": [
-                                      "FourAZs",
-                                      {
-                                          "Ref": "AWS::Region"
-                                      },
-                                      "AZ1"
-                                  ]
-                              },
-                              {
-                                  "Fn::FindInMap": [
-                                      "FourAZs",
-                                      {
-                                          "Ref": "AWS::Region"
-                                      },
-                                      "AZ2"
-                                  ]
-                              },
-                              {
-                                   "Fn::FindInMap": [
-                                       "FourAZs",
-                                       {
-                                           "Ref": "AWS::Region"
-                                       },
-                                       "AZ3"
-                                   ]
-                               },
-                              {
-                                   "Fn::FindInMap": [
-                                       "FourAZs",
-                                       {
-                                           "Ref": "AWS::Region"
-                                       },
-                                       "AZ4"
-                                   ]
-                               }
-                          ],
-                        "LaunchConfigurationName": {
-                            "Ref": "ESAutoScalingLaunchConfiguration"
-                        },
-                        "MinSize": {
-                            "Ref": "ESNumServers"
-                        },
-                        "MaxSize": {
-                            "Ref": "ESNumServers"
-                        },
-                        "NotificationConfiguration": {
-                            "TopicARN": {
-                                "Ref": "NotificationTopic"
-                            },
-                            "NotificationTypes": [
-                                "autoscaling:EC2_INSTANCE_LAUNCH",
-                                "autoscaling:EC2_INSTANCE_LAUNCH_ERROR",
-                                "autoscaling:EC2_INSTANCE_TERMINATE",
-                                "autoscaling:EC2_INSTANCE_TERMINATE_ERROR"
-                            ]
-                        }
-                    }
-                },
-        "RestAutoScalingLaunchConfiguration":{
-                 "Type":"AWS::AutoScaling::LaunchConfiguration",
-                 "Properties":{
-                    "UserData":{
-                       "Fn::Base64":{
-                          "Fn::Join":[
-                             "",
-                             [
-                                "#!/bin/bash -ex\n",
-                                "# REST SERVER STARTUP \n",
-                                "exec >/var/log/usergrid-bootstrap.log 2>&1\n",
-                                "\n",
-                                "mkdir -p /usr/share/usergrid\n",
-                                "\n",
-                                "# create script that sets our environment variables\n",
-                                "cat >/etc/profile.d/usergrid-env.sh <<EOF\n",
-                                "alias sudo='sudo -E'\n",
-                                "\n",
-                                "export TYPE=rest\n",
-                                "export STACK_NAME=", { "Ref":"AWS::StackName" }, "\n",
-                                "export YOURKIT=", { "Ref":"InstallYourkit" }, "\n",
-                                "export DNS_NAME=", { "Ref":"DnsSubDomain" }, "\n",
-                                "export DNS_DOMAIN=", { "Ref":"DnsDomain" }, "\n",
-                                "export PUBLIC_HOSTNAME=`(curl -s http://169.254.169.254/latest/meta-data/public-hostname)`\n",
-                                "export INTERNAL_HOSTNAME=`(curl http://169.254.169.254/latest/meta-data/local-ipv4)`\n",
-                                "export ELB_NAME=", { "Ref":"RestElasticLoadBalancer" }, "\n",
-                                "\n",
-                                "export EC2_INSTANCE_ID=`ec2metadata --instance-id`\n",
-                                "export EC2_REGION=", { "Ref":"AWS::Region" }, "\n",
-                                "export EC2_URL=https://ec2.amazonaws.com/\n", "\n",
-                                "export REST_SECURITY_GROUP_NAME=", { "Ref":"RestSecurityGroup" }, "\n",
-                                "export DB_SECURITY_GROUP_NAME=", { "Ref":"CassSecurityGroup" }, "\n",
-                                "\n",
-                                "export CASSANDRA_CLUSTER_NAME=", { "Ref":"CassClusterName" }, "\n",
-                                "export CASSANDRA_KEYSPACE_NAME=usergrid", "\n",
-                                "export CASSANDRA_NUM_SERVERS=", { "Ref":"CassNumServers" }, "\n",
-                                "export GRAPHITE_NUM_SERVERS=", { "Ref":"GraphiteNumServers" }, "\n",
-                                "export TOMCAT_NUM_SERVERS=", { "Ref":"RestMinServers" }, "\n",
-                                "\n",
-                                "export CASSANDRA_REPLICATION_FACTOR=", { "Ref":"CassReplicationFactor" }, "\n",
-                                "\n",
-                                "export CASSANDRA_READ_CONSISTENCY=", { "Ref":"CassReadConsistency" }, "\n",
-                                "\n",
-                                "export CASSANDRA_WRITE_CONSISTENCY=", { "Ref":"CassWriteConsistency" }, "\n",
-                                "\n",
-                               "export INDEX_WORKER_COUNT=", { "Ref":"RestIndexWorkers" }, "\n",
-
-                                "export ES_CLUSTER_NAME=", { "Ref":"ESClusterName" }, "\n",
-                                "export ES_NUM_SERVERS=", { "Ref":"ESNumServers" }, "\n",
-                                 "\n",
-                                "export RELEASE_BUCKET=", { "Ref":"ReleaseBucket" }, "\n",
-                                "\n",
-                                "export NUM_THREAD_PROC=", { "Ref":"TomcatThreadsPerCore" }, "\n",
-                                "\n",
-                                "export SUPER_USER_EMAIL=", { "Ref":"SuperUserEmail" }, "\n",
-                                "export TEST_ADMIN_USER_EMAIL=", { "Ref":"TestAdminUserEmail" }, "\n",
-                                "\n",
-                                "EOF\n",
-                                "\n",
-                                "# put AWS creds in environment\n",
-                                "cat >/etc/profile.d/aws-credentials.sh <<EOF\n",
-                                "export AWS_ACCESS_KEY=", { "Ref":"RestKey" }, "\n",
-                                "export AWS_SECRET_KEY=", { "Fn::GetAtt":[ "RestKey", "SecretAccessKey" ] }, "\n",
-                                "EOF\n",
-                                "\n",
-                                "# setup s3cmd (will be installed by init script) \n",
-                                "cat >/etc/s3cfg <<EOF\n",
-                                "access_key=", { "Ref":"RestKey" }, "\n",
-                                "secret_key=", { "Fn::GetAtt":[ "RestKey", "SecretAccessKey" ] }, "\n",
-                                "EOF\n",
-                                "chmod 644 /etc/s3cfg\n",
-                                "ln -s /etc/s3cfg ~ubuntu/.s3cfg\n",
-                                "ln -s /etc/s3cfg ~root/.s3cfg\n",
-                                "\n",
-                                "# download usergrid and init script bundle from S3\n",
-                                "wget -O- -q http://s3tools.org/repo/deb-all/stable/s3tools.key | apt-key add -\n",
-                                "wget -O/etc/apt/sources.list.d/s3tools.list http://s3tools.org/repo/deb-all/stable/s3tools.list\n",
-                                "apt-get update\n",
-                                "apt-get -y install s3cmd\n",
-                                "cd /usr/share/usergrid\n",
-                                "s3cmd --config=/etc/s3cfg get s3://", {"Ref": "ReleaseBucket"}, "/awscluster-1.0-SNAPSHOT-any.tar.gz\n",
-                                "s3cmd --config=/etc/s3cfg get s3://", {"Ref": "ReleaseBucket"}, "/ROOT.war\n",
-                                "tar xvf awscluster-1.0-SNAPSHOT-any.tar.gz\n",
-                                "rm -fr awscluster-1.0-SNAPSHOT-any.tar.gz\n",
-                                "mv ROOT.war webapps/ROOT.war\n",
-                                "chmod 755 ./init_instance/*.sh\n",
-                                "cd ./init_instance\n",
-                                "# Init as a REST intance \n",
-                                "sh ./init_rest_server.sh\n"
-                             ]
-                          ]
-                       }
-                    },
-                    "KeyName":{
-                       "Ref":"KeyPair"
-                    },
-                    "ImageId":{
-                       "Fn::FindInMap":[
-                          "AWSRegionArch2AMI",
-                          {
-                             "Ref":"AWS::Region"
-                          },
-                          {
-                             "Fn::FindInMap":[
-                                "AWSInstanceType2Arch",
-                                {
-                                   "Ref":"RestInstanceType"
-                                },
-                                "Arch"
-                             ]
-                          }
-                       ]
-                    },
-                    "InstanceType":{
-                       "Ref":"RestInstanceType"
-                    },
-                    "IamInstanceProfile":{
-                       "Ref":"RootInstanceProfile"
-                    },
-                    "SecurityGroups":[
-                       {
-                          "Ref":"RestSecurityGroup"
-                       }
-                    ]
-                 }
-              },
-        "RestAutoScalingGroup": {
-            "Type": "AWS::AutoScaling::AutoScalingGroup",
-            "Version": "2009-05-15",
-            "Properties": {
-              "AvailabilityZones": [
-                      {
-                          "Fn::FindInMap": [
-                              "FourAZs",
-                              {
-                                  "Ref": "AWS::Region"
-                              },
-                              "AZ1"
-                          ]
-                      },
-                      {
-                          "Fn::FindInMap": [
-                              "FourAZs",
-                              {
-                                  "Ref": "AWS::Region"
-                              },
-                              "AZ2"
-                          ]
-                      },
-                      {
-                           "Fn::FindInMap": [
-                               "FourAZs",
-                               {
-                                   "Ref": "AWS::Region"
-                               },
-                               "AZ3"
-                           ]
-                       },
-                      {
-                           "Fn::FindInMap": [
-                               "FourAZs",
-                               {
-                                   "Ref": "AWS::Region"
-                               },
-                               "AZ4"
-                           ]
-                       }
-                  ],
-                "LaunchConfigurationName": {
-                    "Ref": "RestAutoScalingLaunchConfiguration"
-                },
-                "MinSize": {
-                    "Ref": "RestMinServers"
-                },
-                "MaxSize": {
-                    "Ref": "RestMaxServers"
-                },
-                "HealthCheckType": "ELB",
-                "HealthCheckGracePeriod": "1800",
-                "LoadBalancerNames": [
-                    {
-                        "Ref": "RestElasticLoadBalancer"
-                    }
-                ],
-                "NotificationConfiguration": {
-                    "TopicARN": {
-                        "Ref": "NotificationTopic"
-                    },
-                    "NotificationTypes": [
-                        "autoscaling:EC2_INSTANCE_LAUNCH",
-                        "autoscaling:EC2_INSTANCE_LAUNCH_ERROR",
-                        "autoscaling:EC2_INSTANCE_TERMINATE",
-                        "autoscaling:EC2_INSTANCE_TERMINATE_ERROR"
-                    ]
-                }
-            }
-        },
-        "RestServerScaleUpPolicy": {
-            "Type": "AWS::AutoScaling::ScalingPolicy",
-            "Properties": {
-                "AdjustmentType": "ChangeInCapacity",
-                "AutoScalingGroupName": {
-                    "Ref": "RestAutoScalingGroup"
-                },
-                "Cooldown": "60",
-                "ScalingAdjustment": "1"
-            }
-        },
-        "RestServerScaleDownPolicy": {
-            "Type": "AWS::AutoScaling::ScalingPolicy",
-            "Properties": {
-                "AdjustmentType": "ChangeInCapacity",
-                "AutoScalingGroupName": {
-                    "Ref": "RestAutoScalingGroup"
-                },
-                "Cooldown": "60",
-                "ScalingAdjustment": "-1"
-            }
-        },
-        "CPUAlarmHigh": {
-            "Type": "AWS::CloudWatch::Alarm",
-            "Properties": {
-                "AlarmDescription": "Scale-up if CPU > 60% for 10 minutes",
-                "MetricName": "CPUUtilization",
-                "Namespace": "AWS/EC2",
-                "Statistic": "Average",
-                "Period": "600",
-                "EvaluationPeriods": "2",
-                "Threshold": "60",
-                "AlarmActions": [
-                    {
-                        "Ref": "RestServerScaleUpPolicy"
-                    }
-                ],
-                "Dimensions": [
-                    {
-                        "Name": "AutoScalingGroupName",
-                        "Value": {
-                            "Ref": "RestAutoScalingGroup"
-                        }
-                    }
-                ],
-                "ComparisonOperator": "GreaterThanThreshold"
-            }
-        },
-        "CPUAlarmLow": {
-            "Type": "AWS::CloudWatch::Alarm",
-            "Properties": {
-                "AlarmDescription": "Scale-down if CPU < 10% for 10 minutes",
-                "MetricName": "CPUUtilization",
-                "Namespace": "AWS/EC2",
-                "Statistic": "Average",
-                "Period": "600",
-                "EvaluationPeriods": "2",
-                "Threshold": "10",
-                "AlarmActions": [
-                    {
-                        "Ref": "RestServerScaleDownPolicy"
-                    }
-                ],
-                "Dimensions": [
-                    {
-                        "Name": "AutoScalingGroupName",
-                        "Value": {
-                            "Ref": "RestAutoScalingGroup"
-                        }
-                    }
-                ],
-                "ComparisonOperator": "LessThanThreshold"
-            }
-        },
-        "RestElasticLoadBalancer": {
-            "Type": "AWS::ElasticLoadBalancing::LoadBalancer",
-            "Properties": {
-              "AvailabilityZones": [
-                    {
-                        "Fn::FindInMap": [
-                            "FourAZs",
-                            {
-                                "Ref": "AWS::Region"
-                            },
-                            "AZ1"
-                        ]
-                    },
-                    {
-                        "Fn::FindInMap": [
-                            "FourAZs",
-                            {
-                                "Ref": "AWS::Region"
-                            },
-                            "AZ2"
-                        ]
-                    },
-                    {
-                         "Fn::FindInMap": [
-                             "FourAZs",
-                             {
-                                 "Ref": "AWS::Region"
-                             },
-                             "AZ3"
-                         ]
-                     },
-                    {
-                         "Fn::FindInMap": [
-                             "FourAZs",
-                             {
-                                 "Ref": "AWS::Region"
-                             },
-                             "AZ4"
-                         ]
-                     }
-                ],
-                "Listeners": [
-                    {
-                        "LoadBalancerPort": "80",
-                        "InstancePort": "8080",
-                        "Protocol": "HTTP"
-                    }
-                ],
-                "HealthCheck": {
-                    "Target": "HTTP:8080/status",
-                    "HealthyThreshold": "2",
-                    "UnhealthyThreshold": "8",
-                    "Interval": "10",
-                    "Timeout": "5"
-                },
-                "CrossZone": "true"
-            }
-        },
-        "NotificationTopic": {
-            "Type": "AWS::SNS::Topic",
-            "Properties": {
-                "Subscription": [
-                    {
-                        "Endpoint": {
-                            "Ref": "NotificationEmail"
-                        },
-                        "Protocol": "email"
-                    }
-                ]
-            }
-        },
-        "DnsRecord": {
-            "Type": "AWS::Route53::RecordSetGroup",
-            "Properties": {
-                "HostedZoneName": {
-                    "Fn::Join": [
-                        ".",
-                        [
-                            {
-                                "Ref": "DnsDomain"
-                            },
-                            ""
-                        ]
-                    ]
-                },
-                "RecordSets": [
-                    {
-                        "Name": {
-                            "Fn::Join": [
-                                ".",
-                                [
-                                    {
-                                        "Ref": "DnsSubDomain"
-                                    },
-                                    {
-                                        "Ref": "DnsDomain"
-                                    }
-                                ]
-                            ]
-                        },
-                        "Type": "A",
-                        "AliasTarget": {
-                            "HostedZoneId": {
-                                "Fn::GetAtt": [
-                                    "RestElasticLoadBalancer",
-                                    "CanonicalHostedZoneNameID"
-                                ]
-                            },
-                            "DNSName": {
-                                "Fn::GetAtt": [
-                                    "RestElasticLoadBalancer",
-                                    "CanonicalHostedZoneName"
-                                ]
-                            }
-                        }
-                    }
-                ]
-            }
-        },
-        "RootRole": {
-            "Type": "AWS::IAM::Role",
-            "Properties": {
-                "AssumeRolePolicyDocument": {
-                    "Statement": [
-                        {
-                            "Effect": "Allow",
-                            "Principal": {
-                                "Service": [
-                                    "ec2.amazonaws.com"
-                                ]
-                            },
-                            "Action": [
-                                "sts:AssumeRole"
-                            ]
-                        }
-                    ]
-                },
-                "Path": "/"
-            }
-        },
-        "RolePolicies": {
-            "Type": "AWS::IAM::Policy",
-            "Properties": {
-                "PolicyName": "root",
-                "PolicyDocument": {
-                    "Statement": [
-                        {
-                            "Effect": "Allow",
-                            "Action": "*",
-                            "Resource": "*"
-                        }
-                    ]
-                },
-                "Roles": [
-                    {
-                        "Ref": "RootRole"
-                    }
-                ]
-            }
-        },
-        "RootInstanceProfile": {
-            "Type": "AWS::IAM::InstanceProfile",
-            "Properties": {
-                "Path": "/",
-                "Roles": [
-                    {
-                        "Ref": "RootRole"
-                    }
-                ]
-            }
-        },
-        "ESSecurityGroup": {
-            "Type": "AWS::EC2::SecurityGroup",
-            "Properties": {
-                "GroupDescription": "ElasticSearch Machines",
-                "SecurityGroupIngress": [
-                    {
-                        "IpProtocol": "tcp",
-                        "FromPort": "22",
-                        "ToPort": "22",
-                        "CidrIp": "0.0.0.0/0"
-                    },
-
-                    {
-                        "IpProtocol": "tcp",
-                        "FromPort": "9200",
-                        "ToPort": "9200",
-                        "CidrIp": "0.0.0.0/0"
-                    }
-                ]
-            }
-        },
-        "AllowCassToESOnAllPorts": {
-            "Type": "AWS::EC2::SecurityGroupIngress",
-            "Properties": {
-                "GroupName": {
-                    "Ref": "ESSecurityGroup"
-                },
-                "IpProtocol": "tcp",
-                "FromPort": "1",
-                "ToPort": "65535",
-                "SourceSecurityGroupName": {
-                    "Ref": "CassSecurityGroup"
-                }
-            }
-        },
-        "AllowRestToESOnAllPorts": {
-            "Type": "AWS::EC2::SecurityGroupIngress",
-            "Properties": {
-                "GroupName": {
-                    "Ref": "ESSecurityGroup"
-                },
-                "IpProtocol": "tcp",
-                "FromPort": "1",
-                "ToPort": "65535",
-                "SourceSecurityGroupName": {
-                    "Ref": "RestSecurityGroup"
-                }
-            }
-        },
-        "CassSecurityGroup": {
-            "Type": "AWS::EC2::SecurityGroup",
-            "Properties": {
-                "GroupDescription": "Database Machines",
-                "SecurityGroupIngress": [
-                    {
-                        "IpProtocol": "tcp",
-                        "FromPort": "22",
-                        "ToPort": "22",
-                        "CidrIp": "0.0.0.0/0"
-                    }
-                ]
-            }
-        },
-        "AllowCassToCassOnAllPorts": {
-            "Type": "AWS::EC2::SecurityGroupIngress",
-            "Properties": {
-                "GroupName": {
-                    "Ref": "CassSecurityGroup"
-                },
-                "IpProtocol": "tcp",
-                "FromPort": "1",
-                "ToPort": "65535",
-                "SourceSecurityGroupName": {
-                    "Ref": "CassSecurityGroup"
-                }
-            }
-        },
-        "AllowESToCassOnAllPorts": {
-            "Type": "AWS::EC2::SecurityGroupIngress",
-            "Properties": {
-                "GroupName": {
-                    "Ref": "CassSecurityGroup"
-                },
-                "IpProtocol": "tcp",
-                "FromPort": "1",
-                "ToPort": "65535",
-                "SourceSecurityGroupName": {
-                    "Ref": "ESSecurityGroup"
-                }
-            }
-        },
-        "AllowESToESOnAllPorts": {
-            "Type": "AWS::EC2::SecurityGroupIngress",
-            "Properties": {
-                "GroupName": {
-                    "Ref": "ESSecurityGroup"
-                },
-                "IpProtocol": "tcp",
-                "FromPort": "1",
-                "ToPort": "65535",
-                "SourceSecurityGroupName": {
-                    "Ref": "ESSecurityGroup"
-                }
-            }
-        },
-        "AllowRestToCassOnAllPorts": {
-            "Type": "AWS::EC2::SecurityGroupIngress",
-            "Properties": {
-                "GroupName": {
-                    "Ref": "CassSecurityGroup"
-                },
-                "IpProtocol": "tcp",
-                "FromPort": "1",
-                "ToPort": "65535",
-                "SourceSecurityGroupName": {
-                    "Ref": "RestSecurityGroup"
-                }
-            }
-        },
-        "AllowCassToRestOnAllPorts": {
-            "Type": "AWS::EC2::SecurityGroupIngress",
-            "Properties": {
-                "GroupName": {
-                    "Ref": "RestSecurityGroup"
-                },
-                "IpProtocol": "tcp",
-                "FromPort": "0",
-                "ToPort": "65535",
-                "SourceSecurityGroupName": {
-                    "Ref": "CassSecurityGroup"
-                }
-            }
-        },
-        "AllowESToRestOnAllPorts": {
-            "Type": "AWS::EC2::SecurityGroupIngress",
-            "Properties": {
-                "GroupName": {
-                    "Ref": "RestSecurityGroup"
-                },
-                "IpProtocol": "tcp",
-                "FromPort": "0",
-                "ToPort": "65535",
-                "SourceSecurityGroupName": {
-                    "Ref": "ESSecurityGroup"
-                }
-            }
-        },
-        "AllowCassToCassOnAllPorts": {
-            "Type": "AWS::EC2::SecurityGroupIngress",
-            "Properties": {
-                "GroupName": {
-                    "Ref": "CassSecurityGroup"
-                },
-                "IpProtocol": "tcp",
-                "FromPort": "0",
-                "ToPort": "65535",
-                "SourceSecurityGroupName": {
-                    "Ref": "CassSecurityGroup"
-                }
-            }
-        },
-        "AllowOpsCenterToCassOnAllPorts": {
-                "Type": "AWS::EC2::SecurityGroupIngress",
-                "Properties": {
-                    "GroupName": {
-                        "Ref": "CassSecurityGroup"
-                    },
-                    "IpProtocol": "tcp",
-                    "FromPort": "1",
-                    "ToPort": "65535",
-                    "SourceSecurityGroupName": {
-                        "Ref": "OpsCenterSecurityGroup"
-                    }
-                }
-            },
-
-        "RestSecurityGroup": {
-            "Type": "AWS::EC2::SecurityGroup",
-            "Properties": {
-                "GroupDescription": "REST Machines",
-                "SecurityGroupIngress": [
-                    {
-                        "IpProtocol": "tcp",
-                        "FromPort": "22",
-                        "ToPort": "22",
-                        "CidrIp": "0.0.0.0/0"
-                    },
-                    {
-                        "IpProtocol": "tcp",
-                        "FromPort": "8080",
-                        "ToPort": "8080",
-                        "CidrIp": "0.0.0.0/0"
-                    }
-                ]
-            }
-        },
-        "GraphiteSecurityGroup": {
-            "Type": "AWS::EC2::SecurityGroup",
-            "Properties": {
-                "GroupDescription": "Graphic Machines",
-                "SecurityGroupIngress": [
-                    {
-                        "IpProtocol": "tcp",
-                        "FromPort": "22",
-                        "ToPort": "22",
-                        "CidrIp": "0.0.0.0/0"
-                    },
-                    {
-                        "IpProtocol": "tcp",
-                        "FromPort": "80",
-                        "ToPort": "80",
-                        "CidrIp": "0.0.0.0/0"
-                    }
-                ]
-            }
-        },
-        "AllowESToGraphiteAllPorts": {
-            "Type": "AWS::EC2::SecurityGroupIngress",
-            "Properties": {
-                "GroupName": {
-                    "Ref": "GraphiteSecurityGroup"
-                },
-                "IpProtocol": "tcp",
-                "FromPort": "0",
-                "ToPort": "65535",
-                "SourceSecurityGroupName": {
-                    "Ref": "ESSecurityGroup"
-                }
-            }
-        },
-        "AllowCassToGraphiteAllPorts": {
-            "Type": "AWS::EC2::SecurityGroupIngress",
-            "Properties": {
-                "GroupName": {
-                    "Ref": "GraphiteSecurityGroup"
-                },
-                "IpProtocol": "tcp",
-                "FromPort": "0",
-                "ToPort": "65535",
-                "SourceSecurityGroupName": {
-                    "Ref": "CassSecurityGroup"
-                }
-            }
-        },
-        "AllowRestToGraphiteAllPorts": {
-            "Type": "AWS::EC2::SecurityGroupIngress",
-            "Properties": {
-                "GroupName": {
-                    "Ref": "GraphiteSecurityGroup"
-                },
-                "IpProtocol": "tcp",
-                "FromPort": "0",
-                "ToPort": "65535",
-                "SourceSecurityGroupName": {
-                    "Ref": "RestSecurityGroup"
-                }
-            }
-        },
-        "OpsCenterSecurityGroup": {
-            "Type": "AWS::EC2::SecurityGroup",
-            "Properties": {
-                "GroupDescription": "Opscenter Machines",
-                "SecurityGroupIngress": [
-                    {
-                        "IpProtocol": "tcp",
-                        "FromPort": "22",
-                        "ToPort": "22",
-                        "CidrIp": "0.0.0.0/0"
-                    },
-                    {
-                        "IpProtocol": "tcp",
-                        "FromPort": "8888",
-                        "ToPort": "8888",
-                        "CidrIp": "0.0.0.0/0"
-                    }
-                ]
-            }
-        },
-        "AllowCassToOpscenterAllPorts": {
-            "Type": "AWS::EC2::SecurityGroupIngress",
-            "Properties": {
-                "GroupName": {
-                    "Ref": "OpsCenterSecurityGroup"
-                },
-                "IpProtocol": "tcp",
-                "FromPort": "0",
-                "ToPort": "65535",
-                "SourceSecurityGroupName": {
-                    "Ref": "CassSecurityGroup"
-                }
-            }
-        }
-
-    }
-}


Mime
View raw message