Created
May 24, 2013 03:01
-
-
Save miyamoto-daisuke/5641023 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| { | |
| "AWSTemplateFormatVersion": "2010-09-09", | |
| "Description": "Tungsten Replicator evaluation", | |
| "Parameters" : { | |
| "KeyName" : { | |
| "Description" : "Name of an existing EC2 KeyPair to enable SSH access to the web server", | |
| "Type" : "String" | |
| }, | |
| "SlaveMasterPassword" : { | |
| "Description" : "Password of RDS master user", | |
| "Default": "slavepass", | |
| "Type" : "String" | |
| } | |
| }, | |
| "Mappings": { | |
| "AmazonLinux": { | |
| "us-east-1": { "64bit": "ami-3275ee5b", "32bit": "ami-5675ee3f" }, | |
| "us-west-2": { "64bit": "ami-ecbe2adc", "32bit": "ami-d0be2ae0" }, | |
| "us-west-1": { "64bit": "ami-66d1fc23", "32bit": "ami-d8d1fc9d" }, | |
| "eu-west-1": { "64bit": "ami-44939930", "32bit": "ami-6893991c" }, | |
| "ap-southeast-1": { "64bit": "ami-aa9ed2f8", "32bit": "ami-a29ed2f0" }, | |
| "ap-southeast-2": { "64bit": "ami-363eaf0c", "32bit": "ami-383eaf02" }, | |
| "ap-northeast-1": { "64bit": "ami-173fbf16", "32bit": "ami-0f3fbf0e" }, | |
| "sa-east-1": { "64bit": "ami-dd6bb0c0", "32bit": "ami-a56bb0b8" } | |
| }, | |
| "AZ": { | |
| "us-east-1": { "left": "us-east-1c", "right": "us-east-1e" }, | |
| "us-west-2": { "left": "us-west-2a", "right": "us-west-2b" }, | |
| "us-west-1": { "left": "us-west-1a", "right": "us-west-1b" }, | |
| "eu-west-1": { "left": "eu-west-1a", "right": "eu-west-1b" }, | |
| "ap-southeast-1": { "left": "ap-southeast-1a", "right": "ap-southeast-1b" }, | |
| "ap-southeast-2": { "left": "ap-southeast-2a", "right": "ap-southeast-2b" }, | |
| "ap-northeast-1": { "left": "ap-northeast-1a", "right": "ap-northeast-1c" }, | |
| "sa-east-1": { "left": "sa-east-1a", "right": "sa-east-1b" } | |
| } | |
| }, | |
| "Resources": { | |
| "Vpc" : { | |
| "Type" : "AWS::EC2::VPC", | |
| "Properties" : { | |
| "CidrBlock" : "10.0.0.0/16", | |
| "InstanceTenancy" : "default" | |
| } | |
| }, | |
| "Igw" : { | |
| "Type" : "AWS::EC2::InternetGateway" | |
| }, | |
| "IgwAttachment" : { | |
| "Type" : "AWS::EC2::VPCGatewayAttachment", | |
| "Properties" : { | |
| "VpcId" : {"Ref": "Vpc"}, | |
| "InternetGatewayId" : {"Ref": "Igw"} | |
| } | |
| }, | |
| "SubnetA" : { | |
| "Type" : "AWS::EC2::Subnet", | |
| "Properties" : { | |
| "AvailabilityZone" : { "Fn::FindInMap": [ "AZ", { "Ref": "AWS::Region" }, "right" ]}, | |
| "CidrBlock" : "10.0.0.0/24", | |
| "VpcId" : {"Ref": "Vpc"} | |
| } | |
| }, | |
| "SubnetB" : { | |
| "Type" : "AWS::EC2::Subnet", | |
| "Properties" : { | |
| "AvailabilityZone" : { "Fn::FindInMap": [ "AZ", { "Ref": "AWS::Region" }, "left" ]}, | |
| "CidrBlock" : "10.0.1.0/24", | |
| "VpcId" : {"Ref": "Vpc"} | |
| } | |
| }, | |
| "Rtb" : { | |
| "Type" : "AWS::EC2::RouteTable", | |
| "Properties" : { | |
| "VpcId" : {"Ref": "Vpc"}, | |
| "Tags" : [] | |
| } | |
| }, | |
| "RouteToIgw": { | |
| "Type" : "AWS::EC2::Route", | |
| "Properties" : { | |
| "DestinationCidrBlock" : "0.0.0.0/0", | |
| "RouteTableId" : {"Ref": "Rtb"}, | |
| "GatewayId" : {"Ref": "Igw"} | |
| } | |
| }, | |
| "Rtbassoc" : { | |
| "Type" : "AWS::EC2::SubnetRouteTableAssociation", | |
| "Properties" : { | |
| "RouteTableId" : {"Ref": "Rtb"}, | |
| "SubnetId" : {"Ref": "SubnetA"} | |
| } | |
| }, | |
| "SgSSH" : { | |
| "Type" : "AWS::EC2::SecurityGroup", | |
| "Properties" : { | |
| "GroupDescription" : "Enable SSH access via port 22", | |
| "SecurityGroupIngress": [ | |
| { | |
| "IpProtocol" : "tcp", | |
| "CidrIp" : "0.0.0.0/0", | |
| "FromPort" : "22", | |
| "ToPort" : "22" | |
| } | |
| ], | |
| "VpcId" : {"Ref": "Vpc"} | |
| } | |
| }, | |
| "SgTungstenBridge" : { | |
| "Type" : "AWS::EC2::SecurityGroup", | |
| "Properties" : { | |
| "GroupDescription" : "Enable Tungsten access to master port 2112", | |
| "VpcId" : {"Ref": "Vpc"} | |
| } | |
| }, | |
| "SgTungstenMaster" : { | |
| "Type" : "AWS::EC2::SecurityGroup", | |
| "Properties" : { | |
| "GroupDescription" : "Enable Tungsten access via port 2112", | |
| "SecurityGroupIngress": [ | |
| { | |
| "IpProtocol" : "tcp", | |
| "SourceSecurityGroupId": { "Ref": "SgTungstenBridge" }, | |
| "FromPort" : "2112", | |
| "ToPort" : "2112" | |
| } | |
| ], | |
| "VpcId" : {"Ref": "Vpc"} | |
| } | |
| }, | |
| "SgMySQL" : { | |
| "Type" : "AWS::EC2::SecurityGroup", | |
| "Properties" : { | |
| "GroupDescription" : "Enable MySQL access via port 3306", | |
| "SecurityGroupIngress": [ | |
| { | |
| "IpProtocol" : "tcp", | |
| "CidrIp" : "0.0.0.0/0", | |
| "FromPort" : "3306", | |
| "ToPort" : "3306" | |
| } | |
| ], | |
| "VpcId" : {"Ref": "Vpc"} | |
| } | |
| }, | |
| "TungstenMasterInstance" : { | |
| "Type" : "AWS::EC2::Instance", | |
| "Properties" : { | |
| "ImageId" : { "Fn::FindInMap": [ "AmazonLinux", { "Ref": "AWS::Region" }, "64bit" ]}, | |
| "InstanceType" : "t1.micro", | |
| "PrivateIpAddress" : "10.0.0.10", | |
| "KeyName" : { "Ref" : "KeyName" }, | |
| "SecurityGroupIds" : [ | |
| { "Ref" : "SgSSH" }, | |
| { "Ref" : "SgTungstenMaster" }, | |
| { "Ref" : "SgMySQL" } | |
| ], | |
| "SubnetId" : {"Ref": "SubnetA"}, | |
| "Tags" : [{"Key": "Name", "Value": "tungsten-master"}], | |
| "Monitoring" : "False", | |
| "Tenancy" : "default" | |
| } | |
| }, | |
| "TungstenMasterEIP": { | |
| "Type": "AWS::EC2::EIP", | |
| "Properties": { | |
| "InstanceId": { "Ref": "TungstenMasterInstance" }, | |
| "Domain" : "vpc" | |
| } | |
| }, | |
| "TungstenBridgeInstance" : { | |
| "Type" : "AWS::EC2::Instance", | |
| "Properties" : { | |
| "ImageId" : { "Fn::FindInMap": [ "AmazonLinux", { "Ref": "AWS::Region" }, "64bit" ]}, | |
| "InstanceType" : "t1.micro", | |
| "PrivateIpAddress" : "10.0.0.20", | |
| "KeyName" : { "Ref" : "KeyName" }, | |
| "SecurityGroupIds" : [ | |
| { "Ref" : "SgSSH" }, | |
| { "Ref" : "SgTungstenBridge" } | |
| ], | |
| "SubnetId" : {"Ref": "SubnetA"}, | |
| "Tags" : [{"Key": "Name", "Value": "tungsten-bridge"}], | |
| "Monitoring" : "False", | |
| "Tenancy" : "default" | |
| } | |
| }, | |
| "TungstenBridgeEIP": { | |
| "Type": "AWS::EC2::EIP", | |
| "Properties": { | |
| "InstanceId": { "Ref": "TungstenBridgeInstance" }, | |
| "Domain" : "vpc" | |
| } | |
| }, | |
| "TungstenSlaveDBSubnetGroup" : { | |
| "Type" : "AWS::RDS::DBSubnetGroup", | |
| "Properties" : { | |
| "DBSubnetGroupDescription" : "tungsten-slave", | |
| "SubnetIds" : [ | |
| {"Ref":"SubnetA"}, | |
| {"Ref":"SubnetB"} | |
| ] | |
| } | |
| }, | |
| "MySQLSlaveDBInstance" : { | |
| "Type" : "AWS::RDS::DBInstance", | |
| "Properties" : { | |
| "DBInstanceClass" : "db.t1.micro", | |
| "AllocatedStorage" : "5", | |
| "Engine" : "mysql", | |
| "MultiAZ" : "false", | |
| "MasterUsername" : "root", | |
| "MasterUserPassword" : {"Ref":"SlaveMasterPassword"}, | |
| "BackupRetentionPeriod" : "1", | |
| "Tags" : [{"Key": "Name", "Value": "mysql-slave"}], | |
| "DBSubnetGroupName" : {"Ref":"TungstenSlaveDBSubnetGroup"}, | |
| "VPCSecurityGroups" : [ | |
| { "Ref" : "SgMySQL" } | |
| ] | |
| } | |
| } | |
| }, | |
| "Outputs" : { | |
| "SSHToTungstenMaster": { | |
| "Value": { "Fn::Join":["", [ | |
| "ssh -i /path/to/", { "Ref": "KeyName" }, ".pem ec2-user@", { "Ref": "TungstenMasterEIP" } | |
| ]] }, | |
| "Description": "SSH command to connect tungsten-master" | |
| }, | |
| "SSHToTungstenBridge": { | |
| "Value": { "Fn::Join":["", [ | |
| "ssh -i /path/to/", { "Ref": "KeyName" }, ".pem ec2-user@", { "Ref": "TungstenBridgeEIP" } | |
| ]] }, | |
| "Description": "SSH command to connect tungsten-bridge" | |
| }, | |
| "MySQLSlaveHostname" : { | |
| "Value" : { "Fn::GetAtt" : ["MySQLSlaveDBInstance", "Endpoint.Address"] }, | |
| "Description" : "Hostname of mysql-slave" | |
| } | |
| } | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment