amsterdam tel aviv - amazon web services€¦ · tel aviv...

102
TEL AVIV ©2015, Amazon Web Services, Inc. or its affiliates. All rights reserved Amsterdam

Upload: others

Post on 15-Jun-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Amsterdam TEL AVIV - Amazon Web Services€¦ · TEL AVIV ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved Amsterdam ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved

TEL AVIV

©2015,  Amazon  Web  Services,  Inc.  or  its  affiliates.  All  rights  reserved

Amsterdam

Page 2: Amsterdam TEL AVIV - Amazon Web Services€¦ · TEL AVIV ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved Amsterdam ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved

©2015,  Amazon  Web  Services,  Inc.  or  its  affiliates.  All  rights  reserved

Deep Dive: AWS Command Line Interface

Oliver Arafat, Technical Evangelist, AWS @OliverArafat

Page 3: Amsterdam TEL AVIV - Amazon Web Services€¦ · TEL AVIV ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved Amsterdam ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved

CRASH COURSE

Intro to the AWS CLI

FOUNDATION ADVANCED SCENARIOS

Exploring Key Functionality

Looking at Advanced CLI Features

Page 4: Amsterdam TEL AVIV - Amazon Web Services€¦ · TEL AVIV ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved Amsterdam ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved

Crash Course Intro to the AWS CLI

Page 5: Amsterdam TEL AVIV - Amazon Web Services€¦ · TEL AVIV ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved Amsterdam ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved

AWS Command Line Interface Unified tool to manage your AWS services

Page 6: Amsterdam TEL AVIV - Amazon Web Services€¦ · TEL AVIV ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved Amsterdam ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved

MSI (Windows)

Bundled (cross platform)

pip (cross platform)

Page 7: Amsterdam TEL AVIV - Amazon Web Services€¦ · TEL AVIV ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved Amsterdam ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved

aws  configure  

Page 8: Amsterdam TEL AVIV - Amazon Web Services€¦ · TEL AVIV ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved Amsterdam ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved

$  aws  ec2  describe-­‐instances  

Service (command) Operation (subcommand)

Page 9: Amsterdam TEL AVIV - Amazon Web Services€¦ · TEL AVIV ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved Amsterdam ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved

$  aws  iam  list-­‐access-­‐keys  

Service (command) Operation (subcommand)

Page 10: Amsterdam TEL AVIV - Amazon Web Services€¦ · TEL AVIV ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved Amsterdam ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved

{        "Places":  [                  {                            "City":  "Seattle",                    "State":  "WA"          },          {              "City":  "Las  Vegas",            "State":  "NV"          }        ]    

}      

--output json

Page 11: Amsterdam TEL AVIV - Amazon Web Services€¦ · TEL AVIV ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved Amsterdam ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved

PLACES    Seattle      WA  PLACES    Las  Vegas  NV  

--output text

Page 12: Amsterdam TEL AVIV - Amazon Web Services€¦ · TEL AVIV ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved Amsterdam ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved

-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐    |      SomeOperationName        |    +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+    ||                  Places              ||    |+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+|    ||  City              |  State      ||    |+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+|    ||  Seattle        |  WA            ||    ||  Las  Vegas    |  NV            ||    |+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+|    

--output table

Page 13: Amsterdam TEL AVIV - Amazon Web Services€¦ · TEL AVIV ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved Amsterdam ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved

All Outputs

JSON Text

PLACES    Seattle        WA  PLACES    Las  Vegas    NV  

Table

-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐    |        SomeOperationName      |    +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+    ||                  Places              ||    |+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+|    ||  City              |  State      ||    |+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+|    ||  Seattle        |  WA            ||    ||  Las  Vegas    |  NV            ||    |+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+|    

{        "Places":  [                  {                            "City":  "Seattle",              

     "State":  "WA"      },      {        "City":  ”Las  Vegas",      "State":  "NV"      }    

     ]    }      

Page 14: Amsterdam TEL AVIV - Amazon Web Services€¦ · TEL AVIV ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved Amsterdam ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved

Demo

Basic AWS CLI Usage

Page 15: Amsterdam TEL AVIV - Amazon Web Services€¦ · TEL AVIV ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved Amsterdam ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved

Foundation Exploring Key Functionality

Page 16: Amsterdam TEL AVIV - Amazon Web Services€¦ · TEL AVIV ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved Amsterdam ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved

Configuration

Page 17: Amsterdam TEL AVIV - Amazon Web Services€¦ · TEL AVIV ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved Amsterdam ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved

aws  configure    

Page 18: Amsterdam TEL AVIV - Amazon Web Services€¦ · TEL AVIV ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved Amsterdam ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved

aws  configure    

AWS  Access  Key  ID  [**ABCD]:    AWS  Secret  Access  Key  [****************EFGH]:    Default  region  name  [us-­‐west-­‐2]:    Default  output  format  [None]:      

Page 19: Amsterdam TEL AVIV - Amazon Web Services€¦ · TEL AVIV ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved Amsterdam ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved

aws  configure  <subcommand>    

Page 20: Amsterdam TEL AVIV - Amazon Web Services€¦ · TEL AVIV ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved Amsterdam ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved

list - list common configuration sources get  -­‐  get  the  value  of  a  single  config  var  set  -­‐  set  the  value  of  a  single  config  var  

aws  configure  <subcommand>    

Page 21: Amsterdam TEL AVIV - Amazon Web Services€¦ · TEL AVIV ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved Amsterdam ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved

aws  configure  get  region    

Page 22: Amsterdam TEL AVIV - Amazon Web Services€¦ · TEL AVIV ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved Amsterdam ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved

aws  configure  set  region  eu-­‐west-­‐1

Page 23: Amsterdam TEL AVIV - Amazon Web Services€¦ · TEL AVIV ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved Amsterdam ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved

A profile is a group of configuration values

Page 24: Amsterdam TEL AVIV - Amazon Web Services€¦ · TEL AVIV ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved Amsterdam ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved

aws  configure  -­‐-­‐profile  prod

Page 25: Amsterdam TEL AVIV - Amazon Web Services€¦ · TEL AVIV ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved Amsterdam ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved

aws  configure  set  profile.prod.region  eu-­‐west-­‐1

Page 26: Amsterdam TEL AVIV - Amazon Web Services€¦ · TEL AVIV ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved Amsterdam ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved

Configuration Files

~/.aws/credentials   ~/.aws/config  

•  Supported by all AWS SDKs •  Only contains credentials

•  Used only by the CLI •  Can contain credentials

(but not the default behavior)

Page 27: Amsterdam TEL AVIV - Amazon Web Services€¦ · TEL AVIV ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved Amsterdam ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved

~/.aws/credentials ~/.aws/config

Page 28: Amsterdam TEL AVIV - Amazon Web Services€¦ · TEL AVIV ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved Amsterdam ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved

aws configure set profile.prod.aws_access_key_id foo

~/.aws/credentials ~/.aws/config

Page 29: Amsterdam TEL AVIV - Amazon Web Services€¦ · TEL AVIV ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved Amsterdam ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved

aws configure set profile.prod.aws_access_key_id foo

~/.aws/credentials [prod] aws_access_key_id = foo

~/.aws/config

Page 30: Amsterdam TEL AVIV - Amazon Web Services€¦ · TEL AVIV ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved Amsterdam ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved

aws configure set profile.prod.aws_secret_access_key bar

~/.aws/credentials ~/.aws/config [prod] aws_access_key_id = foo

Page 31: Amsterdam TEL AVIV - Amazon Web Services€¦ · TEL AVIV ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved Amsterdam ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved

aws configure set profile.prod.aws_secret_access_key bar

~/.aws/credentials [prod] aws_access_key_id = foo aws_secret_access_key = bar

~/.aws/config

Page 32: Amsterdam TEL AVIV - Amazon Web Services€¦ · TEL AVIV ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved Amsterdam ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved

aws configure set profile.prod.region eu­west­1

~/.aws/credentials [prod] aws_access_key_id = foo aws_secret_access_key = bar

~/.aws/config

Page 33: Amsterdam TEL AVIV - Amazon Web Services€¦ · TEL AVIV ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved Amsterdam ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved

aws configure set profile.prod.region eu­west­1

~/.aws/credentials [prod] aws_access_key_id = foo aws_secret_access_key = bar

[profile prod] region = eu-west-1

~/.aws/config

Page 34: Amsterdam TEL AVIV - Amazon Web Services€¦ · TEL AVIV ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved Amsterdam ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved

aws configure set profile.prod.output text

~/.aws/credentials [prod] aws_access_key_id = foo aws_secret_access_key = bar

[profile prod] region = eu-west-1

~/.aws/config

Page 35: Amsterdam TEL AVIV - Amazon Web Services€¦ · TEL AVIV ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved Amsterdam ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved

aws configure set profile.prod.output text

~/.aws/credentials [prod] aws_access_key_id = foo aws_secret_access_key = bar

[profile prod] region = eu-west-1 output = text

~/.aws/config

Page 36: Amsterdam TEL AVIV - Amazon Web Services€¦ · TEL AVIV ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved Amsterdam ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved

create-new-user.sh

aws  iam  create-­‐user  -­‐-­‐user-­‐name  summit-­‐user    = aws  iam  create-­‐access-­‐key  -­‐-­‐user-­‐name  summit-­‐user  \  

 -­‐-­‐query   \      -­‐-­‐output  text

=  |  cut  -­‐d  -­‐f  1= |  cut  -­‐d  -­‐f  2

aws  configure    profile.summit.aws_access_key_id  aws  configure    profile.summit.secret_access_key  

Page 37: Amsterdam TEL AVIV - Amazon Web Services€¦ · TEL AVIV ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved Amsterdam ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved

aws  iam  create-­‐user  -­‐-­‐user-­‐name  summit-­‐user    = aws  iam  create-­‐access-­‐key  -­‐-­‐user-­‐name  summit-­‐user  \  

 -­‐-­‐query   \      -­‐-­‐output  text

=  |  cut  -­‐d  -­‐f  1= |  cut  -­‐d  -­‐f  2

aws  configure    profile.summit.aws_access_key_id  aws  configure    profile.summit.secret_access_key  

create-new-user.sh

Page 38: Amsterdam TEL AVIV - Amazon Web Services€¦ · TEL AVIV ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved Amsterdam ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved

aws  iam  create-­‐user  -­‐-­‐user-­‐name  summit-­‐user    = aws  iam  create-­‐access-­‐key  -­‐-­‐user-­‐name  summit-­‐user  \  

 -­‐-­‐query   \      -­‐-­‐output  text

=  |  cut  -­‐d  -­‐f  1= |  cut  -­‐d  -­‐f  2

aws  configure    profile.summit.aws_access_key_id  aws  configure    profile.summit.secret_access_key  

create-new-user.sh

Page 39: Amsterdam TEL AVIV - Amazon Web Services€¦ · TEL AVIV ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved Amsterdam ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved

aws  iam  create-­‐user  -­‐-­‐user-­‐name  summit-­‐user    = aws  iam  create-­‐access-­‐key  -­‐-­‐user-­‐name  summit-­‐user  \  

 -­‐-­‐query   \      -­‐-­‐output  text

=  |  cut  -­‐d  -­‐f  1= |  cut  -­‐d  -­‐f  2

aws  configure    profile.summit.aws_access_key_id  aws  configure    profile.summit.secret_access_key  

create-new-user.sh

Page 40: Amsterdam TEL AVIV - Amazon Web Services€¦ · TEL AVIV ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved Amsterdam ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved

aws  iam  create-­‐user  -­‐-­‐user-­‐name  summit-­‐user    = aws  iam  create-­‐access-­‐key  -­‐-­‐user-­‐name  summit-­‐user  \  

 -­‐-­‐query   \      -­‐-­‐output  text

=  |  cut  -­‐d  -­‐f  1= |  cut  -­‐d  -­‐f  2

aws  configure    profile.summit.aws_access_key_id  aws  configure    profile.summit.secret_access_key  

create-new-user.sh

Page 41: Amsterdam TEL AVIV - Amazon Web Services€¦ · TEL AVIV ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved Amsterdam ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved

aws  iam  create-­‐user  -­‐-­‐user-­‐name  summit-­‐user    = aws  iam  create-­‐access-­‐key  -­‐-­‐user-­‐name  summit-­‐user  \  

 -­‐-­‐query   \      -­‐-­‐output  text

=  |  cut  -­‐d  -­‐f  1= |  cut  -­‐d  -­‐f  2

aws  configure    profile.summit.aws_access_key_id  aws  configure    profile.summit.secret_access_key  

create-new-user.sh

Page 42: Amsterdam TEL AVIV - Amazon Web Services€¦ · TEL AVIV ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved Amsterdam ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved

Use the aws  configure  

suite of subcommands

Page 43: Amsterdam TEL AVIV - Amazon Web Services€¦ · TEL AVIV ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved Amsterdam ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved

Query

Page 44: Amsterdam TEL AVIV - Amazon Web Services€¦ · TEL AVIV ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved Amsterdam ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved

-­‐-­‐query  (string)      A  JMESPath  query  to  use  in  filtering  the  response  data.  

Page 45: Amsterdam TEL AVIV - Amazon Web Services€¦ · TEL AVIV ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved Amsterdam ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved

Implementation Details --query Processing

Page 46: Amsterdam TEL AVIV - Amazon Web Services€¦ · TEL AVIV ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved Amsterdam ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved

Implementation Details --query Processing

Page 47: Amsterdam TEL AVIV - Amazon Web Services€¦ · TEL AVIV ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved Amsterdam ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved

Implementation Details --query Processing

Page 48: Amsterdam TEL AVIV - Amazon Web Services€¦ · TEL AVIV ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved Amsterdam ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved

Implementation Details --query Processing

Page 49: Amsterdam TEL AVIV - Amazon Web Services€¦ · TEL AVIV ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved Amsterdam ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved

Implementation Details --query Processing

-­‐-­‐query  User[0].[UserName,Path,UserId]  

Page 50: Amsterdam TEL AVIV - Amazon Web Services€¦ · TEL AVIV ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved Amsterdam ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved

Implementation Details --query Processing

-­‐-­‐query  User[0].[UserName,Path,UserId]  

Page 51: Amsterdam TEL AVIV - Amazon Web Services€¦ · TEL AVIV ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved Amsterdam ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved

Implementation Details --query Processing

Page 52: Amsterdam TEL AVIV - Amazon Web Services€¦ · TEL AVIV ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved Amsterdam ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved

Implementation Details --query Processing

Page 53: Amsterdam TEL AVIV - Amazon Web Services€¦ · TEL AVIV ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved Amsterdam ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved

http://jmespath.org

A Query Language for JSON

Page 54: Amsterdam TEL AVIV - Amazon Web Services€¦ · TEL AVIV ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved Amsterdam ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved

Demo

JMESPATH

Page 55: Amsterdam TEL AVIV - Amazon Web Services€¦ · TEL AVIV ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved Amsterdam ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved

http://jmespath.org

A Query Language for JSON

Page 56: Amsterdam TEL AVIV - Amazon Web Services€¦ · TEL AVIV ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved Amsterdam ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved

Waiters

Page 57: Amsterdam TEL AVIV - Amazon Web Services€¦ · TEL AVIV ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved Amsterdam ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved

Amazon EC2 Instance State Transitions

Page 58: Amsterdam TEL AVIV - Amazon Web Services€¦ · TEL AVIV ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved Amsterdam ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved

ec2-instance-running.sh

#!/bin/bash    instance_id=$(aws  ec2  run-­‐instances  -­‐-­‐image-­‐id  ami-­‐12345  \  

 -­‐-­‐query  Reservations[].Instances[].InstanceId  \    -­‐-­‐output  text)  

instance_state=$(aws  ec2  describe-­‐instances  -­‐-­‐instance-­‐ids  $instance_id  \    -­‐-­‐query  'Reservations[].Instances[].State.Name')  

while  [  "$instance_state"  !=  "running"  ]    do    

 sleep  1            instance_state=$(aws  ec2  describe-­‐instances  -­‐-­‐instance-­‐ids  $instance_id  \  

 -­‐-­‐query  'Reservations[].Instances[].State.Name')    done  

Page 59: Amsterdam TEL AVIV - Amazon Web Services€¦ · TEL AVIV ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved Amsterdam ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved

#!/bin/bash    instance_id=$(aws  ec2  run-­‐instances  -­‐-­‐image-­‐id  ami-­‐12345  \  

 -­‐-­‐query  Reservations[].Instances[].InstanceId  \    -­‐-­‐output  text)  

instance_state=$(aws  ec2  describe-­‐instances  -­‐-­‐instance-­‐ids  $instance_id  \    -­‐-­‐query  'Reservations[].Instances[].State.Name')  

while  [  "$instance_state"  !=  "running"  ]    do    

 sleep  1            instance_state=$(aws  ec2  describe-­‐instances  -­‐-­‐instance-­‐ids  $instance_id  \  

 -­‐-­‐query  'Reservations[].Instances[].State.Name')    done  

ec2-instance-running.sh

Page 60: Amsterdam TEL AVIV - Amazon Web Services€¦ · TEL AVIV ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved Amsterdam ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved

#!/bin/bash    instance_id=$(aws  ec2  run-­‐instances  -­‐-­‐image-­‐id  ami-­‐12345  \  

 -­‐-­‐query  Reservations[].Instances[].InstanceId  \    -­‐-­‐output  text)  

instance_state=$(aws  ec2  describe-­‐instances  -­‐-­‐instance-­‐ids  $instance_id  \    -­‐-­‐query  'Reservations[].Instances[].State.Name')  

while  [  "$instance_state"  !=  "running"  ]    do    

 sleep  1            instance_state=$(aws  ec2  describe-­‐instances  -­‐-­‐instance-­‐ids  $instance_id  \  

 -­‐-­‐query  'Reservations[].Instances[].State.Name')    done  

ec2-instance-running.sh

Page 61: Amsterdam TEL AVIV - Amazon Web Services€¦ · TEL AVIV ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved Amsterdam ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved

#!/bin/bash    instance_id=$(aws  ec2  run-­‐instances  -­‐-­‐image-­‐id  ami-­‐12345  \  

 -­‐-­‐query  Reservations[].Instances[].InstanceId  \    -­‐-­‐output  text)  

instance_state=$(aws  ec2  describe-­‐instances  -­‐-­‐instance-­‐ids  $instance_id  \    -­‐-­‐query  'Reservations[].Instances[].State.Name')  

while  [  "$instance_state"  !=  "running"  ]    do    

 sleep  1            instance_state=$(aws  ec2  describe-­‐instances  -­‐-­‐instance-­‐ids  $instance_id  \  

 -­‐-­‐query  'Reservations[].Instances[].State.Name')    done  

ec2-instance-running.sh

Page 62: Amsterdam TEL AVIV - Amazon Web Services€¦ · TEL AVIV ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved Amsterdam ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved

#!/bin/bash    instance_id=$(aws  ec2  run-­‐instances  -­‐-­‐image-­‐id  ami-­‐12345  \  

 -­‐-­‐query  Reservations[].Instances[].InstanceId  \    -­‐-­‐output  text)  

instance_state=$(aws  ec2  describe-­‐instances  -­‐-­‐instance-­‐ids  $instance_id  \    -­‐-­‐query  'Reservations[].Instances[].State.Name')  

while  [  "$instance_state"  !=  "running"  ]    do    

 sleep  1            instance_state=$(aws  ec2  describe-­‐instances  -­‐-­‐instance-­‐ids  $instance_id  \  

 -­‐-­‐query  'Reservations[].Instances[].State.Name')    done  

ec2-instance-running.sh

Page 63: Amsterdam TEL AVIV - Amazon Web Services€¦ · TEL AVIV ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved Amsterdam ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved

#!/bin/bash    instance_id=$(aws  ec2  run-­‐instances  -­‐-­‐image-­‐id  ami-­‐12345  \  

 -­‐-­‐query  Reservations[].Instances[].InstanceId  \    -­‐-­‐output  text)  

instance_state=$(aws  ec2  describe-­‐instances  -­‐-­‐instance-­‐ids  $instance_id  \    -­‐-­‐query  'Reservations[].Instances[].State.Name')  

while  [  "$instance_state"  !=  "running"  ]    do    

 sleep  1            instance_state=$(aws  ec2  describe-­‐instances  -­‐-­‐instance-­‐ids  $instance_id  \  

 -­‐-­‐query  'Reservations[].Instances[].State.Name')    done  

ec2-instance-running.sh

• No timeouts

• Failure states

• Hand-written code

Page 64: Amsterdam TEL AVIV - Amazon Web Services€¦ · TEL AVIV ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved Amsterdam ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved

ec2-waiters.sh

instance_id=$(aws  ec2  run-­‐instances  -­‐-­‐image-­‐id  ami-­‐12345  \    -­‐-­‐query  Reservations[].Instances[].InstanceId  \    -­‐-­‐output  text)  

aws  ec2  wait  instance-­‐running  -­‐-­‐instance-­‐ids  $instance_id  

Page 65: Amsterdam TEL AVIV - Amazon Web Services€¦ · TEL AVIV ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved Amsterdam ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved

instance_id=$(aws  ec2  run-­‐instances  -­‐-­‐image-­‐id  ami-­‐12345  \    -­‐-­‐query  Reservations[].Instances[].InstanceId  \    -­‐-­‐output  text)  

aws  ec2  wait  instance-­‐running  -­‐-­‐instance-­‐ids  $instance_id  

ec2-waiters.sh

subcommand

Describe-instances options

waiter name

Page 66: Amsterdam TEL AVIV - Amazon Web Services€¦ · TEL AVIV ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved Amsterdam ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved

Advanced Scenarios Looking at advanced AWS CLI features

Page 67: Amsterdam TEL AVIV - Amazon Web Services€¦ · TEL AVIV ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved Amsterdam ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved

Templates

Page 68: Amsterdam TEL AVIV - Amazon Web Services€¦ · TEL AVIV ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved Amsterdam ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved

The AWS CLI is data driven

Page 69: Amsterdam TEL AVIV - Amazon Web Services€¦ · TEL AVIV ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved Amsterdam ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved

Implementation Details JSON Models

Page 70: Amsterdam TEL AVIV - Amazon Web Services€¦ · TEL AVIV ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved Amsterdam ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved

Implementation Details JSON Models

Page 71: Amsterdam TEL AVIV - Amazon Web Services€¦ · TEL AVIV ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved Amsterdam ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved

Implementation Details JSON Models

Page 72: Amsterdam TEL AVIV - Amazon Web Services€¦ · TEL AVIV ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved Amsterdam ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved

aws  ec2  run-­‐instances  -­‐-­‐cli-­‐input-­‐json  file://arguments.json  

Page 73: Amsterdam TEL AVIV - Amazon Web Services€¦ · TEL AVIV ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved Amsterdam ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved

aws  ec2  run-­‐instances  -­‐-­‐generate-­‐cli-­‐skeleton  

Page 74: Amsterdam TEL AVIV - Amazon Web Services€¦ · TEL AVIV ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved Amsterdam ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved

Demo

Creating and using JSON templates

Page 75: Amsterdam TEL AVIV - Amazon Web Services€¦ · TEL AVIV ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved Amsterdam ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved

Credential Providers

Page 76: Amsterdam TEL AVIV - Amazon Web Services€¦ · TEL AVIV ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved Amsterdam ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved

Credential Providers

Page 77: Amsterdam TEL AVIV - Amazon Web Services€¦ · TEL AVIV ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved Amsterdam ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved

Credential Providers

Page 78: Amsterdam TEL AVIV - Amazon Web Services€¦ · TEL AVIV ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved Amsterdam ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved

Credential Providers

Page 79: Amsterdam TEL AVIV - Amazon Web Services€¦ · TEL AVIV ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved Amsterdam ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved

Credential Providers

Page 80: Amsterdam TEL AVIV - Amazon Web Services€¦ · TEL AVIV ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved Amsterdam ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved

Credential Providers

Page 81: Amsterdam TEL AVIV - Amazon Web Services€¦ · TEL AVIV ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved Amsterdam ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved

Delegate access to AWS resources using AWS Identity and Access Management (IAM) roles

Page 82: Amsterdam TEL AVIV - Amazon Web Services€¦ · TEL AVIV ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved Amsterdam ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved

IAM Roles

Production Development

Page 83: Amsterdam TEL AVIV - Amazon Web Services€¦ · TEL AVIV ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved Amsterdam ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved

IAM Roles

Production Development

Page 84: Amsterdam TEL AVIV - Amazon Web Services€¦ · TEL AVIV ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved Amsterdam ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved

v

IAM Roles

Production Development

Role Policy

Trust Policy

role

Page 85: Amsterdam TEL AVIV - Amazon Web Services€¦ · TEL AVIV ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved Amsterdam ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved

IAM Roles

Production Development

AssumeRole

AWS Security Token Service

role

Page 86: Amsterdam TEL AVIV - Amazon Web Services€¦ · TEL AVIV ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved Amsterdam ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved

IAM Roles

Production Development

AssumeRole

AWS Security Token Service

role

token

Page 87: Amsterdam TEL AVIV - Amazon Web Services€¦ · TEL AVIV ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved Amsterdam ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved

IAM Roles

Production Development

AssumeRole

AWS Security Token Service

role

token

Page 88: Amsterdam TEL AVIV - Amazon Web Services€¦ · TEL AVIV ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved Amsterdam ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved

aws  configure  set  profile.prodrole.source_profile  dev  

aws  configure  set  profile.prodrole.role_arn  arn:aws:iam…  

configure-role.sh

Page 89: Amsterdam TEL AVIV - Amazon Web Services€¦ · TEL AVIV ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved Amsterdam ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved

~/.aws/credentials ~/.aws/config [dev] aws_access_key_id = foo aws_secret_access_key = bar

[profile prodrole] role_arn = arn:aws:iam....... source_profile = dev

Page 90: Amsterdam TEL AVIV - Amazon Web Services€¦ · TEL AVIV ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved Amsterdam ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved

~/.aws/credentials ~/.aws/config [dev] aws_access_key_id = foo aws_secret_access_key = bar

[profile prodrole] role_arn = arn:aws:iam source_profile = dev

Page 91: Amsterdam TEL AVIV - Amazon Web Services€¦ · TEL AVIV ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved Amsterdam ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved

Demo

Using roles with the AWS CLI

Page 92: Amsterdam TEL AVIV - Amazon Web Services€¦ · TEL AVIV ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved Amsterdam ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved

Amazon S3 Streaming

Page 93: Amsterdam TEL AVIV - Amazon Web Services€¦ · TEL AVIV ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved Amsterdam ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved

aws  s3  cp

Page 94: Amsterdam TEL AVIV - Amazon Web Services€¦ · TEL AVIV ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved Amsterdam ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved

We want to avoid disk

Page 95: Amsterdam TEL AVIV - Amazon Web Services€¦ · TEL AVIV ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved Amsterdam ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved

aws  s3  cp  –  s3://bucket/key

Page 96: Amsterdam TEL AVIV - Amazon Web Services€¦ · TEL AVIV ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved Amsterdam ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved

aws  s3  cp  s3://bucket/key  -­‐

Page 97: Amsterdam TEL AVIV - Amazon Web Services€¦ · TEL AVIV ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved Amsterdam ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved

Compress

Page 98: Amsterdam TEL AVIV - Amazon Web Services€¦ · TEL AVIV ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved Amsterdam ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved

aws  s3  cp  s3://bucket/key  -­‐  |  \  bzip2  -­‐-­‐best  |  \    aws  s3  cp  -­‐  s3://bucket/key.bz2

Page 99: Amsterdam TEL AVIV - Amazon Web Services€¦ · TEL AVIV ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved Amsterdam ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved

Summary

Page 100: Amsterdam TEL AVIV - Amazon Web Services€¦ · TEL AVIV ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved Amsterdam ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved

Wrapping Up

•  Configuration •  Waiters •  Query

•  Templates •  Credential Providers •  Amazon S3 Streaming

Page 101: Amsterdam TEL AVIV - Amazon Web Services€¦ · TEL AVIV ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved Amsterdam ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved

For More Information

https://github.com/aws/aws-cli http://docs.aws.amazon.com/cli/latest/userguide/ https://forums.aws.amazon.com/forum.jspa?forumID=150 http://docs.aws.amazon.com/cli/latest/reference/ http://jmespath.org/

Page 102: Amsterdam TEL AVIV - Amazon Web Services€¦ · TEL AVIV ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved Amsterdam ©2015,’Amazon’Web’Services,’Inc.’or’its’affiliates.’All’rights’reserved

TEL AVIV

Oliver Arafat, Technical Evangelist, AWS @OliverArafat

Amsterdam