3. 2016 ⓒ BESPIN GLOBAL
시간 내용 담당자
14:00-14:20 등록 및 실습 환경 설정 베스핀글로벌 SA
14:20-14:30 공지사항 및 파트너사 소개 PDM
14:30-15:00 파트너사 발표 세션 베스핀글로벌 SA
15:00-15:50 강사 주도식 실습 베스핀글로벌 SA
15:50-16:00 Coffee Break
16:00-17:50 자유 주제 선택 실습 AWS SA
17:50-18:00 종료 공지사항 김진영 매니저
일정
4. AWS 서비스에 접속하는 3가지 방법
Management
Interface
CLI
SDK
Web
http://aws.amazon.com/tools/
http://aws.amazon.com/cli/
http://aws.amazon.com/console/
5. 1. AWS Management Console
• AWS Managemnet Console
• 고객사의 컴퓨팅, 스토리지, 그리고 기타 클라우드 리소
스를 관리하기 위한 사용하기 쉬운 그래픽 인터페이스
• 각 서비스를 위한 대부분의 기능을 지원하여, 콘솔 상에
서 대부분의 AWS 제품을 사용 가능
• AWS 관리 콘솔은 대부분의 컴퓨팅, 스토리지, 그리고
기타 AWS 서비스에 액세스해 관리하도록 도와주는
WEB UI
7. 2. AWS CLI(Command Line
Interface)
• CLI는 개발자와 같이 명령을 입력하는 것이 더 편
한 이들을 위한 도구. AWS 제품 별 CLI와 설명서에
대한 링크들을 하기 URL의 웹 페이지에서 확인
• 명령줄 도구는 개발자가 명령 프롬프트 상에서 직
접 명령을 실행할
8. 2016 ⓒ BESPIN GLOBAL
• AWS CLI(Command Line Interface)
• 명령줄 인터페이스 (CLI) 도구는 명령 프롬프트 상에서 AWS API와 바로 연동되는 편리한 Scripting
Interface를 제공. 일반적인 명령줄 프롬프트인 PROMPT> 접두사를 명령줄 텍스트에 붙여 표기
리눅스
$aws ec2 describe-regions
윈도우
C:>aws ec2 describe-regions
9. 3. AWS SDK(Software
Development Kit)
• SDK는 고객사에서 선호하는 개발 언어를 사용해
AWS 서비스에 쉽게 액세스.
• 각 개발 언어 별 SDK 참조 링크 확인
https://aws.amazon.com/ko/tools/
• 각 개발 언어 별 SDK Sample Code 참조 링크 확인
https://aws.amazon.com/code/
30. 2016 ⓒ BESPIN GLOBAL
Programmatic processing
Integrate with JSON tools
JSON TABLE TEXT
Interactive browsing
Easier to visually parse
Piping to text tools
Easy to parse
Output Format
31. 2016 ⓒ BESPIN GLOBAL
{
“Places”: [
{
“City”: “Seattle”,
“State”: “WA”
},
{
“City”: “Las Vegas”,
“State”: “NV”
}
]
}
JSON TABLE TEXT
--------------------------
|SomeOperationName|
+-----------------------+
|| Places
|+----------------------+|
||City | State ||
|+----------------------+|
||Seattle | WA
||Las Vegas | NV ||
|+----------------------+|
PLACES Seattle WA
PLACES Las Vegas NV
Output Format
35. 2016 ⓒ BESPIN GLOBAL
REGIONS ec2.ap-south-1.amazonaws.com ap-south-1
REGIONS ec2.eu-west-1.amazonaws.com eu-west-1
REGIONS ec2.ap-southeast-1.amazonaws.com ap-southeast-1
REGIONS ec2.ap-southeast-2.amazonaws.com ap-southeast-2
REGIONS ec2.eu-central-1.amazonaws.com eu-central-1
REGIONS ec2.ap-northeast-2.amazonaws.com ap-northeast-2
REGIONS ec2.ap-northeast-1.amazonaws.com ap-northeast-1
REGIONS ec2.us-east-1.amazonaws.com us-east-1
REGIONS ec2.sa-east-1.amazonaws.com sa-east-1
REGIONS ec2.us-west-1.amazonaws.com us-west-1
REGIONS ec2.us-west-2.amazonaws.com us-west-2
Output Text
45. 2016 ⓒ BESPIN GLOBAL
AWS CLI One Liner
첫번째 시나리오
- 나는 AWS 관리자이다. AWS CLI 를 활용하여 IAM
관련된 정보를 알아보고자 한다.
- 다음과 같이 AWS CLI 명령어는 알고 있다. 그러나
IAM User가 많아서 한번 실행으로 작업하고 싶다.
$ aws iam list-users –query Users[].[UserName]
$ aws iam delete-user –user-name <username>
$ aws iam list-access-keys --user-name <username>
46. 2016 ⓒ BESPIN GLOBAL
AWS CLI One Liner – 반복 순환 (2)
$ for name in (aws iam list-users
--query “Users[].[UserName]” --output text);
do
aws iam list-access-keys --user-name “$name”
--query
AccessKeyMetadata[*].[UserName,AccessKeyId]
--output text
; done
47. 2016 ⓒ BESPIN GLOBAL
AWS CLI One Liner – 반복 순환 (3)
$ for name in (aws iam list-users
--query Users[].[UserName] --output text);
do
aws iam list-access-keys --user-name $name
--output text | awk ‘{print “ID : “,$5”,”
“ACCESS :”,$2}’
; done
48. 2016 ⓒ BESPIN GLOBAL
AWS CLI One Liner
두번쨰 시나리오
- 나는 AWS 관리자이다. AWS CLI 를 활용하여 IAM
관련된 정보를 알아보고자 한다.
- 다음과 같이 AWS CLI 명령어는 알고 있다. 그러나
IAM User가 많아서 한번 실행으로 작업하고 싶다.
- 반복 순환문(
$ aws iam list-users –query Users[].[UserName] --
output text
49. 2016 ⓒ BESPIN GLOBAL
AWS CLI One Liner - xargs
$ aws iam list-users --query
Users[].[UserName] --output text
| xargs –I {} –P 10
aws iam list-access-keys --user-name “{}”
--output text
50. 2016 ⓒ BESPIN GLOBAL
•For Or While 반복 순환문을 사용하면 좋다.
•Xargs를 사용한다면, -I {} 같이 사용
•xargs -P N 은 병렬 실행하여 사용
•“[UserName]” 은 “.UserName” 에서 output을
각각 새로운 Line을 얻는다
AWS CLI One Liner
51. 2016 ⓒ BESPIN GLOBAL
$ aws ec2 describe-instances --query
'Reservations[*].Instances[*].[State.Name,
InstanceId]' --output text |
> grep stopped |
> awk '{print $2}' |
> while read line;
> do aws ec2 modify-instance-attribute -
-instance-id $line --instance-type
'{"Value": "m1.medium"}';
> done
Example - AWS CLI One Liner
53. 2016 ⓒ BESPIN GLOBAL
#!/bin/bash
#Create a new user and create a new profile.
aws iam create-‐user -‐-‐user-‐name reinvent-‐user
credentials=$(aws iam create-‐access-‐key -‐-‐user-‐name reinvent-‐user
-‐query 'AccessKey.[AccessKeyId,SecretAccessKey]‘
-‐output text)
access_key_id=$(echo $credentials | cut ‐d‘ ‘ ‐f 1)
secret_access_key=$(echo $credentials | cut ‐d‘ ‘ ‐f 2)
aws configure set profile.reinvent.aws_access_key_id "$access_key_id"
aws configure set profile.reinvent.secret_access_key "$secret_access_key"
Example 1 - create-new-user.sh