the best of both worlds: implementing hybrid it with aws (ent218) | aws re:invent 2013
DESCRIPTION
(Presented by RightScale) With the increased use of cloud services, organizations are faced with finding the most efficient way to leverage existing IT infrastructure alongside cloud-based compute, storage, and networking resources. This has resulted in the rise of hybrid infrastructure so IT teams can deliver agility and performance with visibility and control. At RightScale, we’ve implemented some of the world’s largest hybrid IT deployments. In this session, we share implementation approaches, architecture design considerations, and steps for a successful hybrid IT model. This session covers: -How to develop a strategy and framework for a successful path to hybrid IT -How to prioritize applications for public cloud versus on-premises -How to manage multiple compute resource pools through a unified management framework -Implementation and continuous improvement of a hybrid IT environment Examples of enterprise hybrid IT implementations include cloudbursting, high availability, and disaster recovery.TRANSCRIPT
![Page 1: The Best of Both Worlds: Implementing Hybrid IT with AWS (ENT218) | AWS re:Invent 2013](https://reader034.vdocuments.mx/reader034/viewer/2022042623/54b4c33f4a795967178b462a/html5/thumbnails/1.jpg)
© 2013 Amazon.com, Inc. and its affiliates. All rights reserved. May not be copied, modified, or distributed in whole or in part without the express consent of Amazon.com, Inc.
Becoming a Command Line Expert with the AWS
CLI
James Saryerwinnie, Amazon Web Services
November 14, 2013
![Page 2: The Best of Both Worlds: Implementing Hybrid IT with AWS (ENT218) | AWS re:Invent 2013](https://reader034.vdocuments.mx/reader034/viewer/2022042623/54b4c33f4a795967178b462a/html5/thumbnails/2.jpg)
AWS Command Line Interface
![Page 3: The Best of Both Worlds: Implementing Hybrid IT with AWS (ENT218) | AWS re:Invent 2013](https://reader034.vdocuments.mx/reader034/viewer/2022042623/54b4c33f4a795967178b462a/html5/thumbnails/3.jpg)
AWS Command Line Interface
Unified tool to manage your AWS services
![Page 4: The Best of Both Worlds: Implementing Hybrid IT with AWS (ENT218) | AWS re:Invent 2013](https://reader034.vdocuments.mx/reader034/viewer/2022042623/54b4c33f4a795967178b462a/html5/thumbnails/4.jpg)
One Tool
![Page 5: The Best of Both Worlds: Implementing Hybrid IT with AWS (ENT218) | AWS re:Invent 2013](https://reader034.vdocuments.mx/reader034/viewer/2022042623/54b4c33f4a795967178b462a/html5/thumbnails/5.jpg)
One Tool
Installation
![Page 6: The Best of Both Worlds: Implementing Hybrid IT with AWS (ENT218) | AWS re:Invent 2013](https://reader034.vdocuments.mx/reader034/viewer/2022042623/54b4c33f4a795967178b462a/html5/thumbnails/6.jpg)
One Tool
Configuration
Installation
![Page 7: The Best of Both Worlds: Implementing Hybrid IT with AWS (ENT218) | AWS re:Invent 2013](https://reader034.vdocuments.mx/reader034/viewer/2022042623/54b4c33f4a795967178b462a/html5/thumbnails/7.jpg)
One Tool
Configuration
Installation
![Page 8: The Best of Both Worlds: Implementing Hybrid IT with AWS (ENT218) | AWS re:Invent 2013](https://reader034.vdocuments.mx/reader034/viewer/2022042623/54b4c33f4a795967178b462a/html5/thumbnails/8.jpg)
Installation
Windows:
32-bit MSI: http://s3.amazonaws.com/aws-cli/AWSCLI32.msi
64-bit MSI: http://s3.amazonaws.com/aws-cli/AWSCLI64.msi
Bundled Installer: http://aws-cli.s3.amazonaws.com/awscli-bundle.zip
![Page 9: The Best of Both Worlds: Implementing Hybrid IT with AWS (ENT218) | AWS re:Invent 2013](https://reader034.vdocuments.mx/reader034/viewer/2022042623/54b4c33f4a795967178b462a/html5/thumbnails/9.jpg)
Bundled Installer
$ wget http://s3.amazonaws.com/aws-cli/awscli-bundle.zip
$ unzip awscli-bundle.zip
$ ./install
$ ~/.local/lib/aws/bin/aws --version
![Page 10: The Best of Both Worlds: Implementing Hybrid IT with AWS (ENT218) | AWS re:Invent 2013](https://reader034.vdocuments.mx/reader034/viewer/2022042623/54b4c33f4a795967178b462a/html5/thumbnails/10.jpg)
Pip
$ pip install --upgrade awscli
![Page 11: The Best of Both Worlds: Implementing Hybrid IT with AWS (ENT218) | AWS re:Invent 2013](https://reader034.vdocuments.mx/reader034/viewer/2022042623/54b4c33f4a795967178b462a/html5/thumbnails/11.jpg)
One Tool
Configuration
Installation
![Page 12: The Best of Both Worlds: Implementing Hybrid IT with AWS (ENT218) | AWS re:Invent 2013](https://reader034.vdocuments.mx/reader034/viewer/2022042623/54b4c33f4a795967178b462a/html5/thumbnails/12.jpg)
Credential Configuration
IAM Role Environment Config File: ~/.aws/config
Automatic AWS_ACCESS_KEY_ID AWS_SECRET_ACCESS_KEY
aws_access_key_id aws_secret_access_key
![Page 13: The Best of Both Worlds: Implementing Hybrid IT with AWS (ENT218) | AWS re:Invent 2013](https://reader034.vdocuments.mx/reader034/viewer/2022042623/54b4c33f4a795967178b462a/html5/thumbnails/13.jpg)
Configuring
$ aws configure AWS Access Key ID [None]: AWS Secret Access Key [None]: Default region name [None]: Default output format [json]:
![Page 14: The Best of Both Worlds: Implementing Hybrid IT with AWS (ENT218) | AWS re:Invent 2013](https://reader034.vdocuments.mx/reader034/viewer/2022042623/54b4c33f4a795967178b462a/html5/thumbnails/14.jpg)
Configuring
[default] aws_access_key_id = EXAMPLE aws_secret_access_key = EXAMPLEKEY region = us-west-2 output = json
![Page 15: The Best of Both Worlds: Implementing Hybrid IT with AWS (ENT218) | AWS re:Invent 2013](https://reader034.vdocuments.mx/reader034/viewer/2022042623/54b4c33f4a795967178b462a/html5/thumbnails/15.jpg)
One Tool
Configuration
Installation
![Page 16: The Best of Both Worlds: Implementing Hybrid IT with AWS (ENT218) | AWS re:Invent 2013](https://reader034.vdocuments.mx/reader034/viewer/2022042623/54b4c33f4a795967178b462a/html5/thumbnails/16.jpg)
One Tool
Configuration
Installation
![Page 17: The Best of Both Worlds: Implementing Hybrid IT with AWS (ENT218) | AWS re:Invent 2013](https://reader034.vdocuments.mx/reader034/viewer/2022042623/54b4c33f4a795967178b462a/html5/thumbnails/17.jpg)
Demo
![Page 18: The Best of Both Worlds: Implementing Hybrid IT with AWS (ENT218) | AWS re:Invent 2013](https://reader034.vdocuments.mx/reader034/viewer/2022042623/54b4c33f4a795967178b462a/html5/thumbnails/18.jpg)
Let’s run a command
![Page 19: The Best of Both Worlds: Implementing Hybrid IT with AWS (ENT218) | AWS re:Invent 2013](https://reader034.vdocuments.mx/reader034/viewer/2022042623/54b4c33f4a795967178b462a/html5/thumbnails/19.jpg)
$ aws ec2 describe-instances { "Reservations": [] }
![Page 20: The Best of Both Worlds: Implementing Hybrid IT with AWS (ENT218) | AWS re:Invent 2013](https://reader034.vdocuments.mx/reader034/viewer/2022042623/54b4c33f4a795967178b462a/html5/thumbnails/20.jpg)
$ aws ec2 describe-instances { "Reservations": [] }
![Page 21: The Best of Both Worlds: Implementing Hybrid IT with AWS (ENT218) | AWS re:Invent 2013](https://reader034.vdocuments.mx/reader034/viewer/2022042623/54b4c33f4a795967178b462a/html5/thumbnails/21.jpg)
$ aws ec2 describe-instances { "Reservations": [] }
![Page 22: The Best of Both Worlds: Implementing Hybrid IT with AWS (ENT218) | AWS re:Invent 2013](https://reader034.vdocuments.mx/reader034/viewer/2022042623/54b4c33f4a795967178b462a/html5/thumbnails/22.jpg)
$ aws ec2 describe-instances { "Reservations": [] }
![Page 23: The Best of Both Worlds: Implementing Hybrid IT with AWS (ENT218) | AWS re:Invent 2013](https://reader034.vdocuments.mx/reader034/viewer/2022042623/54b4c33f4a795967178b462a/html5/thumbnails/23.jpg)
$ aws ec2 describe-instances { "Reservations": [] }
![Page 24: The Best of Both Worlds: Implementing Hybrid IT with AWS (ENT218) | AWS re:Invent 2013](https://reader034.vdocuments.mx/reader034/viewer/2022042623/54b4c33f4a795967178b462a/html5/thumbnails/24.jpg)
$ aws ec2 describe-instances
service (command) operation (subcommand)
![Page 25: The Best of Both Worlds: Implementing Hybrid IT with AWS (ENT218) | AWS re:Invent 2013](https://reader034.vdocuments.mx/reader034/viewer/2022042623/54b4c33f4a795967178b462a/html5/thumbnails/25.jpg)
Command with Arguments
$ aws ec2 import-key-pair \ --key-name mykey \ --public-key-material file:///home/user/.ssh/id_rsa.pub
![Page 26: The Best of Both Worlds: Implementing Hybrid IT with AWS (ENT218) | AWS re:Invent 2013](https://reader034.vdocuments.mx/reader034/viewer/2022042623/54b4c33f4a795967178b462a/html5/thumbnails/26.jpg)
Command with Arguments
$ aws ec2 import-key-pair \ --key-name mykey \ --public-key-material file:///home/user/.ssh/id_rsa.pub
![Page 27: The Best of Both Worlds: Implementing Hybrid IT with AWS (ENT218) | AWS re:Invent 2013](https://reader034.vdocuments.mx/reader034/viewer/2022042623/54b4c33f4a795967178b462a/html5/thumbnails/27.jpg)
Command with Arguments
$ aws ec2 import-key-pair \ --key-name mykey \ --public-key-material file:///home/user/.ssh/id_rsa.pub
![Page 28: The Best of Both Worlds: Implementing Hybrid IT with AWS (ENT218) | AWS re:Invent 2013](https://reader034.vdocuments.mx/reader034/viewer/2022042623/54b4c33f4a795967178b462a/html5/thumbnails/28.jpg)
Feature
For any parameter value
• file://<filename>
• http://<url>
• https://<url>
![Page 29: The Best of Both Worlds: Implementing Hybrid IT with AWS (ENT218) | AWS re:Invent 2013](https://reader034.vdocuments.mx/reader034/viewer/2022042623/54b4c33f4a795967178b462a/html5/thumbnails/29.jpg)
How do I know what arguments to
use?
![Page 30: The Best of Both Worlds: Implementing Hybrid IT with AWS (ENT218) | AWS re:Invent 2013](https://reader034.vdocuments.mx/reader034/viewer/2022042623/54b4c33f4a795967178b462a/html5/thumbnails/30.jpg)
$ aws ec2 create-security-group help
![Page 31: The Best of Both Worlds: Implementing Hybrid IT with AWS (ENT218) | AWS re:Invent 2013](https://reader034.vdocuments.mx/reader034/viewer/2022042623/54b4c33f4a795967178b462a/html5/thumbnails/31.jpg)
$ aws ec2 create-security-group help
![Page 32: The Best of Both Worlds: Implementing Hybrid IT with AWS (ENT218) | AWS re:Invent 2013](https://reader034.vdocuments.mx/reader034/viewer/2022042623/54b4c33f4a795967178b462a/html5/thumbnails/32.jpg)
http://docs.aws.amazon.com/cli/latest/reference/ec2/create-security-group.html
![Page 33: The Best of Both Worlds: Implementing Hybrid IT with AWS (ENT218) | AWS re:Invent 2013](https://reader034.vdocuments.mx/reader034/viewer/2022042623/54b4c33f4a795967178b462a/html5/thumbnails/33.jpg)
Feature
Append help to any command
• aws service operation help
• aws service help
• aws help
![Page 34: The Best of Both Worlds: Implementing Hybrid IT with AWS (ENT218) | AWS re:Invent 2013](https://reader034.vdocuments.mx/reader034/viewer/2022042623/54b4c33f4a795967178b462a/html5/thumbnails/34.jpg)
Tab Completion
![Page 35: The Best of Both Worlds: Implementing Hybrid IT with AWS (ENT218) | AWS re:Invent 2013](https://reader034.vdocuments.mx/reader034/viewer/2022042623/54b4c33f4a795967178b462a/html5/thumbnails/35.jpg)
$ complete -C aws_completer aws
$ source bin/aws_zsh_completer.sh
$ complete aws 'p/*/`aws_completer`/'x
Bash zsh tcsh
![Page 36: The Best of Both Worlds: Implementing Hybrid IT with AWS (ENT218) | AWS re:Invent 2013](https://reader034.vdocuments.mx/reader034/viewer/2022042623/54b4c33f4a795967178b462a/html5/thumbnails/36.jpg)
$ aws ec2 describe-instances { "Reservations": [ { "OwnerId": "", "ReservationId": "r-12345", "Groups": [ { "GroupName": "SSH", "GroupId": "sg-abcdefg" } ], "Instances": [ { "State": { "Code": 16, "Name": "running" }, "KeyName": "mykey", "InstanceType": "t1.micro", } ] }, ] … }
![Page 37: The Best of Both Worlds: Implementing Hybrid IT with AWS (ENT218) | AWS re:Invent 2013](https://reader034.vdocuments.mx/reader034/viewer/2022042623/54b4c33f4a795967178b462a/html5/thumbnails/37.jpg)
Output Formats
JSON Table Text
Programmatic processing
Integrate with JSON tools
Interactive browsing
Easier to visually parse
Piping to text tools
Easy to parse
![Page 38: The Best of Both Worlds: Implementing Hybrid IT with AWS (ENT218) | AWS re:Invent 2013](https://reader034.vdocuments.mx/reader034/viewer/2022042623/54b4c33f4a795967178b462a/html5/thumbnails/38.jpg)
Feature
Multiple output formats
• --output json
• --output table
• --output text
![Page 39: The Best of Both Worlds: Implementing Hybrid IT with AWS (ENT218) | AWS re:Invent 2013](https://reader034.vdocuments.mx/reader034/viewer/2022042623/54b4c33f4a795967178b462a/html5/thumbnails/39.jpg)
Demo
![Page 40: The Best of Both Worlds: Implementing Hybrid IT with AWS (ENT218) | AWS re:Invent 2013](https://reader034.vdocuments.mx/reader034/viewer/2022042623/54b4c33f4a795967178b462a/html5/thumbnails/40.jpg)
Regions[*].RegionName
{
"Regions": [{
"Endpoint": "…",
"RegionName": "eu-west-1"
}, {
"Endpoint": "…",
"RegionName": "us-east-1"
}]
}
eu-west-1
us-east-1
![Page 41: The Best of Both Worlds: Implementing Hybrid IT with AWS (ENT218) | AWS re:Invent 2013](https://reader034.vdocuments.mx/reader034/viewer/2022042623/54b4c33f4a795967178b462a/html5/thumbnails/41.jpg)
Reservations[*].Instances[*].[InstanceId,State.Name]
{"Reservations": [
"Instances": [{
"InstanceId": "i-1",
"State": {"Name": "running"}
}, {
"InstanceId": "i-2",
"State": {"Name": "stopped"}
}]}
i-1 running
i-2 stopped
![Page 42: The Best of Both Worlds: Implementing Hybrid IT with AWS (ENT218) | AWS re:Invent 2013](https://reader034.vdocuments.mx/reader034/viewer/2022042623/54b4c33f4a795967178b462a/html5/thumbnails/42.jpg)
Reservations[*].Instances[*].{ID: InstanceId,State: State.Name}
{"Reservations": [
"Instances": [{
"InstanceId": "i-1",
"State": {"Name": "running"}
}, {
"InstanceId": "i-2",
"State": {"Name": "stopped"}
}]}
---------------------------
| DescribeInstances |
+-------------+-----------+
| ID | State |
+-------------+-----------+
| i-1 | running |
| i-2 | stopped |
+-------------+-----------+
![Page 43: The Best of Both Worlds: Implementing Hybrid IT with AWS (ENT218) | AWS re:Invent 2013](https://reader034.vdocuments.mx/reader034/viewer/2022042623/54b4c33f4a795967178b462a/html5/thumbnails/43.jpg)
Data Query Result
{"foo": "bar"} foo "bar"
{"foo": {"bar": "baz"}} foo.bar baz
{"foo": [0, 1]} foo[1] 1
{"bar": 1, "baz": 2} foo or bar 1
{"a": 1, "b": 2, "c": 3} [a, b] [1, 2]
{"a": 1, "b": 2, "c": 3} {a: a, other: b} {"a": 1, "other": 2}
[{"a": 1}, {"a": 2}, {"a": 3}, {"a": 4}]
[*].a [1, 2, 3, 4]
![Page 44: The Best of Both Worlds: Implementing Hybrid IT with AWS (ENT218) | AWS re:Invent 2013](https://reader034.vdocuments.mx/reader034/viewer/2022042623/54b4c33f4a795967178b462a/html5/thumbnails/44.jpg)
Feature
Query response data
• Use --query to create the
exact output you want.
http://jmespath.readthedocs.org/en/latest/specification.html
![Page 45: The Best of Both Worlds: Implementing Hybrid IT with AWS (ENT218) | AWS re:Invent 2013](https://reader034.vdocuments.mx/reader034/viewer/2022042623/54b4c33f4a795967178b462a/html5/thumbnails/45.jpg)
aws ec2 describe-instances … --filters Name=instance-state-name,Values=running
![Page 46: The Best of Both Worlds: Implementing Hybrid IT with AWS (ENT218) | AWS re:Invent 2013](https://reader034.vdocuments.mx/reader034/viewer/2022042623/54b4c33f4a795967178b462a/html5/thumbnails/46.jpg)
--filters (list) A list of filters used to match properties for Instances. For a com- plete reference to the available filter keys for this operation, see the Amazon EC2 API reference. Shorthand Syntax: Key value pairs, where values are separated by commas. --filters Name=string1,Values=string1,string2 JSON Syntax: [ { "Name": "string", "Values": ["string", ...] } ... ]
![Page 47: The Best of Both Worlds: Implementing Hybrid IT with AWS (ENT218) | AWS re:Invent 2013](https://reader034.vdocuments.mx/reader034/viewer/2022042623/54b4c33f4a795967178b462a/html5/thumbnails/47.jpg)
--filters (list) A list of filters used to match properties for Instances. For a com- plete reference to the available filter keys for this operation, see the Amazon EC2 API reference . Shorthand Syntax: Key value pairs, where values are separated by commas. --filters Name=string1,Values=string1,string2 JSON Syntax: [ { "Name": "string", "Values": ["string", ...] } ... ]
![Page 48: The Best of Both Worlds: Implementing Hybrid IT with AWS (ENT218) | AWS re:Invent 2013](https://reader034.vdocuments.mx/reader034/viewer/2022042623/54b4c33f4a795967178b462a/html5/thumbnails/48.jpg)
--filters (list) A list of filters used to match properties for Instances. For a com- plete reference to the available filter keys for this operation, see the Amazon EC2 API reference . Shorthand Syntax: Key value pairs, where values are separated by commas. --filters Name=string1,Values=string1,string2 JSON Syntax: [ { "Name": "string", "Values": ["string", ...] } ... ]
![Page 49: The Best of Both Worlds: Implementing Hybrid IT with AWS (ENT218) | AWS re:Invent 2013](https://reader034.vdocuments.mx/reader034/viewer/2022042623/54b4c33f4a795967178b462a/html5/thumbnails/49.jpg)
--filters
[{"Name": "instance-state-name",
"Values":["running"]}]
Name=instance-state-name,Values=running
![Page 50: The Best of Both Worlds: Implementing Hybrid IT with AWS (ENT218) | AWS re:Invent 2013](https://reader034.vdocuments.mx/reader034/viewer/2022042623/54b4c33f4a795967178b462a/html5/thumbnails/50.jpg)
Feature
Shorthand Syntax
• Use Shorthand Syntax to
specify parameter values
![Page 51: The Best of Both Worlds: Implementing Hybrid IT with AWS (ENT218) | AWS re:Invent 2013](https://reader034.vdocuments.mx/reader034/viewer/2022042623/54b4c33f4a795967178b462a/html5/thumbnails/51.jpg)
Large Responses
![Page 52: The Best of Both Worlds: Implementing Hybrid IT with AWS (ENT218) | AWS re:Invent 2013](https://reader034.vdocuments.mx/reader034/viewer/2022042623/54b4c33f4a795967178b462a/html5/thumbnails/52.jpg)
1 100000
![Page 53: The Best of Both Worlds: Implementing Hybrid IT with AWS (ENT218) | AWS re:Invent 2013](https://reader034.vdocuments.mx/reader034/viewer/2022042623/54b4c33f4a795967178b462a/html5/thumbnails/53.jpg)
1 1000 2000
![Page 54: The Best of Both Worlds: Implementing Hybrid IT with AWS (ENT218) | AWS re:Invent 2013](https://reader034.vdocuments.mx/reader034/viewer/2022042623/54b4c33f4a795967178b462a/html5/thumbnails/54.jpg)
1 100000
![Page 55: The Best of Both Worlds: Implementing Hybrid IT with AWS (ENT218) | AWS re:Invent 2013](https://reader034.vdocuments.mx/reader034/viewer/2022042623/54b4c33f4a795967178b462a/html5/thumbnails/55.jpg)
Page Size
NextToken
![Page 56: The Best of Both Worlds: Implementing Hybrid IT with AWS (ENT218) | AWS re:Invent 2013](https://reader034.vdocuments.mx/reader034/viewer/2022042623/54b4c33f4a795967178b462a/html5/thumbnails/56.jpg)
1 1000 2000
--max-items 3500
![Page 57: The Best of Both Worlds: Implementing Hybrid IT with AWS (ENT218) | AWS re:Invent 2013](https://reader034.vdocuments.mx/reader034/viewer/2022042623/54b4c33f4a795967178b462a/html5/thumbnails/57.jpg)
1 1000 2000
--max-items 3500 --starting-token <blob>
![Page 58: The Best of Both Worlds: Implementing Hybrid IT with AWS (ENT218) | AWS re:Invent 2013](https://reader034.vdocuments.mx/reader034/viewer/2022042623/54b4c33f4a795967178b462a/html5/thumbnails/58.jpg)
Feature
Pagination
Use --starting-token and --max-items to
paginate results
![Page 59: The Best of Both Worlds: Implementing Hybrid IT with AWS (ENT218) | AWS re:Invent 2013](https://reader034.vdocuments.mx/reader034/viewer/2022042623/54b4c33f4a795967178b462a/html5/thumbnails/59.jpg)
We've
Learned
• file://
• aws help
• Tab Completion
• --output
• --query
• Shorthand Syntax
• Pagination
![Page 60: The Best of Both Worlds: Implementing Hybrid IT with AWS (ENT218) | AWS re:Invent 2013](https://reader034.vdocuments.mx/reader034/viewer/2022042623/54b4c33f4a795967178b462a/html5/thumbnails/60.jpg)
Static Blog with Amazon S3
• Create blog locally
• Sync to Amazon S3
• AWS Identity and Access Management (IAM)
• Amazon Route53
![Page 61: The Best of Both Worlds: Implementing Hybrid IT with AWS (ENT218) | AWS re:Invent 2013](https://reader034.vdocuments.mx/reader034/viewer/2022042623/54b4c33f4a795967178b462a/html5/thumbnails/61.jpg)
Amazon S3
$ aws s3 mb s3://www.reinvent-cli-blog-demo.com/ $ aws s3 website www.reinvent-cli-blog-demo.com \ --index-document index.html
![Page 62: The Best of Both Worlds: Implementing Hybrid IT with AWS (ENT218) | AWS re:Invent 2013](https://reader034.vdocuments.mx/reader034/viewer/2022042623/54b4c33f4a795967178b462a/html5/thumbnails/62.jpg)
Create a user that has access only to the static blog
Full access only to the www.reinvent-cli-blog-demo.com bucket
![Page 63: The Best of Both Worlds: Implementing Hybrid IT with AWS (ENT218) | AWS re:Invent 2013](https://reader034.vdocuments.mx/reader034/viewer/2022042623/54b4c33f4a795967178b462a/html5/thumbnails/63.jpg)
AWS IAM $ aws iam create-user --user-name static-blog { "User": { "UserName": "static-blog", "Path": "/", "CreateDate": "2013-10-18T18:46:39.044Z", "UserId": "EXAMPLEUSERID", "Arn": "arn:aws:iam::12345:user/static-blog" } }
![Page 64: The Best of Both Worlds: Implementing Hybrid IT with AWS (ENT218) | AWS re:Invent 2013](https://reader034.vdocuments.mx/reader034/viewer/2022042623/54b4c33f4a795967178b462a/html5/thumbnails/64.jpg)
AWS IAM $ aws iam create-access-key --user-name static-blog { "AccessKey": { "UserName": "static-blog", "Status": "Active", "CreateDate": "2013-10-18T18:47:38.913Z", "SecretAccessKey": "SECRET_KEY", "AccessKeyId": ”ACCESS_KEY" } }
![Page 65: The Best of Both Worlds: Implementing Hybrid IT with AWS (ENT218) | AWS re:Invent 2013](https://reader034.vdocuments.mx/reader034/viewer/2022042623/54b4c33f4a795967178b462a/html5/thumbnails/65.jpg)
AWS IAM $ aws iam put-user-policy --user-name static-blog \ --policy-name static-blog-s3-access \ --policy-document file://singlebucket.json
![Page 66: The Best of Both Worlds: Implementing Hybrid IT with AWS (ENT218) | AWS re:Invent 2013](https://reader034.vdocuments.mx/reader034/viewer/2022042623/54b4c33f4a795967178b462a/html5/thumbnails/66.jpg)
AWS IAM $ aws iam put-user-policy --user-name static-blog \ --policy-name static-blog-s3-access \ --policy-document file://singlebucket.json
![Page 67: The Best of Both Worlds: Implementing Hybrid IT with AWS (ENT218) | AWS re:Invent 2013](https://reader034.vdocuments.mx/reader034/viewer/2022042623/54b4c33f4a795967178b462a/html5/thumbnails/67.jpg)
AWS IAM { "Statement": [ { "Sid": "Stmt12345678", "Action": [ "s3:*" ], "Effect": "Allow", "Resource": [ "arn:aws:s3:::www.reinvent-cli-blog-demo.com/*", "arn:aws:s3:::www.reinvent-cli-blog-demo.com" ] } ] }
![Page 68: The Best of Both Worlds: Implementing Hybrid IT with AWS (ENT218) | AWS re:Invent 2013](https://reader034.vdocuments.mx/reader034/viewer/2022042623/54b4c33f4a795967178b462a/html5/thumbnails/68.jpg)
How do I tell the CLI about this new
user?
![Page 69: The Best of Both Worlds: Implementing Hybrid IT with AWS (ENT218) | AWS re:Invent 2013](https://reader034.vdocuments.mx/reader034/viewer/2022042623/54b4c33f4a795967178b462a/html5/thumbnails/69.jpg)
aws configure --profile staticblog
![Page 70: The Best of Both Worlds: Implementing Hybrid IT with AWS (ENT218) | AWS re:Invent 2013](https://reader034.vdocuments.mx/reader034/viewer/2022042623/54b4c33f4a795967178b462a/html5/thumbnails/70.jpg)
[default] … [profile staticblog] aws_access_key = ACCESS_KEY aws_secrete_access_key = SECRET_KEY region = us-west-2
![Page 71: The Best of Both Worlds: Implementing Hybrid IT with AWS (ENT218) | AWS re:Invent 2013](https://reader034.vdocuments.mx/reader034/viewer/2022042623/54b4c33f4a795967178b462a/html5/thumbnails/71.jpg)
Pushing Blog Content
aws s3 sync . s3://www.reinvent-cli-blog-demo.com/ \ --acl public-read \ --delete \ --profile staticblog
![Page 72: The Best of Both Worlds: Implementing Hybrid IT with AWS (ENT218) | AWS re:Invent 2013](https://reader034.vdocuments.mx/reader034/viewer/2022042623/54b4c33f4a795967178b462a/html5/thumbnails/72.jpg)
Pushing Blog Content
aws s3 sync . s3://www.reinvent-cli-blog-demo.com/ \ --acl public-read \ --delete \ --profile staticblog
![Page 73: The Best of Both Worlds: Implementing Hybrid IT with AWS (ENT218) | AWS re:Invent 2013](https://reader034.vdocuments.mx/reader034/viewer/2022042623/54b4c33f4a795967178b462a/html5/thumbnails/73.jpg)
Pushing Blog Content
aws s3 sync . s3://www.reinvent-cli-blog-demo.com/ \ --acl public-read \ --delete \ --profile staticblog
![Page 74: The Best of Both Worlds: Implementing Hybrid IT with AWS (ENT218) | AWS re:Invent 2013](https://reader034.vdocuments.mx/reader034/viewer/2022042623/54b4c33f4a795967178b462a/html5/thumbnails/74.jpg)
Pushing Blog Content
aws s3 sync . s3://www.reinvent-cli-blog-demo.com/ \ --acl public-read \ --delete \ --profile staticblog
![Page 75: The Best of Both Worlds: Implementing Hybrid IT with AWS (ENT218) | AWS re:Invent 2013](https://reader034.vdocuments.mx/reader034/viewer/2022042623/54b4c33f4a795967178b462a/html5/thumbnails/75.jpg)
Pushing Blog Content
aws s3 sync . s3://www.reinvent-cli-blog-demo.com/ \ --acl public-read \ --delete \ --profile staticblog
![Page 76: The Best of Both Worlds: Implementing Hybrid IT with AWS (ENT218) | AWS re:Invent 2013](https://reader034.vdocuments.mx/reader034/viewer/2022042623/54b4c33f4a795967178b462a/html5/thumbnails/76.jpg)
Amazon S3 Sync
![Page 77: The Best of Both Worlds: Implementing Hybrid IT with AWS (ENT218) | AWS re:Invent 2013](https://reader034.vdocuments.mx/reader034/viewer/2022042623/54b4c33f4a795967178b462a/html5/thumbnails/77.jpg)
Amazon S3 Sync
![Page 78: The Best of Both Worlds: Implementing Hybrid IT with AWS (ENT218) | AWS re:Invent 2013](https://reader034.vdocuments.mx/reader034/viewer/2022042623/54b4c33f4a795967178b462a/html5/thumbnails/78.jpg)
largefile-part-1
largefile-part-2
largefile-part-3
largefile-part-4
delete-file smallfile
Amazon S3 Sync
![Page 79: The Best of Both Worlds: Implementing Hybrid IT with AWS (ENT218) | AWS re:Invent 2013](https://reader034.vdocuments.mx/reader034/viewer/2022042623/54b4c33f4a795967178b462a/html5/thumbnails/79.jpg)
Feature
Amazon S3 Sync
• Sync new/changed files
• Files uploaded in parallel
• Large files split into
chunks
![Page 80: The Best of Both Worlds: Implementing Hybrid IT with AWS (ENT218) | AWS re:Invent 2013](https://reader034.vdocuments.mx/reader034/viewer/2022042623/54b4c33f4a795967178b462a/html5/thumbnails/80.jpg)
Amazon Route53
![Page 81: The Best of Both Worlds: Implementing Hybrid IT with AWS (ENT218) | AWS re:Invent 2013](https://reader034.vdocuments.mx/reader034/viewer/2022042623/54b4c33f4a795967178b462a/html5/thumbnails/81.jpg)
$ aws route53 create-hosted-zone --name www.reinvent-cli-blog-demo.com \ --caller-reference reinvent-cli-blog-demo { "HostedZone": { … "Id": "/hostedzone/Z1TI9W0V4R87XY", "Name": "www.reinvent-cli-blog-demo.com" }, "DelegationSet": { "NameServers": [ "ns-abc.awsdns-20.com", "ns-abcd.awsdns-49.org" .. ] } }
Amazon Route53
![Page 82: The Best of Both Worlds: Implementing Hybrid IT with AWS (ENT218) | AWS re:Invent 2013](https://reader034.vdocuments.mx/reader034/viewer/2022042623/54b4c33f4a795967178b462a/html5/thumbnails/82.jpg)
aws route53 change-resource-record-sets --hosted-zone-id "/hostedzone/Z1TI9W0V4R87XY" \ --change-batch file://changebatch.json { "ChangeInfo": { "Status": "PENDING", "Comment": "Add S3 Bucket", "SubmittedAt": "2013-10-31T18:37:34.281Z", "Id": "/change/C1AG4RL3JT78JG" } }
Amazon Route53
![Page 83: The Best of Both Worlds: Implementing Hybrid IT with AWS (ENT218) | AWS re:Invent 2013](https://reader034.vdocuments.mx/reader034/viewer/2022042623/54b4c33f4a795967178b462a/html5/thumbnails/83.jpg)
file://changebatch.json { "Comment": "Add S3 Bucket", "Changes": [ { "Action": "CREATE", "ResourceRecordSet": { "Name": "www.reinvent-cli-blog-demo.com", "Type": "A", "AliasTarget": { "HostedZoneId": "Z3BJ6K6RIION7M", "EvaluateTargetHealth": false, "DNSName": "s3-website-us-west-2.amazonaws.com" } } } ] }
Amazon Route53
![Page 84: The Best of Both Worlds: Implementing Hybrid IT with AWS (ENT218) | AWS re:Invent 2013](https://reader034.vdocuments.mx/reader034/viewer/2022042623/54b4c33f4a795967178b462a/html5/thumbnails/84.jpg)
Demo
![Page 85: The Best of Both Worlds: Implementing Hybrid IT with AWS (ENT218) | AWS re:Invent 2013](https://reader034.vdocuments.mx/reader034/viewer/2022042623/54b4c33f4a795967178b462a/html5/thumbnails/85.jpg)
Additional Topics
![Page 86: The Best of Both Worlds: Implementing Hybrid IT with AWS (ENT218) | AWS re:Invent 2013](https://reader034.vdocuments.mx/reader034/viewer/2022042623/54b4c33f4a795967178b462a/html5/thumbnails/86.jpg)
Botocore
_regions.json ec2.json redshift.json _retry.json elasticache.json route53.json autoscaling.json elasticbeanstalk.json s3.json cloudformation.json elastictranscoder.json ses.json cloudfront.json elb.json sns.json cloudsearch.json emr.json sqs.json cloudwatch.json iam.json storagegateway.json datapipeline.json importexport.json sts.json directconnect.json opsworks.json support.json dynamodb.json rds.json swf.json
![Page 87: The Best of Both Worlds: Implementing Hybrid IT with AWS (ENT218) | AWS re:Invent 2013](https://reader034.vdocuments.mx/reader034/viewer/2022042623/54b4c33f4a795967178b462a/html5/thumbnails/87.jpg)
ec2.json "api_version": "2013-10-01", "type": "query", "signature_version": "v2", "service_full_name": "Amazon Elastic Compute Cloud", "service_abbreviation": "Amazon EC2", "endpoint_prefix": "ec2", "operations": { "ActivateLicense": { "name": "ActivateLicense", "input": {…}, "output": {…}, } }
![Page 88: The Best of Both Worlds: Implementing Hybrid IT with AWS (ENT218) | AWS re:Invent 2013](https://reader034.vdocuments.mx/reader034/viewer/2022042623/54b4c33f4a795967178b462a/html5/thumbnails/88.jpg)
_retry.json "dynamodb": { "__default__": { "max_attempts": 10, "delay": { "type": "exponential", "base": 0.05, "growth_factor": 2 }, "policies": { "throughput_exceeded": { "applies_when": { "response": { "service_error_code": "ProvisionedThroughputExceededException", "http_status_code": 400 } } },
![Page 89: The Best of Both Worlds: Implementing Hybrid IT with AWS (ENT218) | AWS re:Invent 2013](https://reader034.vdocuments.mx/reader034/viewer/2022042623/54b4c33f4a795967178b462a/html5/thumbnails/89.jpg)
Plugins
![Page 90: The Best of Both Worlds: Implementing Hybrid IT with AWS (ENT218) | AWS re:Invent 2013](https://reader034.vdocuments.mx/reader034/viewer/2022042623/54b4c33f4a795967178b462a/html5/thumbnails/90.jpg)
Next Steps
• Check out the code on Github: http://github.com/aws/aws-cli
• Report bugs at Issues: http://github.com/aws/aws-cli/issues/
• Ask questions on our Forums:
https://forums.aws.amazon.com/forum.jspa?forumID=150
• Chat with us in the Developer Lounge (Boto 1:30pm, CLI 3:30pm)
![Page 91: The Best of Both Worlds: Implementing Hybrid IT with AWS (ENT218) | AWS re:Invent 2013](https://reader034.vdocuments.mx/reader034/viewer/2022042623/54b4c33f4a795967178b462a/html5/thumbnails/91.jpg)
Please give us your feedback on this
presentation
As a thank you, we will select prize
winners daily for completed surveys!
TLS304