#!/bin/bash = #!/bin/sh
ㄴ 스크립트파일 bash쉘로 실행. 기본적으로 bash 쉘로 되어있어서 굳이 안써도 상관은없는데 오류방지를 위해 쓰는것이 좋다.
EC2 CLI
run-instances
[--block-device-mappings <value>]
[--image-id <value>]
[--instance-type <value>]
[--ipv6-address-count <value>]
[--ipv6-addresses <value>]
[--kernel-id <value>]
[--key-name <value>]
[--monitoring <value>]
[--placement <value>]
[--ramdisk-id <value>]
[--security-group-ids <value>]
[--security-groups <value>]
[--subnet-id <value>]
[--user-data <value>]
[--additional-info <value>]
[--client-token <value>]
[--disable-api-termination | --enable-api-termination]
[--dry-run | --no-dry-run]
[--ebs-optimized | --no-ebs-optimized]
[--iam-instance-profile <value>]
[--instance-initiated-shutdown-behavior <value>]
[--network-interfaces <value>]
[--private-ip-address <value>]
[--elastic-gpu-specification <value>]
[--elastic-inference-accelerators <value>]
[--tag-specifications <value>]
[--launch-template <value>]
[--instance-market-options <value>]
[--credit-specification <value>]
[--cpu-options <value>]
[--capacity-reservation-specification <value>]
[--hibernation-options <value>]
[--license-specifications <value>]
[--metadata-options <value>]
[--enclave-options <value>]
[--count <value>]
[--secondary-private-ip-addresses <value>]
[--secondary-private-ip-address-count <value>]
[--associate-public-ip-address | --no-associate-public-ip-address]
[--cli-input-json <value>]
[--generate-cli-skeleton <value>]
describe-instances
[--filters <value>]
[--instance-ids <value>]
[--dry-run | --no-dry-run]
[--cli-input-json <value>]
[--starting-token <value>]
[--page-size <value>]
[--max-items <value>]
[--generate-cli-skeleton <value>]
LAUNCH_INFO=$(aws ec2 run-instances --image-id $IMAGE_ID --count 1 --instance-type $INSTANCE_TYPE \
--key-name $AWS_KEY --subnet-id $SUBNET_ID --security-group-ids $SG_ID)
[--count <value>]
시작할 인스턴스 수.(기본값은 1). 범위가 min:max 형식으로 제공되면 첫 번째 숫자는 시작할 최소 인스턴스 수로 해석되고 두 번째 숫자는 시작할 최대 인스턴스 수로 해석함.
[--image-id <value>]
AMI의 ID. AMI ID는 인스턴스를 시작하는 데 필요하며 시작할떄 지정해줘야함.
[--instance-type <value>]
인스턴스 타입 (ex:g4dn.xlarge)
[--key-name <value>]
키 쌍의 이름. (CreateKeyPair 또는 ImportKeyPair 를 사용하여 키 페어를 생성할 수 있다.)
[--subnet-id <value>]
[EC2-VPC] 인스턴스를 시작할 서브넷의 ID. 네트워크 인터페이스를 지정하는 경우 서브넷을 네트워크 인터페이스의 일부로 지정해야 함.
[--security-group-ids <value>]
보안 그룹의 ID. (CreateSecurityGroup을 사용하여 보안 그룹을 만들 수 있다.) 네트워크 인터페이스를 지정하는 경우 보안 그룹을 네트워크 인터페이스의 일부로 지정해야 한다.
**** echo**
확인용 https://docs.aws.amazon.com/ko_kr/cli/latest/userguide/cli-usage-returncodes.html
[--instance-ids <value>]
The instance IDs. (Default: Describes all your instances.)
JQ
- jq로 json 처리하기
ㄴ -query로 수행할 수 없는 고급 필터링의 경우 명령줄 JSON 프로세서인 jq를 고려할 수 있다.
$ cat sample.json
{"data":{"name":"myname","values": [{"id": "id0","url": "url0"},{"id": "id1","url": "url1"},{"id": "id2","url": "url2"}]}}
$ cat sample.json | jq .
{
"data": {
"name": "myname",
"values": [
{
"id": "id0",
"url": "url0"
},
{
"id": "id1",
"url": "url1"
},
{
"id": "id2",
"url": "url2"
}
]
}
}
. (점하나)
입력그대로 출력함
.foo (점다음에 key값)
점다음에 키값의 value를 출력한다.
.foo = .["foo"] = ."foo"
.[] (점뒤에 괄호)
결과 9 8
|(파이프)
두개 필터를 결합함.
ex) .a | . | .b = .a.b
.a.b.c = .a | .b | .c.
-raw-output / -r (ex: jq -r)
필터의 결과가 문자열이면 따옴표가 있는 JSON 문자열로 형식이 지정되지 않고 표준 출력에 직접 기록됨. non-JSON-based systems과 통신할때 사용.
사용예제 : https://gist.github.com/hummus/8592113
ㄴ여러줄일때는 맨뒤에 \ 붙이고 이어서 다음줄에 줄줄이 쓰면됨
입력그대로 출력함
EC2 describe~
- EC2 특징출력하기
https://docs.aws.amazon.com/ko_kr/cli/latest/userguide/cli-usage-filter.html
$ aws ec2 describe-volumes
- EC2 인스턴스들 나열하고 정보확인하기
https://docs.aws.amazon.com/ko_kr/cli/latest/userguide/cli-services-ec2-instances.html
aws ec2 describe-instances --instance-ids i-12abc34 --query 'Reservations[].Instances[].PublicDnsName'
ㄴ i-12abc34 라는 인스턴스아이디를 가진 인스턴스의 PublicDnsName
'<Cloud> > AWS' 카테고리의 다른 글
로컬에서 CLI로 EC2 인스턴스 시작 + 접속하기 (0) | 2022.01.07 |
---|---|
EC2 Ubuntu 안의 파일째 모두 로컬에 옮겨 저장하기 (맥북/윈도우) (0) | 2021.11.28 |
AWS CLI lambda 간단정리 (0) | 2021.08.31 |
Lambda, API Gateway, AJAX 주거니 받거니 (0) | 2021.08.31 |
서버리스 활용 1)EFS , 2)ECR (0) | 2021.08.31 |