본문 바로가기

OS/AWS

AWS CLI : 쿼리 하기

AWS Console은 기능은 많은데 마우스로 클릭해야 해서 생각보다 시간이 많이 걸린다.

예를 들어 자주 하는 작업 중에 EC2 인스턴스를 찾아서 Private IP 주소를 구하는 경우가 있다고 하자.
이런경우 브라우저를 띄워서 AWS Console에서 조회를 하기 위해서는 적어도 약 20초 걸렸다. (<=해보니)

이것은 로그인이 되어 있어 인증을 생략했을 때 걸린 시간이다. 보통 2차 인증(OTP)도 해야 할 경우 스마트폰을 켜고 인증앱을 켜고 하는 것까지 포함한다면 30초 걸리는 것은 시간 문제이다.


찾아보니 AWS Console에서 할 수 있는 대부분의 작업은 AWS CLI로 할 수 있다.

다만 이것을 위해서는 AWS 액세스키가 필요하다.
그리고 aws 명령어 설치와 aws configure 명령으로 설정이 필요하다. (이것은 한 번만 하면 되는 시간 투자이다.)

그러면 명령으로 수행하면 얼마나 걸릴까?

나는 TextExpander라는 자동 타이핑 도구를 쓰고 있는데 이것을 통해 수행을 해보니 결과를 받기끼자 약 6초가 걸렸다.

참고로 이 쿼리는 다음과 같다.

aws ec2 describe-instances --query 'Reservations[].Instances[].{Id:InstanceId, NIC:NetworkInterfaces[0].PrivateIpAddress, Name:Tags[?Key==`Name`].Value | [0]}' --output table

----------------------------------------------------------------------------------
|                                DescribeInstances                               |
+----------------------+----------------+----------------------------------------+
|          Id          |      NIC       |                 Name                   |
+----------------------+----------------+----------------------------------------+
|  i-096d3114241e4z01e |  1.2.3.4       |  spoon-api-live                        |
|  i-079dbd1z1aaf4zf61 |  1.2.3.5       |  spoon-api-qa                          |
|  i-044942f9151e557f6 |  1.2.3.6       |  spoon-api-stage                       |
+----------------------+----------------+----------------------------------------+

명령어 도구에 익숙하다면 grep에 붙여 특정 조건으로 로컬에서 제한하는 방법도 있다.

다만 aws에서 사용하는 json 쿼리 도구가 JMESPath를 사용하고 있는데 러닝커브가 좀 있다.

'OS > AWS' 카테고리의 다른 글

[aws] .ebextensions 명령을 profile에 의해 동작시키기  (0) 2020.02.10