Lock in $30 Savings on PRO—Offer Ends Soon! ⏳

AWS Deployment Mechanics

AWS Deployment Mechanics

In this workshop we are discussing the mechanics of a reliable, scalable, and cost-effective deployment on AWS. This includes how to structure your network (VPC), the use of auto-scaling groups, and how to work with storage like EBS, Glacier, S3, or instance storage. Additionally, we will talk about Elastic Load Balancers and their limitations, how to save money by using reserved or on-demand instances, and how to monitor your servers and applications. While we will show some possible solutions, this should be very interactive — tell us how and why you are doing things differently and we will discuss varying scenarios and experiences!

Philipp Krenn

July 06, 2015
Tweet

More Decks by Philipp Krenn

Other Decks in Programming

Transcript

  1. $ ec2-describe-availability-zones --region us-east-1 AVAILABILITYZONE us-east-1a available us-east-1 AVAILABILITYZONE us-east-1b

    available us-east-1 AVAILABILITYZONE us-east-1c available us-east-1 AVAILABILITYZONE us-east-1d available us-east-1 AVAILABILITYZONE us-east-1e available us-east-1
  2. 10.0.0.0/16 - Production 10.0.0.0/18 — AZ A 10.0.0.0/20 — Private (4094 addresses) 10.0.16.0/20 — Public 10.0.32.0/20

    - Spare 10.0.48.0/20 — Spare 10.0.64.0/18 — AZ B 10.0.64.0/20 — Private 10.0.80.0/20 - Public 10.0.96.0/20 — Spare 10.0.112.0/20 - Spare 10.0.128.0/18 — Spare 10.0.192.0/18 - Spare 10.1.0.0/16 - Development 10.2.0.0/16 - Stage
  3. Use Instances(update(their(CNAME(on(start #!/bin/bash # Add to /etc/rc.local # Requires Boto

    DNS_ADDRESS="`ec2metadata | grep 'public-hostname:' | cut -d ' ' -f 2`" /usr/local/bin/route53 change_record <KEY> xxx.ecosio.com. CNAME $DNS_ADDRESS 300
  4. { "Statement": [ { "Effect": "Allow", "Action": [ "s3:ListAllMyBuckets", "s3:ListBucket"

    ], "Resource": "arn:aws:s3:::*" }, { "Action": [ "s3:PutObject", "s3:GetObject", "s3:DeleteObject" ], "Effect": "Allow", "Resource": "arn:aws:s3:::com.example.backup/*" } ] }
  5. { "Statement": [ { "Effect": "Allow", "Action": "*", "Resource": "*"

    }, { "Effect": "Deny", "Action": "*", "Resource": "*", "Condition": { "NotIpAddress": { "aws:SourceIp": ["10.0.0.0/24", "10.10.0.0/24"] } } } ] }
  6. { "Records": [ { "eventVersion": "1.0", "userIdentity": { "type": "IAMUser",

    "principalId": "EX_PRINCIPAL_ID", "arn": "arn:aws:iam::123456789012:user/Alice", "accountId": "123456789012", "accessKeyId": "EXAMPLE_KEY_ID", "userName": "Alice" }, "eventTime": "2014-09-09T19:01:59Z", "eventSource": "ec2.amazonaws.com", "eventName": "StopInstances", "awsRegion": "eu-west-1", "sourceIPAddress": "205.251.233.176", "userAgent": "ec2-api-tools 1.6.12.2", "requestParameters": { "instancesSet": { "items": [ { "instanceId": "i-ebeaf9e2" } ] }, "force": false }, ... }, ... ] }