

# AWS CLI의 명령줄 옵션
<a name="cli-configure-options"></a>

AWS CLI에서 명령줄 옵션은 기본 구성 설정, 해당 프로파일 설정 또는 해당 단일 명령에 대한 환경 변수 설정을 재정의하는 데 사용할 수 있는 전역 파라미터입니다. 명령줄 옵션을 통해 사용할 프로필을 지정할 수 있지만, 해당 옵션으로 보안 인증을 직접 지정할 수 없습니다.

**Topics**
+ [명령줄 옵션 사용 방법](#cli-configure-options-how)
+ [AWS CLI에서 지원되는 전역 명령줄 옵션](#cli-configure-options-list)
+ [명령줄 옵션의 일반적인 용도](#cli-configure-options-common)

## 명령줄 옵션 사용 방법
<a name="cli-configure-options-how"></a>

대부분의 명령줄 옵션은 다음 예에 나온 프로파일 이름 `profile1`과 같은 단순한 문자열입니다.

```
$ aws s3 ls --profile profile1
amzn-s3-demo-bucket1
amzn-s3-demo-bucket2
...
```

인수를 가져오는 각 옵션에서는 공백이나 등호(=)를 사용하여 인수를 옵션 이름과 구분해야 합니다. 인수 값이 공백이 포함된 문자열인 경우 해당 인수의 앞뒤에 따옴표를 사용해야 합니다. 파라미터의 인수 유형 및 형식에 대한 자세한 내용은 [AWS CLI에서 파라미터 값 지정](cli-usage-parameters.md) 섹션을 참조하세요.

## AWS CLI에서 지원되는 전역 명령줄 옵션
<a name="cli-configure-options-list"></a>

AWS CLI에서 다음 명령줄 옵션을 사용하여 기본 구성 설정, 해당 프로파일 설정 또는 해당 단일 명령에 대한 환경 변수 설정을 재정의할 수 있습니다.

**--ca-bundle *<string>***  
SSL 인증서를 확인할 때 사용할 CA(인증 기관) 인증서 번들을 지정합니다.  
정의된 경우 이 옵션은 프로파일 설정 `ca\$1bundle`의 값 및 `AWS\$1CA\$1BUNDLE` 환경 변수를 재정의합니다.

**--cli-auto-prompt**  
단일 명령에 대해 자동 프롬프트 모드를 활성화합니다. 다음 예제에 표시된 것처럼 언제든지 지정할 수 있습니다.  

```
$ aws --cli-auto-prompt
$ aws dynamodb --cli-auto-prompt
$ aws dynamodb describe-table --cli-auto-prompt
```
이 옵션은 `aws\$1cli\$1auto\$1prompt` 환경 변수 및 `cli\$1auto\$1prompt` 프로파일 설정을 재정의합니다.  
AWS CLI 버전 2 자동 프롬프트 기능에 대한 자세한 내용은 [AWS CLI에서 명령 프롬프트 활성화 및 사용](cli-usage-parameters-prompting.md) 섹션을 참조하세요.

**--cli-binary-format**  
AWS CLI 버전 2에서 이진 입력 파라미터를 해석하는 방법을 지정합니다. 다음 값 중 하나일 수 있습니다.  
+ **base64** - 기본값입니다. BLOB(이진 대용량 객체)로 입력되는 입력 파라미터는 base64로 인코딩된 문자열을 받습니다. 실제 이진 콘텐츠를 전달하려면 해당 콘텐츠를 파일에 넣고 `fileb://` 접두사와 함께 파일 경로와 이름을 파라미터 값으로 입력합니다. 파일에 포함된 base64 인코딩 텍스트를 전달하려면 `file://` 접두사와 함께 파일 경로와 이름을 파라미터 값으로 입력합니다.
+ **raw-in-base64-out** – AWS CLI 버전 1의 기본값입니다. 설정 값이 `raw-in-base64-out`이면 `file://` 접두사를 사용하여 참조된 파일이 텍스트로 읽히고 AWS CLI에서 이진수로 인코딩을 시도합니다.
이는 `cli\$1binary\$1format` 파일 구성 설정을 재정의합니다.  

```
$ aws lambda invoke \
    --cli-binary-format raw-in-base64-out \
    --function-name my-function \
    --invocation-type Event \
    --payload '{ "name": "Bob" }' \
    response.json
```
`fileb://` 접두사 표기법을 사용하여 파일의 이진 값을 참조하는 경우 AWS CLI에서 *항상* 파일에 원시 이진 콘텐츠가 포함될 것으로 예상하며 값을 변환하지 않습니다.  
`file://` 접두사 표기법을 사용하여 파일의 이진 값을 참조하는 경우 AWS CLI에서 현재 `cli_binary_format` 설정에 따라 파일을 처리합니다. 해당 설정의 값이 `base64`(명시적으로 설정되지 않은 경우 기본값)이면 AWS CLI에서 파일에 base64로 인코딩된 텍스트가 포함될 것으로 예상합니다. 이 설정의 값이 `raw-in-base64-out`이면 AWS CLI에서 파일에 원시 이진 콘텐츠가 포함될 것으로 예상합니다.

**--cli-connect-timeout *<integer>***  
최대 소켓 연결 시간을 초 단위로 지정합니다. 이 값이 0으로 설정되어 있으면 소켓 연결이 무한 대기 상태(차단 상태)가 되고 제한 시간이 적용되지 않습니다. 기본값은 60초입니다.

**--cli-read-timeout *<integer>***  
최대 소켓 읽기 시간을 초 단위로 지정합니다. 이 값이 0으로 설정되어 있으면 소켓 읽기가 무한 대기 상태(차단 상태)가 되고 제한 시간이 적용되지 않습니다. 기본값은 60초입니다.

**--color *<string>***  
색상 출력에 대한 지원 여부를 지정합니다. 유효 값은 `on`, `off` 및 `auto`입니다. 기본 값은 `auto`입니다.

**--디버그**  
디버그 로깅을 활성화하는 부울 스위치입니다. 기본적으로 AWS CLI는 명령 출력의 명령 결과와 관련된 성공 또는 실패에 대한 정리 정보를 제공합니다. `--debug` 옵션은 전체 Python 로그를 제공합니다. 여기에는 해당 명령의 작동에 대한 추가적인 `stderr` 진단 정보가 포함되어 있는데, 이는 명령이 예기치 않은 결과를 제공하는 이유를 해결할 때 유용할 수 있습니다. 디버그 로그를 쉽게 보려면 정보를 쉽게 검색할 수 있도록 로그를 파일로 보내는 것이 좋습니다. 이를 위해 다음 중 하나를 사용할 수 있습니다.  
`stderr` 진단 정보**만** 보내려면 `2> debug.txt`를 추가합니다. 여기서 `debug.txt`는 디버그 파일에 사용할 이름입니다.  

```
$ aws servicename commandname options --debug 2> debug.txt
```
출력과 `stderr` 진단 정보**둘 다** 보내려면 `&> debug.txt`를 추가합니다. 여기서 `debug.txt`는 디버그 파일에 사용할 이름입니다.  

```
$ aws servicename commandname options --debug &> debug.txt
```

**--endpoint-url *<string>***  
요청을 전송할 URL을 지정합니다. 대부분의 명령에서는 AWS CLI가 선택된 서비스 및 지정된 AWS 리전을 기반으로 자동으로 URL을 결정합니다. 하지만 일부 명령에서는 계정별 URL을 지정해야 합니다. 일부 AWS 제품을 구성하여 [프라이빗 VPC 내에서 직접 엔드포인트를 호스팅](https://docs.aws.amazon.com/vpc/latest/userguide/what-is-amazon-vpc.html#what-is-privatelink)할 수도 있습니다. 이렇게 하려면 지정해야 합니다.  
다음 명령 예제에서는 사용자 지정 Amazon S3 엔드포인트 URL을 사용합니다.  

```
$ aws s3 ls --endpoint-url http://localhost:4567
```
**엔드포인트 우선순위**  
엔드포인트 구성 설정은 시스템 또는 사용자 환경 변수, 로컬 AWS 구성 파일 또는 명령줄에서 파라미터로 명시적으로 선언된 위치 등 다양한 장소에 있습니다. AWS CLI는 이러한 엔드포인트 설정을 특정 순서로 확인하고 우선순위가 가장 높은 엔드포인트 설정을 사용합니다. 엔드포인트 우선순위 목록은 [엔드포인트 구성 및 설정 우선 순위](cli-configure-endpoints.md#endpoints-precedence) 섹션을 참조하시기 바랍니다.

**--no-cli-auto-prompt**  
단일 명령에 대해 자동 프롬프트 모드를 비활성화합니다.  

```
$ aws dynamodb describe-table --table-name Table1 --no-cli-auto-prompt
```
이 옵션은 `aws\$1cli\$1auto\$1prompt` 환경 변수 및 `cli\$1auto\$1prompt` 프로파일 설정을 재정의합니다.  
AWS CLI 버전 2 자동 프롬프트 기능에 대한 자세한 내용은 [AWS CLI에서 명령 프롬프트 활성화 및 사용](cli-usage-parameters-prompting.md) 섹션을 참조하세요.

**--no-cli-pager**  
명령 출력에 페이저를 사용하도록 활성화하는 부울 스위치입니다.

**--no-paginate**  
출력의 페이지 매김을 생성하는 모든 명령 결과를 수신하기 위해 AWS CLI가 자동으로 수행하는 다중 호출을 비활성화하는 부울 스위치입니다. 즉, 출력의 첫 번째 페이지만 표시됩니다.

**--no-sign-request**  
AWS 서비스 엔드포인트에 대한 HTTP 요청 서명을 비활성화하는 부울 스위치입니다. 이렇게 하면 보안 인증이 로드되는 것을 방지할 수 있습니다.

**--no-verify-ssl**  
기본적으로 AWS CLI는 AWS 서비스와 통신할 때 SSL을 사용합니다. AWS CLI는 각 SSL 연결 및 호출에 대해 SSL 인증서를 확인합니다. 이 옵션을 사용하면 SSL 인증서를 확인하는 기본 동작이 재정의됩니다.  
이 옵션은 모범 사례가 **아닙니다**. `--no-verify-ssl`을 사용하는 경우 클라이언트와 AWS 서비스 간 트래픽이 더 이상 보호되지 않습니다. 즉, 트래픽이 보안 위험이 되며 중간자 공격에 취약합니다. 인증서에 문제가 있는 경우 대신 해당 문제를 해결하는 것이 좋습니다. 인증서 문제 해결 단계는 [SSL 인증서 오류](cli-chap-troubleshooting.md#tshoot-certificate-verify-failed) 섹션을 참조하세요.

**--output *<string>***  
이 명령에 사용할 출력 형식을 지정합니다. 다음 값 중 하나를 지정할 수 있습니다.  
+ **[`json`](cli-usage-output-format.md#json-output)** - 출력은 [JSON](https://json.org/) 문자열로 형식이 지정됩니다.
+  **[`yaml`](cli-usage-output-format.md#yaml-output)** - 출력은 [YAML](https://yaml.org/) 문자열로 형식이 지정됩니다.
+ **[`yaml-stream`](cli-usage-output-format.md#yaml-stream-output)** - 출력은 스트리밍되고 [YAML](https://yaml.org/) 문자열로 형식이 지정됩니다. 스트리밍을 통해 대용량 데이터 유형을 빠르게 처리할 수 있습니다.
+ **[`text`](cli-usage-output-format.md#text-output)** - 출력은 여러 줄의 탭으로 구분된 문자열 값으로 형식이 지정됩니다. 출력을 `grep`, `sed` 또는 `awk`와 같은 텍스트 프로세서로 전달하는 데 사용할 수 있습니다.
+ **[`table`](cli-usage-output-format.md#table-output)** - 출력은 셀 테두리를 형성하기 위해 \$1\$1- 문자를 사용하여 표로 형식이 지정됩니다. 일반적으로 읽기는 쉽지만 프로그래밍 방식으로는 유용하지 않은 ‘인간 친화적’ 형식으로 정보를 표시합니다.
+ **[`off`](cli-usage-output-format.md#off-output)** - 명령의 모든 표준 출력(stdout)을 숨깁니다. 이는 출력을 처리하지 않고 명령의 종료 코드만 확인하면 되는 자동화 스크립트 및 CI/CD 파이프라인에서 유용합니다.

**--profile *<string>***  
이 명령에 사용할 [명명된 프로필](cli-configure-files.md#cli-configure-files-using-profiles)을 지정합니다. 명명된 프로필을 추가로 설정하려면 `aws configure` 명령을 `--profile` 옵션과 함께 사용하면 됩니다.  

```
$ aws configure --profile <profilename>
```

**--query *<string>***  
응답 데이터를 필터링할 때 사용할 [JMESPath 쿼리](https://jmespath.org/)를 지정합니다. 자세한 내용은 [AWS CLI에서 출력 필터링](cli-usage-filter.md) 단원을 참조하세요.

**--region *<string>***  
이 명령의 AWS 요청을 전송할 AWS 리전을 지정합니다. 지정할 수 있는 모든 리전 목록은 *Amazon Web Services 일반 참조*의 [AWS 리전 및 엔드포인트](https://docs.aws.amazon.com/general/latest/gr/rande.html)를 참조하세요.

**--version**  
실행 중인 AWS CLI 프로그램의 현재 버전을 표시하는 부울 스위치입니다.

## 명령줄 옵션의 일반적인 용도
<a name="cli-configure-options-common"></a>

명령줄 옵션의 일반적인 용도는 여러 AWS 리전에서 리소스를 확인하고 읽기 쉽게 또는 스크립팅할 때 사용하기 쉽게 출력 형식을 변경하는 것입니다. 다음 예제에서는 인스턴스가 있는 리전을 찾을 때까지 각 리전에 대해 **describe-instances** 명령을 실행합니다.

```
$ aws ec2 describe-instances --output table --region us-west-1
-------------------
|DescribeInstances|
+-----------------+
$ aws ec2 describe-instances --output table --region us-west-2
------------------------------------------------------------------------------
|                              DescribeInstances                             |
+----------------------------------------------------------------------------+
||                               Reservations                               ||
|+-------------------------------------+------------------------------------+|
||  OwnerId                            |  012345678901                      ||
||  ReservationId                      |  r-abcdefgh                        ||
|+-------------------------------------+------------------------------------+|
|||                                Instances                               |||
||+------------------------+-----------------------------------------------+||
|||  AmiLaunchIndex        |  0                                            |||
|||  Architecture          |  x86_64                                       |||
...
```