

# AWS CLI에서 엔드포인트 사용
<a name="cli-configure-endpoints"></a>

AWS 서비스에 프로그래밍 방식으로 연결하려면 엔드포인트를 사용해야 합니다. *엔드포인트*는 AWS 웹 서비스를 위한 진입점의 URL입니다. AWS Command Line Interface(AWS CLI)는 AWS 리전 리전의 각 서비스에 대해 자동으로 기본 엔드포인트를 사용하지만, API 요청에 대해 대체 엔드포인트를 지정할 수 있습니다.

**Contents**
+ [단일 명령에 대한 엔드포인트 설정](#endpoints-command)
+ [모든 AWS 서비스 서비스에 대한 글로벌 엔드포인트 설정](#endpoints-global)
+ [모든 AWS 서비스에 FIPS 엔드포인트를 사용하도록 설정](#endpoints-fips)
+ [모든 AWS 서비스에 이중 스택 엔드포인트를 사용하도록 설정](#endpoints-dual-stack)
+ [서비스별 엔드포인트 설정](#endpoints-service-specific)
  + [환경 변수](#endpoints-service-specific-envvars)
  + [공유 `config` 파일](#endpoints-service-specific-config)
  + [서비스별 식별자 목록](#endpoints-service-specific-table)
+ [계정 기반 엔드포인트](#endpoints-accountid)
+ [엔드포인트 구성 및 설정 우선 순위](#endpoints-precedence)

## 단일 명령에 대한 엔드포인트 설정
<a name="endpoints-command"></a>

단일 명령에 대한 엔드포인트 설정이나 환경 변수를 재정의하려면 `--endpoint-url` 명령줄 옵션을 사용하세요. 다음 명령 예제에서는 사용자 지정 Amazon S3 엔드포인트 URL을 사용합니다.

```
$ aws s3 ls --endpoint-url {{http://localhost:4567}}
```

## 모든 AWS 서비스 서비스에 대한 글로벌 엔드포인트 설정
<a name="endpoints-global"></a>

모든 서비스에 대한 요청을 사용자 지정 엔드포인트 URL로 라우팅하려면 다음 설정 중 하나를 사용하세요.
+ 환경 변수:
  + `AWS\_IGNORE\_CONFIGURED\_ENDPOINT\_URLS` - 구성된 엔드포인트 URL을 무시합니다.

------
#### [ Linux or macOS ]

    ```
    $ export AWS_IGNORE_CONFIGURED_ENDPOINT_URLS={{true}}
    ```

------
#### [ Windows Command Prompt ]

    **모든 세션에 대해 설정하려면**

    ```
    C:\> setx AWS_IGNORE_CONFIGURED_ENDPOINT_URLS {{true}}
    ```

    **현재 세션에만 설정하려면**

    ```
    C:\> set AWS_IGNORE_CONFIGURED_ENDPOINT_URLS={{true}}
    ```

------
#### [ PowerShell ]

    ```
    PS C:\> $Env:AWS_IGNORE_CONFIGURED_ENDPOINT_URLS="{{true}}"
    ```

------
  + `AWS\_ENDPOINT\_URL` - 글로벌 엔드포인트 URL을 설정합니다.

------
#### [ Linux or macOS ]

    ```
    $ export AWS_ENDPOINT_URL={{http://localhost:4567}}
    ```

------
#### [ Windows Command Prompt ]

    **모든 세션에 대해 설정하려면**

    ```
    C:\> setx AWS_ENDPOINT_URL {{http://localhost:4567}}
    ```

    **현재 세션에만 설정하려면**

    ```
    C:\> set AWS_ENDPOINT_URL={{http://localhost:4567}}
    ```

------
#### [ PowerShell ]

    ```
    PS C:\> $Env:AWS_ENDPOINT_URL="{{http://localhost:4567}}"
    ```

------
+ `config` 파일:
  + `ignore\_configure\_endpoint\_urls` - 구성된 엔드포인트 URL을 무시합니다.

    ```
    ignore_configure_endpoint_urls = true
    ```
  + `endpoint\_url` - 글로벌 엔드포인트 URL을 설정합니다.

    ```
    endpoint_url = {{http://localhost:4567}}
    ```

서비스별 엔드포인트와 `--endpoint-url` 명령줄 옵션은 모든 전역 엔드포인트를 재정의합니다.

## 모든 AWS 서비스에 FIPS 엔드포인트를 사용하도록 설정
<a name="endpoints-fips"></a>

모든 서비스에 대한 요청을 FIP 엔드포인트로 라우팅하려면 다음 중 하나를 사용하세요.
+ `AWS\_USE\_FIPS\_ENDPOINT` 환경 변수

------
#### [ Linux or macOS ]

  ```
  $ export AWS_USE_FIPS_ENDPOINT={{true}}
  ```

------
#### [ Windows Command Prompt ]

  **모든 세션에 대해 설정하려면**

  ```
  C:\> setx AWS_USE_FIPS_ENDPOINT {{true}}
  ```

  **현재 세션에만 설정하려면**

  ```
  C:\> set AWS_USE_FIPS_ENDPOINT={{true}}
  ```

------
#### [ PowerShell ]

  ```
  PS C:\> $Env:AWS_USE_FIPS_ENDPOINT="{{true}}"
  ```

------
+ `use\_fips\_endpoint` 파일 설정

  ```
  use_fips_endpoint = true
  ```

일부 AWS 서비스는 일부 AWS 리전에서 [FIPS(Federal Information Processing Standard) 140-2](https://aws.amazon.com/compliance/fips/)를 지원하는 엔드포인트를 제공합니다. AWS 서비스에서 FIPS를 지원하는 경우 이 설정은 AWS CLI에서 사용해야 하는 FIPS 엔드포인트를 지정합니다. 표준 AWS 엔드포인트와 달리 FIPS 엔드포인트에서는 FIPS 140-2를 준수하는 TLS 소프트웨어 라이브러리를 사용합니다. 이러한 엔드포인트는 미국 정부와 상호 작용하는 기업에 필요할 수 있습니다.

이 설정이 활성화되어 있지만 해당 서비스에 대한 FIPS 엔드포인트가 AWS 리전에 없는 경우 AWS 명령이 실패할 수 있습니다. 이 경우 `--endpoint-url` 옵션을 사용하여 명령에 사용할 엔드포인트를 수동으로 지정하거나 [서비스별 엔드포인트](#endpoints-service-specific)를 사용합니다.

AWS 리전별로 FIPS 엔드포인트를 지정하는 방법에 대한 자세한 내용은 [서비스별 FIPS 엔드포인트](https://aws.amazon.com/compliance/fips/)를 참조하세요.

## 모든 AWS 서비스에 이중 스택 엔드포인트를 사용하도록 설정
<a name="endpoints-dual-stack"></a>

모든 서비스에 대한 요청을 사용 가능한 이중 스택 엔드포인트로 라우팅하려면 다음 설정 중 하나를 사용하세요.
+ `AWS\_USE\_DUALSTACK\_ENDPOINT` 환경 변수

------
#### [ Linux or macOS ]

  ```
  $ export AWS_USE_DUALSTACK_ENDPOINT={{true}}
  ```

------
#### [ Windows Command Prompt ]

  **모든 세션에 대해 설정하려면**

  ```
  C:\> setx AWS_USE_DUALSTACK_ENDPOINT {{true}}
  ```

  **현재 세션에만 설정하려면**

  ```
  C:\> set AWS_USE_DUALSTACK_ENDPOINT={{true}}
  ```

------
#### [ PowerShell ]

  ```
  PS C:\> $Env:AWS_USE_DUALSTACK_ENDPOINT="{{true}}"
  ```

------
+ `use\_dualstack\_endpoint` 파일 설정

  ```
  use_dualstack_endpoint = true
  ```

이중 스택 엔드포인트를 사용하여 AWS 요청을 보내도록 설정합니다. *IPv4 및 IPv6 트래픽을 모두 지원하는 이중 스택 엔드포인트에 대한 자세한 내용은 Amazon 심플 스토리지 서비스 사용 설명서*의 [Amazon S3 이중 스택 엔드포인트](https://docs.aws.amazon.com/AmazonS3/latest/userguide/dual-stack-endpoints.html) 사용을 참조하세요. 이중 스택 엔드포인트는 일부 리전에 사용할 수 있는 서비스입니다. 서비스 또는 AWS 리전에 대한 이중 스택 엔드포인트가 없는 경우 요청이 실패합니다. 이 옵션은 기본적으로 비활성화되어 있습니다.

## 서비스별 엔드포인트 설정
<a name="endpoints-service-specific"></a>

서비스별 엔드포인트 구성은 AWS CLI 요청에 대해 사용자가 선택한 영구 엔드포인트를 사용할 수 있는 옵션을 제공합니다. 이러한 설정은 로컬 엔드포인트, VPC 엔드포인트 및 타사 로컬 AWS 개발 환경을 지원할 수 있는 유연성을 제공합니다. 테스트 환경과 프로덕션 환경에 서로 다른 엔드포인트를 사용할 수 있습니다. 개별 AWS 서비스 서비스에 대한 엔드포인트 URL을 지정할 수 있습니다.

서비스별 엔드포인트는 다음과 같은 방법으로 지정할 수 있습니다.
+ 단일 명령에 대한 명령줄 옵션 `--endpoint-url`.
+ 환경 변수:
  + `AWS\_IGNORE\_CONFIGURED\_ENDPOINT\_URLS` - 명령줄에 지정하지 않는 한 구성된 모든 엔드포인트 URL을 무시합니다.
  + `AWS\_ENDPOINT\_URL\_<SERVICE>` - 특정 서비스에 사용되는 사용자 지정 엔드포인트를 지정하며, 여기서 `<SERVICE>`는 AWS 서비스 서비스 식별자로 대체됩니다. 모든 서비스별 변수에 대해서는 [서비스별 엔드포인트: 서비스별 식별자 목록](#endpoints-service-specific-table)를 참조하세요
+ `config` 파일:
  + `ignore\_configure\_endpoint\_urls` - 환경 변수를 사용하거나 명령줄에서 지정하지 않는 한 구성된 모든 엔드포인트 URL을 무시합니다.
  + `config` 파일의 [`services`](cli-configure-files.md#cli-configure-files-format-services) 섹션과 `endpoint\_url` 파일 설정이 결합됩니다.

**Topics**
+ [환경 변수](#endpoints-service-specific-envvars)
+ [공유 `config` 파일](#endpoints-service-specific-config)
+ [서비스별 식별자 목록](#endpoints-service-specific-table)

### 서비스별 엔드포인트: 환경 변수
<a name="endpoints-service-specific-envvars"></a>

환경 변수는 구성 파일의 설정을 재정의하지만 명령줄에 지정된 옵션을 재정의하지는 않습니다. 모든 프로파일이 디바이스에서 동일한 엔드포인트를 사용하도록 하려면 환경 변수를 사용하세요.

다음은 서비스별 환경 변수입니다.
+ `AWS\_IGNORE\_CONFIGURED\_ENDPOINT\_URLS` - 명령줄에 지정하지 않는 한 구성된 모든 엔드포인트 URL을 무시합니다.

------
#### [ Linux or macOS ]

  ```
  $ export AWS_IGNORE_CONFIGURED_ENDPOINT_URLS={{true}}
  ```

------
#### [ Windows Command Prompt ]

  **모든 세션에 대해 설정하려면**

  ```
  C:\> setx AWS_IGNORE_CONFIGURED_ENDPOINT_URLS {{true}}
  ```

  **현재 세션에만 설정하려면**

  ```
  C:\> set AWS_IGNORE_CONFIGURED_ENDPOINT_URLS={{true}}
  ```

------
#### [ PowerShell ]

  ```
  PS C:\> $Env:AWS_IGNORE_CONFIGURED_ENDPOINT_URLS="{{true}}"
  ```

------
+ `AWS\_ENDPOINT\_URL\_<SERVICE>` - 특정 서비스에 사용되는 사용자 지정 엔드포인트를 지정하며, 여기서 AWS 서비스가 `<SERVICE>` 식별자로 대체됩니다. 모든 서비스별 변수에 대해서는 [서비스별 엔드포인트: 서비스별 식별자 목록](#endpoints-service-specific-table)를 참조하세요

  다음 환경 변수 예제는 AWS Elastic Beanstalk의 엔드포인트를 설정합니다.

------
#### [ Linux or macOS ]

  ```
  $ export AWS_ENDPOINT_URL_ELASTIC_BEANSTALK={{http://localhost:4567}}
  ```

------
#### [ Windows Command Prompt ]

  **모든 세션에 대해 설정하려면**

  ```
  C:\> setx AWS_ENDPOINT_URL_ELASTIC_BEANSTALK {{http://localhost:4567}}
  ```

  **현재 세션에만 설정하려면**

  ```
  C:\> set AWS_ENDPOINT_URL_ELASTIC_BEANSTALK={{http://localhost:4567}}
  ```

------
#### [ PowerShell ]

  ```
  PS C:\> $Env:AWS_ENDPOINT_URL_ELASTIC_BEANSTALK="{{http://localhost:4567}}"
  ```

------

환경 변수 설정에 대한 자세한 내용은 환경 변수를 사용하여 [AWS CLI에 대한 환경 변수 구성](cli-configure-envvars.md)을 참조하세요.

### 서비스별 엔드포인트: 공유 `config` 파일
<a name="endpoints-service-specific-config"></a>

공유 `config` 파일에서 `endpoint_url`은 여러 섹션에서 사용됩니다. 서비스별 엔드포인트를 설정하려면 `services` 섹션 내의 서비스 식별자 키 아래에 중첩된 `endpoint_url` 설정을 사용하세요. 공유 `config` 파일에서 `services` 섹션을 정의하는 방법에 대한 자세한 내용은 [섹션 유형: `services`](cli-configure-files.md#cli-configure-files-format-services)를 참조하세요.

다음 예제에서는 `services` 섹션을 사용하여 Amazon S3에 대한 서비스별 엔드포인트 URL과 다른 모든 서비스에 사용되는 사용자 지정 글로벌 엔드포인트를 구성합니다.

```
[profile {{dev1}}]
endpoint_url = {{http://localhost:1234}}
services = {{s3-specific}}

[services {{testing-s3}}]
s3 = 
  endpoint_url = {{http://localhost:4567}}
```

단일 프로파일로 여러 서비스에 대한 엔드포인트를 구성할 수 있습니다. 다음 예제에서는 동일한 프로파일에서 Amazon S3와 AWS Elastic Beanstalk에 대한 서비스별 엔드포인트 URL을 설정합니다.

`services` 섹션에서 사용할 모든 서비스 식별자 키 목록은 [서비스별 식별자 목록](#endpoints-service-specific-table)을 참조하세요.

```
[profile {{dev1}}]
services = {{testing-s3-and-eb}}

[services {{testing-s3-and-eb}}]
s3 = 
  endpoint_url = {{http://localhost:4567}}
elastic_beanstalk = 
  endpoint_url = {{http://localhost:8000}}
```

서비스 구성 섹션은 여러 프로파일에서 사용할 수 있습니다. 다음 예제에서는 두 개의 프로파일이 동일한 `services` 정의를 사용합니다.

```
[profile {{dev1}}]
output = json
services = {{testing-s3}}

[profile {{dev2}}]
output = text
services = {{testing-s3}}

[services {{testing-s3}}]
s3 = 
  endpoint_url = {{https://localhost:4567}}
```

### 서비스별 엔드포인트: 서비스별 식별자 목록
<a name="endpoints-service-specific-table"></a>

AWS 서비스 서비스 식별자는 모든 공백을 밑줄로 바꾸고 모든 문자를 소문자로 바꾸는 방식으로 API 모델의 `serviceId`를 기반으로 합니다.

다음 표에는 모든 서비스별 식별자, `config` 파일 키 및 환경 변수가 나열되어 있습니다.

## 계정 기반 엔드포인트
<a name="endpoints-accountid"></a>

계정 기반 엔드포인트는 다음과 같은 방법으로 지정할 수 있습니다.
+ 환경 변수
  + `AWS\_ACCOUNT\_ID` - 지원되는 AWS 서비스에 대한 호출에 사용할 AWS 계정 기반 엔드포인트 ID를 지정합니다.

------
#### [ Linux or macOS ]

    ```
    $ export AWS_ACCOUNT_ID={{<account-id>}}
    ```

------
#### [ Windows Command Prompt ]

    **모든 세션에 대해 설정하려면**

    ```
    C:\> setx AWS_ACCOUNT_ID {{<account-id>}}
    ```

    **현재 세션에만 설정하려면**

    ```
    C:\> set AWS_ACCOUNT_ID={{<account-id>}}
    ```

------
#### [ PowerShell ]

    ```
    PS C:\> $Env:AWS_ACCOUNT_ID="{{<account-id>}}"
    ```

------
  + `AWS\_ACCOUNT\_ID\_ENDPOINT\_MODE` - 지원되는 AWS 서비스에 대한 호출에 AWS 계정 기반 엔드포인트 ID를 사용할지 여부를 지정합니다. `preferred`, `disabled` 또는 `required`로 설정할 수 있습니다. 기본값은 `preferred`입니다.

------
#### [ Linux or macOS ]

    ```
    $ export AWS_ACCOUNT_ID_ENDPOINT_MODE={{preferred}}
    ```

------
#### [ Windows Command Prompt ]

    **모든 세션에 대해 설정하려면**

    ```
    C:\> setx AWS_ACCOUNT_ID_ENDPOINT_MODE {{preferred}}
    ```

    **현재 세션에만 설정하려면**

    ```
    C:\> set AWS_ACCOUNT_ID_ENDPOINT_MODE={{preferred}}
    ```

------
#### [ PowerShell ]

    ```
    PS C:\> $Env:AWS_ACCOUNT_ID_ENDPOINT_MODE="{{preferred}}"
    ```

------
+ `config` 파일:
  + `aws\_account\_id` - 지원되는 AWS 서비스에 대한 호출에 사용할 AWS 계정 기반 엔드포인트 ID를 지정합니다.

    ```
    aws_account_id = {{<account-id>}}
    ```
  + `account\_id\_endpoint\_mode` - 지원되는 AWS 서비스에 대한 호출에 AWS 계정 기반 엔드포인트 ID를 사용할지 여부를 지정합니다. `preferred`, `disabled` 또는 `required`로 설정할 수 있습니다. 기본값이 선호됩니다.

    ```
    account_id_endpoint_mode = {{preferred}}
    ```

계정 기반 엔드포인트는 AWS 계정 ID를 사용하여 이 기능을 지원하는 서비스에 대한 AWS 서비스 요청 라우팅을 간소화하여 고성능과 확장성을 확보하는 데 도움이 됩니다. 자격 증명 공급자와 계정 기반 엔드포인트를 지원하는 서비스를 사용하는 경우 AWS CLI는 리전 엔드포인트 대신 계정 기반 엔드포인트를 자동으로 구성하고 사용합니다.

계정 기반 엔드포인트는 다음 형식을 사용합니다. 여기서 `<account-id>`는 AWS 계정 ID로 대체되고 `<region>`는 AWS 리전으로 대체됩니다.

```
https://{{<account-id>}}.myservice.{{<region>}}.amazonaws.com
```

기본적으로 AWS CLI에서 계정 기반 엔드포인트 모드는 `preferred`로 설정됩니다.

## 엔드포인트 구성 및 설정 우선 순위
<a name="endpoints-precedence"></a>

엔드포인트 구성 설정은 시스템 또는 사용자 환경 변수, 로컬 AWS 구성 파일 또는 명령줄에서 파라미터로 명시적으로 선언된 위치 등 다양한 장소에 있습니다. AWS CLI 엔드포인트 구성 설정은 다음 순서에 따라 우선적으로 적용됩니다.

1. `--endpoint-url` 명령줄 옵션

1. 사용 설정된 경우, 사용자 지정 엔드포인트를 무시하도록 `AWS\_IGNORE\_CONFIGURED\_ENDPOINT\_URLS` 글로벌 엔드포인트 환경 변수 또는 프로파일 설정 `ignore\_configure\_endpoint\_urls`를 사용합니다.

1. 서비스별 환경 변수 `AWS\_ENDPOINT\_URL\_<SERVICE>`에서 제공하는 값(예: `AWS_ENDPOINT_URL_DYNAMODB`).

1. `AWS\_USE\_DUALSTACK\_ENDPOINT`, `AWS\_USE\_FIPS\_ENDPOINT` 및 `AWS\_ENDPOINT\_URL` 환경 변수에서 제공하는 값입니다.

1. `AWS\_ACCOUNT\_ID\_ENDPOINT\_MODE` 환경 변수는 `AWS\_ACCOUNT\_ID` 환경 변수 또는 `aws\_account\_id` 설정에서 계정 ID를 사용하여 `preferred` 또는 `required`로 설정됩니다.

1. 공유 `config` 파일의 `services` 섹션 내의 `endpoint\_url` 설정에서 제공하는 서비스별 엔드포인트 값.

1. 공유 `config` 파일의 `profile` 내에서 `endpoint\_url` 설정에 의해 제공되는 값.

1. `use\_dualstack\_endpoint`, `use\_fips\_endpoint` 및 `endpoint\_url` 설정입니다.

1. `account\_id\_endpoint\_mode` 설정은 `AWS\_ACCOUNT\_ID` 환경 변수 또는 `aws\_account\_id` 설정에서 계정 ID를 사용하여 `preferred` 또는 `required`로 설정됩니다.

1. 각 AWS 서비스에 대한 기본 엔드포인트 URL이 마지막에 사용됩니다. 각 리전에서 사용할 수 있는 표준 서비스 엔드포인트 목록은 *Amazon Web Services 일반 참조*의 [AWS 리전 및 엔드포인트](https://docs.aws.amazon.com/general/latest/gr/rande.html)를 참조하세요.