-
Notifications
You must be signed in to change notification settings - Fork 262
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
0 parents
commit 38bc326
Showing
156 changed files
with
27,956 additions
and
0 deletions.
There are no files selected for viewing
This file contains 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,112 @@ | ||
{ | ||
"AWSTemplateFormatVersion" : "2010-09-09", | ||
|
||
"Description" : "AWS CloudFormer Beta - template creation prototype application. This tool allows you to create an AWS CloudFormation template from the AWS resources in your AWS account. **Warning** This template creates a single t1.micro instance in your account to run the application - you will be billed for the instance at normal AWS EC2 rates for the t1.micro.", | ||
|
||
"Parameters" : { | ||
"AccessControl" : { | ||
"Description" : " The IP address range that can be used to access the CloudFormer tool. NOTE: We highly recommend that you specify a customized address range to lock down the tool.", | ||
"Type": "String", | ||
"MinLength": "9", | ||
"MaxLength": "18", | ||
"Default": "0.0.0.0/0", | ||
"AllowedPattern": "(\\d{1,3})\\.(\\d{1,3})\\.(\\d{1,3})\\.(\\d{1,3})/(\\d{1,2})", | ||
"ConstraintDescription": "must be a valid IP CIDR range of the form x.x.x.x/x." | ||
} | ||
}, | ||
|
||
"Mappings" : { | ||
"RegionMap" : { | ||
"us-east-1" : { "AMI" : "ami-21341f48" }, | ||
"us-west-2" : { "AMI" : "ami-d6096ee6" }, | ||
"us-west-1" : { "AMI" : "ami-ec7c4fa9" }, | ||
"eu-west-1" : { "AMI" : "ami-26688051" }, | ||
"ap-southeast-1" : { "AMI" : "ami-c0356292" }, | ||
"ap-northeast-1" : { "AMI" : "ami-7d1a777c" }, | ||
"ap-southeast-2" : { "AMI" : "ami-cd1b84f7" }, | ||
"sa-east-1" : { "AMI" : "ami-592d8c44" }, | ||
"us-gov-west-1" : { "AMI" : "ami-23c1a500" } | ||
} | ||
}, | ||
|
||
"Resources" : { | ||
|
||
"CFNRole": { | ||
"Type": "AWS::IAM::Role", | ||
"Properties": { | ||
"AssumeRolePolicyDocument": { | ||
"Statement": [{ | ||
"Effect": "Allow", | ||
"Principal": { "Service": [ "ec2.amazonaws.com" ] }, | ||
"Action": [ "sts:AssumeRole" ] | ||
}] | ||
}, | ||
"Path": "/" | ||
} | ||
}, | ||
|
||
"CFNRolePolicy": { | ||
"Type": "AWS::IAM::Policy", | ||
"Properties": { | ||
"PolicyName": "CloudFormerPolicy", | ||
"PolicyDocument": { | ||
"Statement": [ { | ||
"Effect": "Allow", | ||
"Action" : [ | ||
"autoscaling:Describe*", | ||
"cloudfront:List*", | ||
"cloudwatch:Describe*", | ||
"dynamodb:List*", "dynamodb:Describe*", | ||
"ec2:Describe*", | ||
"elasticloadbalancing:Describe*", | ||
"elasticache:Describe*", | ||
"rds:Describe*", "rds:List*", | ||
"route53:List*", | ||
"s3:List*", "s3:Get*", "s3:PutObject", | ||
"sdb:Get*", "sdb:List*", | ||
"sns:Get*", "sns:List*", | ||
"sqs:Get*", "sqs:List*" | ||
], | ||
"Resource": "*" | ||
} ] | ||
}, | ||
"Roles": [ { "Ref": "CFNRole" } ] | ||
} | ||
}, | ||
|
||
"CFNInstanceProfile": { | ||
"Type": "AWS::IAM::InstanceProfile", | ||
"Properties": { | ||
"Path": "/", | ||
"Roles": [ { "Ref": "CFNRole" } ] | ||
} | ||
}, | ||
|
||
"WebServer" : { | ||
"Type" : "AWS::EC2::Instance", | ||
"Properties" : { | ||
"InstanceType" : "t1.micro", | ||
"SecurityGroups" : [ { "Ref" : "InstanceSecurityGroup" } ], | ||
"ImageId" : { "Fn::FindInMap" : [ "RegionMap", { "Ref" : "AWS::Region" }, "AMI" ]}, | ||
"IamInstanceProfile" : { "Ref" : "CFNInstanceProfile" } | ||
} | ||
}, | ||
|
||
"InstanceSecurityGroup" : { | ||
"Type" : "AWS::EC2::SecurityGroup", | ||
"Properties" : { | ||
"GroupDescription" : "Enable Access via port 80", | ||
"SecurityGroupIngress" : [ | ||
{ "IpProtocol" : "tcp", "FromPort" : "80", "ToPort" : "80", "CidrIp" : {"Ref" : "AccessControl"}} | ||
] | ||
} | ||
} | ||
}, | ||
|
||
"Outputs" : { | ||
"URL" : { | ||
"Description" : "AWS CloudFormer Prototype URL. Use this endpoint to create templates from your account.", | ||
"Value" : { "Fn::Join" : ["", [ "http:https://", { "Fn::GetAtt" : [ "WebServer", "PublicDnsName" ] } ]]} | ||
} | ||
} | ||
} |
This file contains 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,125 @@ | ||
{ | ||
"AWSTemplateFormatVersion" : "2010-09-09", | ||
|
||
"Description" : "AWS CloudFormation Sample Template AutoScalingKeepAtNSample: Create a load balanced, Auto Scaled sample website. This example creates an Auto Scaling group behind a load balancer with a simple health check using a basic getting start AMI that has a simple Apache Web Server-based PHP page. The web site is available on port 80, however, the instances can be configured to listen on any port (8888 by default). **WARNING** This template creates one or more Amazon EC2 instances and an Elastic Load Balancer. You will be billed for the AWS resources used if you create a stack from this template.", | ||
|
||
"Parameters" : { | ||
"InstanceType" : { | ||
"Description" : "WebServer EC2 instance type", | ||
"Type" : "String", | ||
"Default" : "m1.small", | ||
"AllowedValues" : [ "t1.micro","m1.small","m1.medium","m1.large","m1.xlarge","m2.xlarge","m2.2xlarge","m2.4xlarge","m3.xlarge","m3.2xlarge","c1.medium","c1.xlarge","cc1.4xlarge","cc2.8xlarge","cg1.4xlarge"], | ||
"ConstraintDescription" : "must be a valid EC2 instance type." | ||
}, | ||
|
||
"WebServerPort" : { | ||
"Description" : "TCP/IP port of the web server", | ||
"Type" : "String", | ||
"Default" : "8888" | ||
}, | ||
"KeyName" : { | ||
"Description" : "Name of an existing EC2 KeyPair to enable SSH access to the instances", | ||
"Type" : "String" | ||
}, | ||
"SSHLocation" : { | ||
"Description" : "The IP address range that can be used to SSH to the EC2 instances", | ||
"Type": "String", | ||
"MinLength": "9", | ||
"MaxLength": "18", | ||
"Default": "0.0.0.0/0", | ||
"AllowedPattern": "(\\d{1,3})\\.(\\d{1,3})\\.(\\d{1,3})\\.(\\d{1,3})/(\\d{1,2})", | ||
"ConstraintDescription": "must be a valid IP CIDR range of the form x.x.x.x/x." | ||
} | ||
|
||
}, | ||
|
||
"Mappings" : { | ||
"AWSInstanceType2Arch" : { | ||
"t1.micro" : { "Arch" : "64" }, | ||
"m1.small" : { "Arch" : "64" }, | ||
"m1.medium" : { "Arch" : "64" }, | ||
"m1.large" : { "Arch" : "64" }, | ||
"m1.xlarge" : { "Arch" : "64" }, | ||
"m2.xlarge" : { "Arch" : "64" }, | ||
"m2.2xlarge" : { "Arch" : "64" }, | ||
"m2.4xlarge" : { "Arch" : "64" }, | ||
"m3.xlarge" : { "Arch" : "64" }, | ||
"m3.2xlarge" : { "Arch" : "64" }, | ||
"c1.medium" : { "Arch" : "64" }, | ||
"c1.xlarge" : { "Arch" : "64" } | ||
}, | ||
|
||
"AWSRegionArch2AMI" : { | ||
"us-east-1" : { "32" : "ami-aba768c2", "64" : "ami-81a768e8" }, | ||
"us-west-1" : { "32" : "ami-458fd300", "64" : "ami-b18ed2f4" }, | ||
"us-west-2" : { "32" : "ami-fcff72cc", "64" : "ami-feff72ce" }, | ||
"eu-west-1" : { "32" : "ami-018bb975", "64" : "ami-998bb9ed" }, | ||
"sa-east-1" : { "32" : "ami-a039e6bd", "64" : "ami-a239e6bf" }, | ||
"ap-southeast-1" : { "32" : "ami-425a2010", "64" : "ami-5e5a200c" }, | ||
"ap-southeast-2" : { "32" : "ami-b3990e89", "64" : "ami-bd990e87" }, | ||
"ap-northeast-1" : { "32" : "ami-7871c579", "64" : "ami-7671c577" } | ||
} | ||
}, | ||
|
||
"Resources" : { | ||
"WebServerGroup" : { | ||
"Type" : "AWS::AutoScaling::AutoScalingGroup", | ||
"Properties" : { | ||
"AvailabilityZones" : { "Fn::GetAZs" : "" }, | ||
"LaunchConfigurationName" : { "Ref" : "LaunchConfig" }, | ||
"MinSize" : "2", | ||
"MaxSize" : "2", | ||
"LoadBalancerNames" : [ { "Ref" : "ElasticLoadBalancer" } ] | ||
} | ||
}, | ||
|
||
"LaunchConfig" : { | ||
"Type" : "AWS::AutoScaling::LaunchConfiguration", | ||
"Properties" : { | ||
"KeyName" : { "Ref" : "KeyName" }, | ||
"ImageId" : { "Fn::FindInMap" : [ "AWSRegionArch2AMI", { "Ref" : "AWS::Region" }, | ||
{ "Fn::FindInMap" : [ "AWSInstanceType2Arch", { "Ref" : "InstanceType" }, | ||
"Arch" ] } ] }, | ||
"UserData" : { "Fn::Base64" : { "Ref" : "WebServerPort" }}, | ||
"SecurityGroups" : [ { "Ref" : "InstanceSecurityGroup" } ], | ||
"InstanceType" : { "Ref" : "InstanceType" } | ||
} | ||
}, | ||
|
||
"ElasticLoadBalancer" : { | ||
"Type" : "AWS::ElasticLoadBalancing::LoadBalancer", | ||
"Properties" : { | ||
"AvailabilityZones" : { "Fn::GetAZs" : "" }, | ||
"Listeners" : [ { | ||
"LoadBalancerPort" : "80", | ||
"InstancePort" : { "Ref" : "WebServerPort" }, | ||
"Protocol" : "HTTP" | ||
} ], | ||
"HealthCheck" : { | ||
"Target" : { "Fn::Join" : [ "", ["HTTP:", { "Ref" : "WebServerPort" }, "/"]]}, | ||
"HealthyThreshold" : "3", | ||
"UnhealthyThreshold" : "5", | ||
"Interval" : "30", | ||
"Timeout" : "5" | ||
} | ||
} | ||
}, | ||
|
||
"InstanceSecurityGroup" : { | ||
"Type" : "AWS::EC2::SecurityGroup", | ||
"Properties" : { | ||
"GroupDescription" : "Enable SSH access and HTTP access on the configured port", | ||
"SecurityGroupIngress" : | ||
[ { "IpProtocol" : "tcp", "FromPort" : "22", "ToPort" : "22", "CidrIp" : { "Ref" : "SSHLocation"} }, | ||
{ "IpProtocol" : "tcp", "FromPort" : { "Ref" : "WebServerPort" }, "ToPort" : { "Ref" : "WebServerPort" }, "CidrIp" : "0.0.0.0/0"} ] | ||
} | ||
} | ||
}, | ||
|
||
"Outputs" : { | ||
"URL" : { | ||
"Description" : "URL of the website", | ||
"Value" : { "Fn::Join" : [ "", [ "http:https://", { "Fn::GetAtt" : [ "ElasticLoadBalancer", "DNSName" ]}]]} | ||
} | ||
} | ||
} |
Oops, something went wrong.