Más contenido relacionado La actualidad más candente (20) Similar a Deployment and Management on AWS:
A Deep Dive on Options and Tools (20) Más de Danilo Poccia (20) Deployment and Management on AWS:
A Deep Dive on Options and Tools17. AWS Elastic Beanstalk
Resource Types Reference
AWS Resource Resource Type Identifier
Amazon CloudWatch AWS::CloudWatch::Alarm
DynamoDB Table AWS::DynamoDB::Table
Amazon ElastiCache Cache Cluster AWS::ElastiCache::CacheCluster
Amazon ElastiCache Security Group AWS::ElastiCache::SecurityGroup
Amazon ElastiCache Security Group Ingress AWS::ElastiCache::SecurityGroupIngress
Amazon SNS Subscription AWS::SNS::Subscription
Amazon SNS Topic AWS::SNS::Topic
Amazon SQS Queue AWS::SQS::Queue
18. AWS Elastic Beanstalk
Built-in Resources
Resource Name Description
AWSEBAutoScalingGroup
The name of the Auto Scaling group that Elastic Beanstalk
uses when it launches Amazon EC2 instances.
AWSEBAutoScalingLaunchConfiguration
The name for the launch configuration settings that Elastic
Beanstalk uses when it launches EC2 instances.
AWSEBEnvironmentName The name of the Elastic Beanstalk environment.
AWSEBLoadBalancer
The name of the elastic load balancer used in the Elastic
Beanstalk environment.
AWSEBRDSDatabase The name of the Amazon RDS database.
AWSEBSecurityGroup
The name for the EC2 security group that Elastic Beanstalk
uses when it launches EC2 instances.
47. Conditions
Resources
References
Mappings
Outputs
Parameters "Parameters" : {!
"EnvType" : {!
"Description" : "Environment type.",!
"Default" : "test",!
"Type" : "String",!
"AllowedValues" : ["prod", "test"]!
}!
},!
!
"Conditions" : {!
"CreateProdInstance" : {"Fn::Equals" : [{"Ref" : "EnvType"}, "prod"]}!
}!
!
"ProductionInstance" : {!
"Type" : "AWS::EC2::Instance",!
"Condition" : "CreateProdInstance",!
"Properties" : {!
"InstanceType" : "c1.xlarge",!
"SecurityGroups" : [ { "Ref" : "ProdSecurityGroup" } ],!
"KeyName" : { "Ref" : "ProdKeyName" },!
"ImageId" : { "Fn::FindInMap" : [ "RegionMap", { "Ref" : "AWS::Region" }, "AMI" ]}!
}!
}
56. {
"Description"
:
"Create
RDS
with
username
and
password",
"Resources"
:
{
!
"MyDB"
:
{
"Type"
:
"AWS::RDS::DBInstance",
"Properties"
:
{
"AllocatedStorage"
:
"500",
"DBInstanceClass"
:
"db.m1.small",
"Engine"
:
"MySQL",
"EngineVersion"
:
"5.6",
"MasterUsername"
:
"MyName",
"MasterUserPassword"
:
"MyPassword"
}
}
}
}
57. "AWS::CloudFormation::Init"
:
{
"config"
:
{
!
"packages"
:
{
"yum"
:
{
"mysql"
:
[],
"mysql-‐server"
:
[],
"httpd"
:
[],
"php"
:
[],
"php-‐mysql"
:
[]
}
},
"sources"
:
{
"/var/www/html"
:
"https://s3.amazonaws.com/my-‐builds/build-‐v4.zip"
}
}
58. {
"Parameters"
:
{
"KeyName"
:
{
"Description"
:
"Name
of
an
existing
EC2
KeyPair
to
enable
SSH
access
to
the
instance",
"Type"
:
"String"
}
},
}
61. aws ec2 describe-instances!
--filter Name=instance-state-name,Values=running,!
Name=tag:aws:autoscaling:groupName,Values=XXX!
--query Reservations[].Instances[].PublicDnsName!
--output text
62. for ip in $(!
!
aws ec2 describe-instances!
--filter Name=instance-state-name,Values=running,!
Name=tag:aws:autoscaling:groupName,Values=XXX!
--query Reservations[].Instances[].PublicDnsName!
--output text!
!
); do ssh -t ec2-user@$ip "sudo yum update"; done!
!
63. for ip in $(!
!
aws ec2 describe-instances!
--filter Name=instance-state-name,Values=running,!
Name=tag:aws:autoscaling:groupName,Values=XXX!
--query Reservations[].Instances[].PublicDnsName!
--output text!
!
); do ssh -t ec2-user@$ip "cd /app ; git pull"; done!
!
64. for ip in $(!
!
aws ec2 describe-instances!
--filter Name=instance-state-name,Values=running,!
Name=tag:aws:autoscaling:groupName,Values=XXX!
--query Reservations[].Instances[].PublicDnsName!
--output text!
!
); do ssh -t ec2-user@$ip "/app/update.sh"; done!
!
66. aws sns list-subscriptions |!
jq -c '.Subscriptions[] |!
select(.Protocol == "sqs")' |!
while read s!
do!
if [ "$(aws sqs get-queue-url —queue-name!
$(echo $s | jq -r .Endpoint |!
sed ’s/^arn:aws:sqs:[^:]*:[^:]*://')!
2>&1 >/dev/null ;!
echo $?)" != "0" ]!
then!
echo "Unsubscribing $s ..."!
aws sns unsubscribe —subscription-arn!
$(echo $s | jq -r .SubscriptionArn)!
echo "Done."!
fi;!
done