

# AWS CLI 시작하기
<a name="cli-chap-getting-started"></a>

이 장에서는 AWS Command Line Interface(AWS CLI) 버전 2를 시작하는 단계와 관련 지침에 대한 링크를 제공합니다.

1. **[모든 사전 요구 사항 완료](getting-started-prereqs.md)** - AWS CLI로 AWS 서비스에 액세스하려면 최소한 AWS 계정 및 IAM 보안 인증 정보가 필요합니다. AWS 계정의 보안을 강화하기 위해 루트 계정 보안 인증은 사용하지 않는 것이 좋습니다. AWS에서 실행할 작업에 대한 액세스 보안 인증을 제공하려면 최소 권한이 있는 사용자를 생성해야 합니다.

1. 다음 방법 중 하나를 사용하여 AWS CLI를 설치하거나 액세스 권한을 얻습니다.
   + **(권장)** [최신 버전의 AWS CLI 설치 또는 업데이트](getting-started-install.md).
   + [AWS CLI 버전 2의 이전 릴리스 설치](getting-started-version.md). 특정 버전 설치는 팀에서 도구를 특정 버전에 맞게 조정할 때 주로 사용됩니다.
   + [소스에서 AWS CLI 빌드 및 설치](getting-started-source-install.md). GitHub 소스에서 AWS CLI를 빌드하는 것은 사전 빌드된 설치 프로그램으로 직접 지원하지 않는 플랫폼에서 작업하는 고객들이 주로 사용하는 보다 심층적인 방법입니다.
   + [AWS CLI에 대한 공식 Amazon ECR 퍼블릭 또는 Docker 이미지 실행](getting-started-docker.md).
   + AWS CloudShell을 사용하여 브라우저에서 AWS 콘솔의 AWS CLI 버전 2에 액세스합니다. 자세한 내용은 [AWS CloudShell 사용 설명서](https://docs.aws.amazon.com/cloudshell/latest/userguide/)를 참조하세요.

1. [AWS CLI에 대한 액세스 권한을 얻은 후 처음 사용할 때 IAM 보안 인증 정보를 사용하여 AWS CLI를 구성합니다](getting-started-quickstart.md).

**설치 프로그램 또는 구성 오류 문제 해결**  
AWS CLI를 설치하거나, 제거하거나 구성한 후 문제가 발생할 경우 [AWS CLI에 대한 오류 문제 해결](cli-chap-troubleshooting.md) 섹션에 나온 문제 해결 단계를 참조하세요.

**Topics**
+ [

# AWS CLI 버전 2를 사용하기 위한 사전 조건
](getting-started-prereqs.md)
+ [

# 최신 버전의 AWS CLI 설치 또는 업데이트
](getting-started-install.md)
+ [

# AWS CLI 버전 2의 이전 릴리스 설치
](getting-started-version.md)
+ [

# 소스에서 AWS CLI 빌드 및 설치
](getting-started-source-install.md)
+ [

# AWS CLI에 대한 공식 Amazon ECR 퍼블릭 또는 Docker 이미지 실행
](getting-started-docker.md)
+ [

# AWS CLI 설정
](getting-started-quickstart.md)

# AWS CLI 버전 2를 사용하기 위한 사전 조건
<a name="getting-started-prereqs"></a>

AWS CLI를 사용하여 AWS 서비스에 액세스하려면 IAM 또는 IAM Identity Center 자격 증명이 있는 AWS 계정이 필요합니다. AWS CLI 명령을 실행할 때 AWS CLI에서 해당 AWS 보안 인증에 액세스할 수 있어야 합니다. AWS 계정의 보안을 강화하려면 루트 또는 IAM 사용자를 사용할 때 수명이 짧은 자격 증명만 사용하는 것이 좋습니다. AWS에서 실행할 작업에 대한 액세스 보안 인증을 제공하려면 최소 권한이 있는 사용자를 생성해야 합니다. 모범 사례에 대한 자세한 내용은 IAM 사용 설명서의 [보안 모범 사례](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#bp-users-federation-idp)를 참조하세요.

**Topics**
+ [

## IAM 또는 IAM Identity Center 관리 계정 생성
](#getting-started-prereqs-iam)
+ [

## 다음 단계
](#getting-started-prereqs-next)

## IAM 또는 IAM Identity Center 관리 계정 생성
<a name="getting-started-prereqs-iam"></a>

AWS CLI를 구성하려면 먼저 IAM 또는 IAM Identity Center 계정을 만들어야 합니다.


**계정 생성 옵션**  

| 자격 증명을 관리하는 방법 선택 | 목적 | 계정 생성 방법 | 계정에 대한 프로그래밍 방식 액세스를 구성하는 방법 | 
| --- | --- | --- | --- | 
| AWS Management Console 자격 증명 | 초기 계정 설정 중에 생성된 루트 사용자, IAM 사용자 또는 자격 증명 공급자의 페더레이션 자격 증명에 해당하는 단기 자격 증명을 사용합니다. | [https://portal.aws.amazon.com/billing/signup](https://portal.aws.amazon.com/billing/signup) 페이지를 열고 온라인 지침을 따릅니다. | 추가 단계는 필요하지 않습니다. AWS 계정으로 AWS CLI에 로그인려면 [콘솔 자격 증명을 사용하여 AWS 로컬 개발을 위해 로그인](cli-configure-sign-in.md) 섹션을 참조합니다. | 
| IAM Identity Center | 단기 자격 증명을 사용하여 AWS 서비스에 액세스합니다. | 지침을 보려면 AWS IAM Identity Center 사용 설명서의 시작하기 지침을 참조하세요. | AWS IAM Identity Center 사용 설명서의 지침에 따라 프로그래밍 방식의 액세스를 구성합니다. | 
| AWS Identity and Access Management(권장되지 않음) | 장기 자격 증명을 사용하여 AWS 서비스에 액세스합니다. | IAM 사용 설명서의 비상 액세스를 위한 생성에 나와 있는 지침을 따르세요. | IAM 사용 설명서에 나온 사용자의 액세스 키 관리를 수행하여 프로그래밍 방식의 액세스를 구성합니다. | 

## 다음 단계
<a name="getting-started-prereqs-next"></a>

AWS 계정 및 IAM 보안 인증 정보를 생성한 후 다음 중 하나를 수행하여 AWS CLI를 사용할 수 있습니다.
+ 컴퓨터에 AWS CLI 버전 2의 [최신 릴리스를 설치](getting-started-install.md)합니다.
+ 컴퓨터에 AWS CLI 버전 2의 [이전 릴리스를 설치](getting-started-version.md)합니다.
+ [Docker 이미지를 사용](getting-started-docker.md)하여 컴퓨터에서 AWS CLI 버전 2에 액세스합니다.
+ AWS CloudShell을 사용하여 브라우저에서 AWS 콘솔의 AWS CLI 버전 2에 액세스합니다. 자세한 내용은 [AWS CloudShell 사용 설명서](https://docs.aws.amazon.com/cloudshell/latest/userguide/)를 참조하세요.

# 최신 버전의 AWS CLI 설치 또는 업데이트
<a name="getting-started-install"></a>

이 주제에서는 지원되는 운영 체제에서 AWS Command Line Interface(AWS CLI)의 최신 릴리스를 설치하거나 업데이트하는 방법을 설명합니다. AWS CLI의 최신 릴리스에 대한 자세한 내용은 GitHub에서 [AWS CLI 버전 2 변경 로그](https://raw.githubusercontent.com/aws/aws-cli/v2/CHANGELOG.rst)를 참조하세요.

AWS CLI의 이전 릴리스를 설치하려면 [AWS CLI 버전 2의 이전 릴리스 설치](getting-started-version.md) 섹션을 참조하세요. 제거 지침은 [AWS CLI 버전 2 제거](uninstall.md) 섹션을 참조하세요.

**중요**  
AWS CLI 버전 1과 2는 동일한 `aws` 명령 이름을 사용합니다. 이전에 AWS CLI 버전 1을 설치한 경우 [AWS CLI 버전 2의 마이그레이션 가이드](cliv2-migration.md) 섹션을 참조하세요.

**Topics**
+ [

## AWS CLI 설치 및 업데이트 지침
](#getting-started-install-instructions)
+ [

## AWS CLI 설치 및 제거 오류 문제 해결
](#install-tshoot)
+ [

## 다음 단계
](#install-next-steps)

## AWS CLI 설치 및 업데이트 지침
<a name="getting-started-install-instructions"></a>

설치 지침은 해당 운영 체제에 대한 섹션을 참조하세요.

### Linux
<a name="install-linux"></a>

#### 설치 및 업데이트 요구 사항
<a name="install-linux-prereqs"></a>
+ 다운로드한 패키지를 추출 또는 "압축 해제"할 수 있어야 합니다. 운영 체제에 기본 제공 `unzip` 명령이 없는 경우 이와 동등한 명령을 사용하세요.
+ AWS CLI에서는 `glibc`, `groff` 및 `less`를 사용합니다. 이들은 Linux의 대부분의 주요 배포판에 기본적으로 포함되어 있습니다.
+ AWS CLI는 CentOS, Fedora, Ubuntu, Amazon Linux 1, Amazon Linux 2, Amazon Linux 2023 및 Linux ARM 최신 배포판의 64비트 버전에서 지원됩니다.
+ AWS는 `snap` 이외의 타사 리포지토리를 유지 관리하지 않으므로, 해당 리포지토리에 최신 버전의 AWS CLI가 포함되어 있다고 보장할 수 없습니다.

#### AWS CLI 설치 또는 업데이트
<a name="install-linux-instructions"></a>

**주의**  
Amazon Linux에서 처음 업데이트하는 경우 최신 버전의 AWS CLI를 설치하려면 다음 명령을 사용하여 사전 설치된 `yum` 버전을 제거해야 합니다.  

```
$ sudo yum remove awscli
```
AWS CLI의 `yum` 설치가 제거된 후 아래 Linux 설치 지침을 따르세요.

다음 방법 중 하나를 사용하여 AWS CLI를 설치할 수 있습니다.
+ 설치할 버전을 지정할 수 있으므로 버전 제어에는 ****명령줄 설치 관리자 프로그램이 적합합니다. 이 옵션은 자동 업데이트되지 않으며 업데이트할 때마다 새 설치 관리자를 다운로드하여 이전 버전을 덮어써야 합니다.
+ **공식적으로 지원되는 `snap` 패키지**는 스냅 패키지가 자동으로 새로 고쳐지므로 항상 최신 버전의 AWS CLI를 사용할 수 있는 좋은 옵션입니다. 마이너 버전의 AWS CLI를 선택하는 기능이 기본적으로 지원되지 않으므로 팀에서 버전을 고정해야 하는 경우 최적의 설치 방법이 아닙니다.

------
#### [ Command line installer - Linux x86 (64-bit) ]

AWS CLI의 현재 설치를 업데이트하려면 업데이트할 때마다 새 설치 관리자를 다운로드하여 이전 버전을 덮어씁니다. 명령줄에서 다음 단계에 따라 Linux에 AWS CLI를 설치합니다.

다음은 기본 설치를 제공하는 단일 복사 및 붙여넣기 그룹의 빠른 설치 단계입니다. 안내 지침은 다음 단계를 참조하세요.

**참고**  
**(선택 사항)** 다음 명령 블록은 다운로드의 무결성을 먼저 확인하지 않고 AWS CLI를 다운로드하고 설치합니다. 다운로드 무결성을 확인하려면 아래의 단계별 지침을 사용하세요.

AWS CLI를 **설치하려면** 다음 명령을 실행합니다.

```
$ curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
unzip awscliv2.zip
sudo ./aws/install
```

AWS CLI의 **현재 설치를 업데이트하려면** 기존 심볼 링크 및 설치 관리자 정보를 추가하여 `--bin-dir`, `--install-dir`, `--update` 파라미터를 포함한 `install` 명령을 구성합니다. 다음 명령 블록은 예제 심볼 링크 */usr/local/bin*과 예제 설치 프로그램 위치 */usr/local/aws-cli*를 사용하여 현재 사용자에 대해 로컬로 AWS CLI를 설치합니다.

```
$ curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
unzip awscliv2.zip
sudo ./aws/install --bin-dir /usr/local/bin --install-dir /usr/local/aws-cli --update
```

**설치 단계 안내**

1. 다음 방법 중 하나로 설치 파일을 다운로드합니다.
   + **`curl` 명령 사용** - `-o` 옵션은 다운로드한 패키지가 기록되는 파일 이름을 지정합니다. 다음 예제 명령의 옵션을 사용하면 다운로드한 파일이 로컬 이름 `awscliv2.zip`으로 현재 디렉터리에 기록됩니다.

     ```
     $ curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
     ```
   + **URL에서 다운로드** - 브라우저를 사용하여 설치 관리자를 다운로드하려면 다음 URL을 사용합니다. [https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip](https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip) 

1. **(선택 사항) 다운로드한 zip 파일의 무결성 확인**

   위의 단계에서 AWS CLI 설치 관리자 패키지 `.zip`를 수동으로 다운로드하도록 선택한 경우 다음 단계에 따라 `GnuPG` 도구를 사용하여 서명을 확인할 수 있습니다.

   AWS CLI 설치 관리자 패키지 `.zip` 파일은 PGP 서명을 사용하여 암호로 서명됩니다. 파일이 손상되거나 변경되면 이 확인이 실패하며 설치를 진행해서는 안 됩니다.

   1. 패키지 관리자를 사용하여 `gpg` 명령을 다운로드하고 설치합니다. `GnuPG`에 대한 자세한 내용은 [GnuPG 웹 사이트](https://www.gnupg.org/)를 참조하세요.

   1. 퍼블릭 키 파일을 만들려면 텍스트 파일을 만들고 다음 텍스트를 붙여 넣습니다.

      ```
      -----BEGIN PGP PUBLIC KEY BLOCK-----
      
      mQINBF2Cr7UBEADJZHcgusOJl7ENSyumXh85z0TRV0xJorM2B/JL0kHOyigQluUG
      ZMLhENaG0bYatdrKP+3H91lvK050pXwnO/R7fB/FSTouki4ciIx5OuLlnJZIxSzx
      PqGl0mkxImLNbGWoi6Lto0LYxqHN2iQtzlwTVmq9733zd3XfcXrZ3+LblHAgEt5G
      TfNxEKJ8soPLyWmwDH6HWCnjZ/aIQRBTIQ05uVeEoYxSh6wOai7ss/KveoSNBbYz
      gbdzoqI2Y8cgH2nbfgp3DSasaLZEdCSsIsK1u05CinE7k2qZ7KgKAUIcT/cR/grk
      C6VwsnDU0OUCideXcQ8WeHutqvgZH1JgKDbznoIzeQHJD238GEu+eKhRHcz8/jeG
      94zkcgJOz3KbZGYMiTh277Fvj9zzvZsbMBCedV1BTg3TqgvdX4bdkhf5cH+7NtWO
      lrFj6UwAsGukBTAOxC0l/dnSmZhJ7Z1KmEWilro/gOrjtOxqRQutlIqG22TaqoPG
      fYVN+en3Zwbt97kcgZDwqbuykNt64oZWc4XKCa3mprEGC3IbJTBFqglXmZ7l9ywG
      EEUJYOlb2XrSuPWml39beWdKM8kzr1OjnlOm6+lpTRCBfo0wa9F8YZRhHPAkwKkX
      XDeOGpWRj4ohOx0d2GWkyV5xyN14p2tQOCdOODmz80yUTgRpPVQUtOEhXQARAQAB
      tCFBV1MgQ0xJIFRlYW0gPGF3cy1jbGlAYW1hem9uLmNvbT6JAlQEEwEIAD4CGwMF
      CwkIBwIGFQoJCAsCBBYCAwECHgECF4AWIQT7Xbd/1cEYuAURraimMQrMRnJHXAUC
      aGveYQUJDMpiLAAKCRCmMQrMRnJHXKBYD/9Ab0qQdGiO5hObchG8xh8Rpb4Mjyf6
      0JrVo6m8GNjNj6BHkSc8fuTQJ/FaEhaQxj3pjZ3GXPrXjIIVChmICLlFuRXYzrXc
      Pw0lniybypsZEVai5kO0tCNBCCFuMN9RsmmRG8mf7lC4FSTbUDmxG/QlYK+0IV/l
      uJkzxWa+rySkdpm0JdqumjegNRgObdXHAQDWlubWQHWyZyIQ2B4U7AxqSpcdJp6I
      S4Zds4wVLd1WE5pquYQ8vS2cNlDm4QNg8wTj58e3lKN47hXHMIb6CHxRnb947oJa
      pg189LLPR5koh+EorNkA1wu5mAJtJvy5YMsppy2y/kIjp3lyY6AmPT1posgGk70Z
      CmToEZ5rbd7ARExtlh76A0cabMDFlEHDIK8RNUOSRr7L64+KxOUegKBfQHb9dADY
      qqiKqpCbKgvtWlds909Ms74JBgr2KwZCSY1HaOxnIr4CY43QRqAq5YHOay/mU+6w
      hhmdF18vpyK0vfkvvGresWtSXbag7Hkt3XjaEw76BzxQH21EBDqU8WJVjHgU6ru+
      DJTs+SxgJbaT3hb/vyjlw0lK+hFfhWKRwgOXH8vqducF95NRSUxtS4fpqxWVaw3Q
      V2OWSjbne99A5EPEySzryFTKbMGwaTlAwMCwYevt4YT6eb7NmFhTx0Fis4TalUs+
      j+c7Kg92pDx2uQ==
      =OBAt
      -----END PGP PUBLIC KEY BLOCK-----
      ```

      참고로 다음은 퍼블릭 키의 세부 정보입니다.

      ```
      Key ID:           A6310ACC4672475C
      Type:             RSA
      Size:             4096/4096
      Created:          2019-09-18
      Expires:          2026-07-07
      User ID:          AWS CLI Team <aws-cli@amazon.com>
      Key fingerprint:  FB5D B77F D5C1 18B8 0511  ADA8 A631 0ACC 4672 475C
      ```

   1. 다음 명령을 사용하여 AWS CLI 퍼블릭 키를 가져옵니다. *public-key-file-name*을 생성한 퍼블릭 키의 파일 이름으로 대체합니다.

      ```
      $ gpg --import public-key-file-name
      gpg: /home/username/.gnupg/trustdb.gpg: trustdb created
      gpg: key A6310ACC4672475C: public key "AWS CLI Team <aws-cli@amazon.com>" imported
      gpg: Total number processed: 1
      gpg:               imported: 1
      ```

   1. 다운로드한 패키지의 AWS CLI 서명 파일을 다운로드합니다. 해당 `.zip` 파일과 경로 및 이름은 같지만 확장명은 `.sig`입니다. 다음 예제에서는 이 파일을 현재 디렉터리에 이름이 `awscliv2.sig`인 파일로 저장합니다.

      **최신 버전의 AWS CLI의 경우** 다음 명령 블록을 사용하세요.

      ```
      $ curl -o awscliv2.sig https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip.sig
      ```

   1. `.sig` 및 `.zip` 파일 이름을 모두 `gpg` 명령의 파라미터로 전달하여 서명을 확인합니다.

      ```
      $ gpg --verify awscliv2.sig awscliv2.zip
      ```

      다음과 같이 출력됩니다.

      ```
      gpg: Signature made Mon Nov  4 19:00:01 2019 PST
      gpg:                using RSA key FB5D B77F D5C1 18B8 0511 ADA8 A631 0ACC 4672 475C
      gpg: Good signature from "AWS CLI Team <aws-cli@amazon.com>" [unknown]
      gpg: WARNING: This key is not certified with a trusted signature!
      gpg:          There is no indication that the signature belongs to the owner.
      Primary key fingerprint: FB5D B77F D5C1 18B8 0511  ADA8 A631 0ACC 4672 475C
      ```
**중요**  
결과에서 경고가 예상되지만 문제가 되지는 않습니다. 이 경고는 개인 PGP 키(보유한 경우)와 AWS CLI PGP 키 사이에 신뢰 체인이 없기 때문에 발생한 것입니다. 자세한 내용은 [Web of trust](https://en.wikipedia.org/wiki/Web_of_trust)를 참조하세요.

1. 설치 관리자의 압축을 풉니다. Linux 배포에 기본 제공 `unzip` 명령이 없는 경우 이와 동등한 명령을 사용하여 압축을 풉니다. 다음 명령 예제는 패키지의 압축을 풀고 현재 디렉터리 아래에 `aws`라는 디렉터리를 만듭니다.

   ```
   $ unzip awscliv2.zip
   ```
**참고**  
이전 버전에서 업데이트하는 경우 `unzip` 명령을 실행하면 기존 파일을 덮어쓸지 묻는 메시지가 표시됩니다. 스크립트 자동화와 같은 경우에 이러한 프롬프트를 건너뛰려면 `unzip`에 대한 `-u` 업데이트 플래그를 사용합니다. 이 플래그는 기존 파일을 자동으로 업데이트하고 필요에 따라 새 파일을 만듭니다.  

   ```
   $ unzip -u awscliv2.zip
   ```

1. 설치 프로그램을 실행합니다. 설치 명령은 새로 압축을 푼 `install` 디렉터리의 `aws`이라는 이름의 파일을 사용합니다. 기본적으로 파일은 모두 `/usr/local/aws-cli`에 설치되고 `/usr/local/bin`에 심볼 링크가 생성됩니다. 이 명령은 해당 디렉터리에 대한 쓰기 권한을 부여하는 `sudo`를 포함합니다.

   ```
   $ sudo ./aws/install
   ```

   이미 쓰기 권한이 있는 디렉터리를 지정하는 경우 `sudo` 없이도 설치할 수 있습니다. `install` 명령에 대해 다음 지침에 따라 설치 위치를 지정합니다.
   + `-i` 및 `-b` 파라미터에 입력하는 경로의 볼륨 이름이나 디렉터리 이름에 공백이나 기타 공백 문자가 없어야 합니다. 공백이 있으면 설치가 실패합니다.
   + `--install-dir` 또는 `-i` - 이 옵션은 모든 파일을 복사할 디렉터리를 지정합니다.

     기본 값은 `/usr/local/aws-cli`입니다.
   + `--bin-dir` 또는 `-b` - 이 옵션은 설치 디렉터리의 기본 `aws` 프로그램에 대한 심볼 링크를 지정된 경로의 `aws` 파일에 연결하도록 지정합니다. 지정된 디렉터리에 대한 쓰기 권한이 있어야 합니다. 이미 경로에 있는 디렉터리에 대한 symlink를 만들면 설치 디렉터리를 사용자의 `$PATH` 변수에 추가할 필요가 없습니다.

     기본 값은 `/usr/local/bin`입니다.

   ```
   $ ./aws/install -i /usr/local/aws-cli -b /usr/local/bin
   ```
**참고**  
AWS CLI의 현재 설치를 업데이트하려면 기존 심볼 링크 및 설치 관리자 정보를 추가하여 `--update` 파라미터를 포함한 `install` 명령을 구성합니다.  

   ```
   $ sudo ./aws/install --bin-dir /usr/local/bin --install-dir /usr/local/aws-cli --update
   ```
기존 심볼 링크 및 설치 디렉터리를 찾으려면 다음 단계를 따릅니다.  
`which` 명령을 사용하여 symlink를 찾습니다. 그러면 `--bin-dir` 파라미터와 함께 사용할 경로가 제공됩니다.  

      ```
      $ which aws
      /usr/local/bin/aws
      ```
`ls` 명령을 사용하여 symlink가 가리키는 디렉터리를 찾습니다. 그러면 `--install-dir` 파라미터와 함께 사용할 경로가 제공됩니다.  

      ```
      $ ls -l /usr/local/bin/aws
      lrwxrwxrwx 1 ec2-user ec2-user 49 Oct 22 09:49 /usr/local/bin/aws -> /usr/local/aws-cli/v2/current/bin/aws
      ```

1. 다음 명령을 사용하여 설치를 확인합니다.

   ```
   $ aws --version
   aws-cli/2.27.41 Python/3.11.6 Linux/5.10.205-195.807.amzn2.x86_64
   ```

   `aws` 명령을 찾을 수 없는 경우 터미널을 재시작하거나 [AWS CLI에 대한 오류 문제 해결](cli-chap-troubleshooting.md)에 나온 문제 해결 지침을 따라야 할 수도 있습니다.

------
#### [ Command line - Linux ARM ]

AWS CLI의 현재 설치를 업데이트하려면 업데이트할 때마다 새 설치 관리자를 다운로드하여 이전 버전을 덮어씁니다. 명령줄에서 다음 단계에 따라 Linux에 AWS CLI를 설치합니다.

다음은 기본 설치를 제공하는 단일 복사 및 붙여넣기 그룹의 빠른 설치 단계입니다. 안내 지침은 다음 단계를 참조하세요.

**참고**  
**(선택 사항)** 다음 명령 블록은 다운로드의 무결성을 먼저 확인하지 않고 AWS CLI를 다운로드하고 설치합니다. 다운로드 무결성을 확인하려면 아래의 단계별 지침을 사용하세요.

AWS CLI를 **설치하려면** 다음 명령을 실행합니다.

```
$ curl "https://awscli.amazonaws.com/awscli-exe-linux-aarch64.zip" -o "awscliv2.zip"
unzip awscliv2.zip
sudo ./aws/install
```

AWS CLI의 **현재 설치를 업데이트하려면** 기존 심볼 링크 및 설치 관리자 정보를 추가하여 `--bin-dir`, `--install-dir`, `--update` 파라미터를 포함한 `install` 명령을 구성합니다. 다음 명령 블록은 */usr/local/bin*의 예제 심볼 링크와 */usr/local/aws-cli*의 설치 관리자 위치 예제를 사용합니다.

```
$ curl "https://awscli.amazonaws.com/awscli-exe-linux-aarch64.zip" -o "awscliv2.zip"
unzip awscliv2.zip
sudo ./aws/install --bin-dir /usr/local/bin --install-dir /usr/local/aws-cli --update
```

**설치 단계 안내**

1. 다음 방법 중 하나로 설치 파일을 다운로드합니다.
   + **`curl` 명령 사용** - `-o` 옵션은 다운로드한 패키지가 기록되는 파일 이름을 지정합니다. 다음 예제 명령의 옵션을 사용하면 다운로드한 파일이 로컬 이름 `awscliv2.zip`으로 현재 디렉터리에 기록됩니다.

     ```
     $ curl "https://awscli.amazonaws.com/awscli-exe-linux-aarch64.zip" -o "awscliv2.zip"
     ```
   + **URL에서 다운로드** - 브라우저를 사용하여 설치 관리자를 다운로드하려면 다음 URL을 사용합니다. [https://awscli.amazonaws.com/awscli-exe-linux-aarch64.zip](https://awscli.amazonaws.com/awscli-exe-linux-aarch64.zip) 

1. **(선택 사항) 다운로드한 zip 파일의 무결성 확인**

   위의 단계에서 AWS CLI 설치 관리자 패키지 `.zip`를 수동으로 다운로드하도록 선택한 경우 다음 단계에 따라 `GnuPG` 도구를 사용하여 서명을 확인할 수 있습니다.

   AWS CLI 설치 관리자 패키지 `.zip` 파일은 PGP 서명을 사용하여 암호로 서명됩니다. 파일이 손상되거나 변경되면 이 확인이 실패하며 설치를 진행해서는 안 됩니다.

   1. 패키지 관리자를 사용하여 `gpg` 명령을 다운로드하고 설치합니다. `GnuPG`에 대한 자세한 내용은 [GnuPG 웹 사이트](https://www.gnupg.org/)를 참조하세요.

   1. 퍼블릭 키 파일을 만들려면 텍스트 파일을 만들고 다음 텍스트를 붙여 넣습니다.

      ```
      -----BEGIN PGP PUBLIC KEY BLOCK-----
      
      mQINBF2Cr7UBEADJZHcgusOJl7ENSyumXh85z0TRV0xJorM2B/JL0kHOyigQluUG
      ZMLhENaG0bYatdrKP+3H91lvK050pXwnO/R7fB/FSTouki4ciIx5OuLlnJZIxSzx
      PqGl0mkxImLNbGWoi6Lto0LYxqHN2iQtzlwTVmq9733zd3XfcXrZ3+LblHAgEt5G
      TfNxEKJ8soPLyWmwDH6HWCnjZ/aIQRBTIQ05uVeEoYxSh6wOai7ss/KveoSNBbYz
      gbdzoqI2Y8cgH2nbfgp3DSasaLZEdCSsIsK1u05CinE7k2qZ7KgKAUIcT/cR/grk
      C6VwsnDU0OUCideXcQ8WeHutqvgZH1JgKDbznoIzeQHJD238GEu+eKhRHcz8/jeG
      94zkcgJOz3KbZGYMiTh277Fvj9zzvZsbMBCedV1BTg3TqgvdX4bdkhf5cH+7NtWO
      lrFj6UwAsGukBTAOxC0l/dnSmZhJ7Z1KmEWilro/gOrjtOxqRQutlIqG22TaqoPG
      fYVN+en3Zwbt97kcgZDwqbuykNt64oZWc4XKCa3mprEGC3IbJTBFqglXmZ7l9ywG
      EEUJYOlb2XrSuPWml39beWdKM8kzr1OjnlOm6+lpTRCBfo0wa9F8YZRhHPAkwKkX
      XDeOGpWRj4ohOx0d2GWkyV5xyN14p2tQOCdOODmz80yUTgRpPVQUtOEhXQARAQAB
      tCFBV1MgQ0xJIFRlYW0gPGF3cy1jbGlAYW1hem9uLmNvbT6JAlQEEwEIAD4CGwMF
      CwkIBwIGFQoJCAsCBBYCAwECHgECF4AWIQT7Xbd/1cEYuAURraimMQrMRnJHXAUC
      aGveYQUJDMpiLAAKCRCmMQrMRnJHXKBYD/9Ab0qQdGiO5hObchG8xh8Rpb4Mjyf6
      0JrVo6m8GNjNj6BHkSc8fuTQJ/FaEhaQxj3pjZ3GXPrXjIIVChmICLlFuRXYzrXc
      Pw0lniybypsZEVai5kO0tCNBCCFuMN9RsmmRG8mf7lC4FSTbUDmxG/QlYK+0IV/l
      uJkzxWa+rySkdpm0JdqumjegNRgObdXHAQDWlubWQHWyZyIQ2B4U7AxqSpcdJp6I
      S4Zds4wVLd1WE5pquYQ8vS2cNlDm4QNg8wTj58e3lKN47hXHMIb6CHxRnb947oJa
      pg189LLPR5koh+EorNkA1wu5mAJtJvy5YMsppy2y/kIjp3lyY6AmPT1posgGk70Z
      CmToEZ5rbd7ARExtlh76A0cabMDFlEHDIK8RNUOSRr7L64+KxOUegKBfQHb9dADY
      qqiKqpCbKgvtWlds909Ms74JBgr2KwZCSY1HaOxnIr4CY43QRqAq5YHOay/mU+6w
      hhmdF18vpyK0vfkvvGresWtSXbag7Hkt3XjaEw76BzxQH21EBDqU8WJVjHgU6ru+
      DJTs+SxgJbaT3hb/vyjlw0lK+hFfhWKRwgOXH8vqducF95NRSUxtS4fpqxWVaw3Q
      V2OWSjbne99A5EPEySzryFTKbMGwaTlAwMCwYevt4YT6eb7NmFhTx0Fis4TalUs+
      j+c7Kg92pDx2uQ==
      =OBAt
      -----END PGP PUBLIC KEY BLOCK-----
      ```

      참고로 다음은 퍼블릭 키의 세부 정보입니다.

      ```
      Key ID:           A6310ACC4672475C
      Type:             RSA
      Size:             4096/4096
      Created:          2019-09-18
      Expires:          2026-07-07
      User ID:          AWS CLI Team <aws-cli@amazon.com>
      Key fingerprint:  FB5D B77F D5C1 18B8 0511  ADA8 A631 0ACC 4672 475C
      ```

   1. 다음 명령을 사용하여 AWS CLI 퍼블릭 키를 가져옵니다. *public-key-file-name*을 생성한 퍼블릭 키의 파일 이름으로 대체합니다.

      ```
      $ gpg --import public-key-file-name
      gpg: /home/username/.gnupg/trustdb.gpg: trustdb created
      gpg: key A6310ACC4672475C: public key "AWS CLI Team <aws-cli@amazon.com>" imported
      gpg: Total number processed: 1
      gpg:               imported: 1
      ```

   1. 다운로드한 패키지의 AWS CLI 서명 파일을 다운로드합니다. 해당 `.zip` 파일과 경로 및 이름은 같지만 확장명은 `.sig`입니다. 다음 예제에서는 이 파일을 현재 디렉터리에 이름이 `awscliv2.sig`인 파일로 저장합니다.

      **최신 버전의 AWS CLI의 경우** 다음 명령 블록을 사용하세요.

      ```
      $ curl -o awscliv2.sig https://awscli.amazonaws.com/awscli-exe-linux-aarch64.zip.sig
      ```

   1. `.sig` 및 `.zip` 파일 이름을 모두 `gpg` 명령의 파라미터로 전달하여 서명을 확인합니다.

      ```
      $ gpg --verify awscliv2.sig awscliv2.zip
      ```

      다음과 같이 출력됩니다.

      ```
      gpg: Signature made Mon Nov  4 19:00:01 2019 PST
      gpg:                using RSA key FB5D B77F D5C1 18B8 0511 ADA8 A631 0ACC 4672 475C
      gpg: Good signature from "AWS CLI Team <aws-cli@amazon.com>" [unknown]
      gpg: WARNING: This key is not certified with a trusted signature!
      gpg:          There is no indication that the signature belongs to the owner.
      Primary key fingerprint: FB5D B77F D5C1 18B8 0511  ADA8 A631 0ACC 4672 475C
      ```
**중요**  
결과에서 경고가 예상되지만 문제가 되지는 않습니다. 이 경고는 개인 PGP 키(보유한 경우)와 AWS CLI PGP 키 사이에 신뢰 체인이 없기 때문에 발생한 것입니다. 자세한 내용은 [Web of trust](https://en.wikipedia.org/wiki/Web_of_trust)를 참조하세요.

1. 설치 관리자의 압축을 풉니다. Linux 배포에 기본 제공 `unzip` 명령이 없는 경우 이와 동등한 명령을 사용하여 압축을 풉니다. 다음 명령 예제는 패키지의 압축을 풀고 현재 디렉터리 아래에 `aws`라는 디렉터리를 만듭니다.

   ```
   $ unzip awscliv2.zip
   ```
**참고**  
이전 버전에서 업데이트하는 경우 `unzip` 명령을 실행하면 기존 파일을 덮어쓸지 묻는 메시지가 표시됩니다. 스크립트 자동화와 같은 경우에 이러한 프롬프트를 건너뛰려면 `unzip`에 대한 `-u` 업데이트 플래그를 사용합니다. 이 플래그는 기존 파일을 자동으로 업데이트하고 필요에 따라 새 파일을 만듭니다.  

   ```
   $ unzip -u awscliv2.zip
   ```

1. 설치 프로그램을 실행합니다. 설치 명령은 새로 압축을 푼 `install` 디렉터리의 `aws`이라는 이름의 파일을 사용합니다. 기본적으로 파일은 모두 `/usr/local/aws-cli`에 설치되고 `/usr/local/bin`에 심볼 링크가 생성됩니다. 이 명령은 해당 디렉터리에 대한 쓰기 권한을 부여하는 `sudo`를 포함합니다.

   ```
   $ sudo ./aws/install
   ```

   이미 쓰기 권한이 있는 디렉터리를 지정하는 경우 `sudo` 없이도 설치할 수 있습니다. `install` 명령에 대해 다음 지침에 따라 설치 위치를 지정합니다.
   + `-i` 및 `-b` 파라미터에 입력하는 경로의 볼륨 이름이나 디렉터리 이름에 공백이나 기타 공백 문자가 없어야 합니다. 공백이 있으면 설치가 실패합니다.
   + `--install-dir` 또는 `-i` - 이 옵션은 모든 파일을 복사할 디렉터리를 지정합니다.

     기본 값은 `/usr/local/aws-cli`입니다.
   + `--bin-dir` 또는 `-b` - 이 옵션은 설치 디렉터리의 기본 `aws` 프로그램에 대한 심볼 링크를 지정된 경로의 `aws` 파일에 연결하도록 지정합니다. 지정된 디렉터리에 대한 쓰기 권한이 있어야 합니다. 이미 경로에 있는 디렉터리에 대한 symlink를 만들면 설치 디렉터리를 사용자의 `$PATH` 변수에 추가할 필요가 없습니다.

     기본 값은 `/usr/local/bin`입니다.

   ```
   $ ./aws/install -i /usr/local/aws-cli -b /usr/local/bin
   ```
**참고**  
AWS CLI의 현재 설치를 업데이트하려면 기존 심볼 링크 및 설치 관리자 정보를 추가하여 `--update` 파라미터를 포함한 `install` 명령을 구성합니다.  

   ```
   $ sudo ./aws/install --bin-dir /usr/local/bin --install-dir /usr/local/aws-cli --update
   ```
기존 심볼 링크 및 설치 디렉터리를 찾으려면 다음 단계를 따릅니다.  
`which` 명령을 사용하여 symlink를 찾습니다. 그러면 `--bin-dir` 파라미터와 함께 사용할 경로가 제공됩니다.  

      ```
      $ which aws
      /usr/local/bin/aws
      ```
`ls` 명령을 사용하여 symlink가 가리키는 디렉터리를 찾습니다. 그러면 `--install-dir` 파라미터와 함께 사용할 경로가 제공됩니다.  

      ```
      $ ls -l /usr/local/bin/aws
      lrwxrwxrwx 1 ec2-user ec2-user 49 Oct 22 09:49 /usr/local/bin/aws -> /usr/local/aws-cli/v2/current/bin/aws
      ```

1. 다음 명령을 사용하여 설치를 확인합니다.

   ```
   $ aws --version
   aws-cli/2.27.41 Python/3.11.6 Linux/5.10.205-195.807.amzn2.x86_64
   ```

   `aws` 명령을 찾을 수 없는 경우 터미널을 재시작하거나 [AWS CLI에 대한 오류 문제 해결](cli-chap-troubleshooting.md)에 나온 문제 해결 지침을 따라야 할 수도 있습니다.

------
#### [ Snap package ]

`snap`은 공식 AWS 지원 버전의 AWS CLI를 제공합니다. 시스템에 항상 최신 버전의 AWS CLI를 설치하려면 스냅 패키지를 사용하면 자동 업데이트를 통해 이를 제공할 수 있습니다. 마이너 버전의 AWS CLI를 선택하는 기능이 기본적으로 지원되지 않으므로 팀에서 버전을 고정해야 하는 경우 최적의 설치 방법이 아닙니다. 특정 마이너 버전의 AWS CLI를 설치하려면 명령줄 설치 관리자를 사용하는 것이 좋습니다.

1. Linux 플랫폼에 아직 `snap`이 설치되어 있지 않은 경우 플랫폼에 `snap`을 설치하세요.

   1. `snap` 설치에 대한 자세한 내용은 **스냅 설명서의 [데몬 설치](https://snapcraft.io/docs/installing-snapd)를 참조하세요.

   1. `PATH` 변수가 올바르게 업데이트되도록 시스템을 다시 시작해야 할 수 있습니다. 설치에 문제가 있는 경우 **Snap 설명서의 [일반적인 문제 해결](https://snapcraft.io/docs/fix-common-issues)에 나와 있는 단계를 따르세요.

   1. `snap`이 올바르게 설치되었는지 확인하려면 다음 명령을 실행합니다.

      ```
      $ snap version
      ```

1. CLI에 대해 다음 `snap install` 명령을 실행합니다.

   ```
   $ snap install aws-cli --classic
   ```

   권한에 따라 명령에 `sudo`를 추가해야 할 수도 있습니다.

   ```
   $ sudo snap install aws-cli --classic
   ```
**참고**  
추가 `snap` 지침을 포함하여 AWS CLI용 스냅 리포지토리를 보려면 **Canonical Snapcraft 웹사이트의 [https://snapcraft.io/aws-cli](https://snapcraft.io/aws-cli) 페이지를 참조하세요.

1. AWS CLI가 올바르게 설치되었는지 확인하세요.

   ```
   $ aws --version
   aws-cli/2.27.41 Python/3.11.6 Linux/5.10.205-195.807.amzn2.x86_64
   ```

   오류가 발생한 경우 [AWS CLI에 대한 오류 문제 해결](cli-chap-troubleshooting.md) 섹션을 참조하세요.

------

### macOS
<a name="install-macos"></a>

#### 설치 및 업데이트 요구 사항
<a name="install-macos-prereqs"></a>
+ macOS 버전 11 이상에서 AWS CLI가 지원됩니다. 자세한 내용은 *AWS 개발자 도구 블로그*에서 [macOS support policy updates for the AWS CLI v2](https://aws.amazon.com/blogs/developer/macos-support-policy-updates-for-the-aws-cli-v2/)를 참조하세요.
+ AWS에서는 타사 리포지토리를 유지 관리하지 않으므로 최신 버전의 AWS CLI가 포함되었다고 보장할 수 없습니다.

**macOS버전 지원 매트릭스**


| AWS CLI 버전 | 지원되는 macOS 버전 | 
| --- | --- | 
| 2.21.0\$1현재 | 11\$1 | 
| 2.17.0\$12.20.0 | 10.15\$1 | 
| 2.0.0\$12.16.12 | 10.14 이하 | 

#### AWS CLI 설치 또는 업데이트
<a name="install-macos0-instructions"></a>

최신 버전으로 업데이트하는 경우 현재 버전에서 사용한 것과 동일한 설치 방법을 사용하세요. 다음 방법을 사용하여 macOS에서 AWS CLI를 설치할 수 있습니다.

------
#### [ GUI installer ]

다음 단계는 표준 macOS 사용자 인터페이스와 브라우저를 사용하여 AWS CLI의 최신 버전을 설치하는 방법을 보여줍니다.

1. 브라우저에서 macOS `pkg` 파일을 다운로드합니다. [https://awscli.amazonaws.com/AWSCLIV2.pkg](https://awscli.amazonaws.com/AWSCLIV2.pkg) 

1. 다운로드한 파일을 실행하고 화면의 지침을 따릅니다. 다음과 같은 방식으로 AWS CLI를 설치하도록 선택할 수 있습니다.
   + **컴퓨터의 모든 사용자 허용( 필요)`sudo`**
     + 임의의 폴더에 설치하거나 `/usr/local/aws-cli`의 권장 기본 폴더를 선택할 수 있습니다.
     + 설치 관리자는 사용자가 선택한 설치 폴더에 있는 기본 프로그램에 연결된 `/usr/local/bin/aws`에서 symlink를 자동으로 만듭니다.
   + **현재 사용자만 허용(가 필요하지 않음)`sudo`**
     + 쓰기 권한이 있는 폴더에 설치할 수 있습니다.
     + 표준 사용자 권한으로 인해 설치 관리자가 완료된 후 명령 프롬프트에서 다음 명령을 사용하여 `$PATH` 및 `aws` 프로그램을 가리키는 symlink 파일을 `aws_completer`에 수동으로 만들어야 합니다. symlink의 기본 위치는 `/usr/local/bin/`입니다.

       ```
       $ ln -s /folder/installed/aws-cli/aws /usr/local/bin/aws
       $ ln -s /folder/installed/aws-cli/aws_completer /usr/local/bin/aws_completer
       ```

        폴더에 대한 쓰기 권한이 없는 경우 명령에서 `sudo`를 사용해야 할 수 있습니다. 다음 예시에서는 symlink의 기본 위치 `/usr/local/bin/`에서 `sudo`를 사용합니다.

       ```
       $ sudo ln -s /folder/installed/aws-cli/aws /usr/local/bin/aws
       $ sudo ln -s /folder/installed/aws-cli/aws_completer /usr/local/bin/aws_completer
       ```
**참고**  
설치 관리자의 아무 위치에서나 **Cmd\$1L**을 눌러 설치에 대한 디버그 로그를 볼 수 있습니다. 이렇게 하면 로그를 필터링하고 저장할 수 있는 로그 창이 열립니다. 로그 파일도 `/var/log/install.log`에 자동으로 저장됩니다.

1. 셸이 `aws`에서 `$PATH` 명령을 찾아서 실행할 수 있는지 확인하려면 다음 명령을 사용합니다.

   ```
   $ which aws
   /usr/local/bin/aws 
   $ aws --version
   aws-cli/2.27.41 Python/3.11.6 Darwin/23.3.0
   ```

   `aws` 명령을 찾을 수 없는 경우 터미널을 재시작하거나 [AWS CLI에 대한 오류 문제 해결](cli-chap-troubleshooting.md)에 나온 문제 해결 지침을 따라야 할 수도 있습니다.

------
#### [ Command line installer - All users ]

`sudo` 권한이 있는 경우 컴퓨터의 모든 사용자용으로 AWS CLI를 설치할 수 있습니다. 손쉽게 그룹을 복사 및 붙여넣기할 수 있는 단계를 제공합니다. 다음 단계에서 각 라인에 대한 설명을 참조하세요.

```
$ curl "https://awscli.amazonaws.com/AWSCLIV2.pkg" -o "AWSCLIV2.pkg"
$ sudo installer -pkg AWSCLIV2.pkg -target /
```

**설치 지침 안내**

1. `curl` 명령을 사용하여 파일을 다운로드할 수 있습니다. `-o` 옵션은 다운로드한 패키지가 기록되는 파일 이름을 지정합니다. 이 예제에서 파일은 현재 폴더의 `AWSCLIV2.pkg`에 기록됩니다.

   ```
   $ curl "https://awscli.amazonaws.com/AWSCLIV2.pkg" -o "AWSCLIV2.pkg"
   ```

1. 다운로드한 `installer` 파일을 소스로 지정하여 표준 macOS `.pkg` 프로그램을 실행합니다. `-pkg` 파라미터를 사용하여 설치할 패키지의 이름을 지정하고 `-target /` 파라미터를 사용하여 패키지를 설치할 드라이브를 지정합니다. 파일은 `/usr/local/aws-cli`에 설치되고 `/usr/local/bin`에 symlink가 자동으로 만들어집니다. 해당 폴더에 쓰기 권한을 부여하려면 명령에 `sudo`를 포함해야 합니다.

   ```
   $ sudo installer -pkg ./AWSCLIV2.pkg -target /
   ```

   설치가 완료되면 디버그 로그가 `/var/log/install.log`에 기록됩니다.

1. 셸이 `aws`에서 `$PATH` 명령을 찾아서 실행할 수 있는지 확인하려면 다음 명령을 사용합니다.

   ```
   $ which aws
   /usr/local/bin/aws 
   $ aws --version
   aws-cli/2.27.41 Python/3.11.6 Darwin/23.3.0
   ```

   `aws` 명령을 찾을 수 없는 경우 터미널을 재시작하거나 [AWS CLI에 대한 오류 문제 해결](cli-chap-troubleshooting.md)에 나온 문제 해결 지침을 따라야 할 수도 있습니다.

------
#### [ Command line - Current user ]

1. AWS CLI를 설치할 폴더를 지정하려면 원하는 파일 이름을 사용하여 XML 파일을 만들어야 합니다. 이 파일은 다음 예제와 비슷한 XML 형식 파일입니다. 다음과 같이 모든 값을 그대로 두고 9행의 */Users/myusername* 경로를 AWS CLI를 설치할 폴더의 경로로 바꿔야 합니다. *폴더가 이미 있어야 합니다. 그렇지 않으면 명령이 실패합니다.* 다음 XML 예제(*choices.xml*)는 설치 관리자가 `/Users/myusername` 폴더에 AWS CLI를 설치하도록 지정합니다. 여기서는 `aws-cli`라는 폴더가 만들어집니다.

   ```
   <?xml version="1.0" encoding="UTF-8"?>
   <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
   <plist version="1.0">
     <array>
       <dict>
         <key>choiceAttribute</key>
         <string>customLocation</string>
         <key>attributeSetting</key>
         <string>/Users/myusername</string>
         <key>choiceIdentifier</key>
         <string>default</string>
       </dict>
     </array>
   </plist>
   ```

1. `pkg` 명령을 사용하여 `curl` 설치 관리자를 다운로드합니다. `-o` 옵션은 다운로드한 패키지가 기록되는 파일 이름을 지정합니다. 이 예제에서 파일은 현재 폴더의 `AWSCLIV2.pkg`에 기록됩니다.

   ```
   $ curl "https://awscli.amazonaws.com/AWSCLIV2.pkg" -o "AWSCLIV2.pkg"
   ```

1. 다음 옵션을 사용하여 표준 macOS `installer` 프로그램을 실행합니다.
   + `-pkg` 파라미터를 사용하여 설치할 패키지 이름을 지정합니다.
   + `-target` 파라미터를 `CurrentUserHomeDirectory`로 설정하여 *현재 사용자 전용* 설치를 지정합니다.
   + `-applyChoiceChangesXML` 파라미터에서 만든 XML 파일의 경로(현재 폴더 기준) 및 이름을 지정합니다.

   다음 예제에서는 AWS CLI 폴더에 `/Users/myusername/aws-cli`를 설치합니다.

   ```
   $ installer -pkg AWSCLIV2.pkg \
               -target CurrentUserHomeDirectory \
               -applyChoiceChangesXML choices.xml
   ```

1. 표준 사용자 권한은 일반적으로 `$PATH`의 폴더에 쓰기를 허용하지 않기 때문에 이 모드의 설치 관리자는 symlink를 `aws` 및 `aws_completer` 프로그램에 추가하지 않습니다. AWS CLI를 올바르게 실행하려면 설치 관리자가 완료된 후 symlink를 수동으로 만들어야 합니다. 쓸 수 있는 폴더가 `$PATH`에 포함되어 있고 해당 폴더를 대상 경로로 지정하면 `sudo` 없이 다음 명령을 실행할 수 있습니다. 쓰기 가능한 폴더가 `$PATH`에 없는 경우 `sudo`를 사용하여 지정된 대상 폴더에 쓸 수 있는 권한을 얻어야 합니다. symlink의 기본 위치는 `/usr/local/bin/`입니다. `folder/installed`를 AWS CLI 설치 위치 경로로 대체합니다.

   ```
   $ sudo ln -s /folder/installed/aws-cli/aws /usr/local/bin/aws
   $ sudo ln -s /folder/installed/aws-cli/aws_completer /usr/local/bin/aws_completer
   ```

   설치가 완료되면 디버그 로그가 `/var/log/install.log`에 기록됩니다.

1. 셸이 `aws`에서 `$PATH` 명령을 찾아서 실행할 수 있는지 확인하려면 다음 명령을 사용합니다.

   ```
   $ which aws
   /usr/local/bin/aws 
   $ aws --version
   aws-cli/2.27.41 Python/3.11.6 Darwin/23.3.0
   ```

   `aws` 명령을 찾을 수 없는 경우 터미널을 재시작하거나 [AWS CLI에 대한 오류 문제 해결](cli-chap-troubleshooting.md)에 나온 문제 해결 지침을 따라야 할 수도 있습니다.

------

### Windows
<a name="install-windows"></a>

#### 설치 및 업데이트 요구 사항
<a name="install-windows-prereqs"></a>
+ Microsoft에서 지원하는 64비트 Windows 버전에서 AWS CLI를 지원합니다.
+ 소프트웨어 설치 관리자 권한

#### AWS CLI 설치 또는 업데이트
<a name="install-windows-instructions"></a>

Windows에서 AWS CLI의 현재 설치를 업데이트하려면 업데이트할 때마다 새 설치 관리자를 다운로드하여 이전 버전을 덮어씁니다. AWS CLI는 정기적으로 업데이트됩니다. 최신 버전이 출시된 시기를 확인하려면 *GitHub*에서 [AWS CLI 버전 2 변경 로그](https://raw.githubusercontent.com/aws/aws-cli/v2/CHANGELOG.rst)를 참조하세요.

1. Windows용 AWS CLI MSI 설치 관리자(64비트)를 다운로드하여 실행합니다.

   [https://awscli.amazonaws.com/AWSCLIV2.msi](https://awscli.amazonaws.com/AWSCLIV2.msi) 

   또는 `msiexec` 명령을 실행하여 MSI 설치 관리자를 실행할 수 있습니다.

   ```
   C:\> msiexec.exe /i https://awscli.amazonaws.com/AWSCLIV2.msi
   ```

   `msiexec`에서 사용할 수 있는 다양한 파라미터는 *Microsoft Docs* 웹 사이트에서 [msiexec](https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/msiexec)을 참조하세요. 예를 들어 자동 설치 시 `/qn` 플래그를 사용할 수 있습니다.

   ```
   C:\> msiexec.exe /i https://awscli.amazonaws.com/AWSCLIV2.msi /qn
   ```

1. 설치를 확인하려면 **시작** 메뉴를 열고, `cmd`를 검색하여 명령 프롬프트 창을 열고, 명령 프롬프트에서 `aws --version` 명령을 사용합니다.

   ```
   C:\> aws --version
   aws-cli/2.27.41 Python/3.11.6 Windows/10 exe/AMD64 prompt/off
   ```

   Windows에서 프로그램을 찾을 수 없는 경우 명령 프롬프트 창을 닫고 다시 열어 경로를 새로 고치거나 [AWS CLI에 대한 오류 문제 해결](cli-chap-troubleshooting.md)의 문제 해결 지침을 따라야 할 수 있습니다.

## AWS CLI 설치 및 제거 오류 문제 해결
<a name="install-tshoot"></a>

AWS CLI를 설치하거나 제거한 후 문제가 발생할 경우 [AWS CLI에 대한 오류 문제 해결](cli-chap-troubleshooting.md)에 나온 문제 해결 단계를 참조하세요. 가장 관련성이 높은 문제 해결 단계는 [명령을 찾을 수 없음 오류](cli-chap-troubleshooting.md#tshoot-install-not-found), ['`aws --version`' 명령이 설치한 버전과 다른 버전을 반환함](cli-chap-troubleshooting.md#tshoot-install-wrong-version) 및 [AWS CLI를 제거한 후 '`aws --version`' 명령이 버전을 반환함](cli-chap-troubleshooting.md#tshoot-uninstall-1) 섹션을 참조하세요.

## 다음 단계
<a name="install-next-steps"></a>

AWS CLI 설치가 완료되면 다운로드한 설치 프로그램 파일을 안전하게 삭제할 수 있습니다. [AWS CLI 버전 2를 사용하기 위한 사전 조건](getting-started-prereqs.md)의 단계를 완료하고 AWS CLI를 설치한 후에는 [AWS CLI 설정](getting-started-quickstart.md)의 단계를 수행해야 합니다.

# AWS CLI 버전 2의 이전 릴리스 설치
<a name="getting-started-version"></a>

이 주제에서는 지원되는 운영 체제에서 AWS Command Line Interface 버전 2(AWS CLI)의 이전 릴리스를 설치하는 방법을 설명합니다. AWS CLI 버전 2 릴리스에 대한 자세한 내용은 GitHub에서 [AWS CLI 버전 2 변경 로그](https://raw.githubusercontent.com/aws/aws-cli/v2/CHANGELOG.rst)를 참조하세요.

AWS CLI 버전 2 설치 지침:

## Linux
<a name="versioned-linux"></a>

### 설치 요구 사항
<a name="versioned-linux-reqs"></a>
+ AWS CLI 버전 2의 어느 릴리스를 설치할지 알아야 합니다. 버전 목록은 *GitHub*에서 [AWS CLI 버전 2 변경 로그](https://raw.githubusercontent.com/aws/aws-cli/v2/CHANGELOG.rst)를 참조하세요.
+ 다운로드한 패키지를 추출 또는 "압축 해제"할 수 있어야 합니다. 운영 체제에 기본 제공 `unzip` 명령이 없는 경우 이와 동등한 명령을 사용하세요.
+ AWS CLI 버전 2에서는 `glibc`, `groff` 및 `less`를 사용합니다. 이들은 Linux의 대부분의 주요 배포판에 기본적으로 포함되어 있습니다.
+ AWS CLI 버전 2는 CentOS, Fedora, Ubuntu, Amazon Linux 1, Amazon Linux 2 및 Linux ARM 최신 배포판의 64비트 버전에서 지원됩니다.
+ AWS에서는 타사 리포지토리를 유지 관리하지 않으므로 최신 버전의 AWS CLI가 포함되었다고 보장할 수 없습니다.

### 설치 지침
<a name="versioned-linux-instructions"></a>

명령줄에서 다음 단계에 따라 Linux에 AWS CLI를 설치합니다.

64비트 Linux를 사용하는지 Linux ARM을 사용하는지에 따라 복사 및 붙여넣기가 쉬운 한 그룹에서 단계를 제공합니다. 다음 단계에서 각 라인에 대한 설명을 참조하세요.

------
#### [ Linux x86 (64-bit) ]

**참고**  
**(선택 사항)** 다음 명령 블록은 다운로드의 무결성을 먼저 확인하지 않고 AWS CLI를 다운로드하고 설치합니다. 다운로드 무결성을 확인하려면 아래의 단계별 지침을 사용하세요.

 버전 목록은 *GitHub*에서 [AWS CLI 버전 2 변경 로그](https://raw.githubusercontent.com/aws/aws-cli/v2/CHANGELOG.rst)를 참조하세요.

AWS CLI를 **설치하려면** 다음 명령을 실행합니다.

버전을 지정하려면 파일 이름에 하이픈과 버전 번호를 추가합니다. 이 예제의 경우 버전 *2.0.30*의 파일 이름은 `awscli-exe-linux-x86_64-2.0.30.zip`이므로 명령은 다음과 같습니다.

```
$ curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64-2.0.30.zip" -o "awscliv2.zip"
unzip awscliv2.zip
sudo ./aws/install
```

AWS CLI의 **현재 설치를 업데이트하려면** 기존 심볼 링크 및 설치 관리자 정보를 추가하여 `--bin-dir`, `--install-dir`, `--update` 파라미터를 포함한 `install` 명령을 구성합니다. 다음 명령 블록은 */usr/local/bin*의 예제 심볼 링크와 */usr/local/aws-cli*의 설치 관리자 위치 예제를 사용합니다.

```
$ curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64-2.0.30.zip" -o "awscliv2.zip"
unzip awscliv2.zip
sudo ./aws/install --bin-dir /usr/local/bin --install-dir /usr/local/aws-cli --update
```

------
#### [ Linux ARM ]

**참고**  
**(선택 사항)** 다음 명령 블록은 다운로드의 무결성을 먼저 확인하지 않고 AWS CLI를 다운로드하고 설치합니다. 다운로드 무결성을 확인하려면 아래의 단계별 지침을 사용하세요.

 버전 목록은 *GitHub*에서 [AWS CLI 버전 2 변경 로그](https://raw.githubusercontent.com/aws/aws-cli/v2/CHANGELOG.rst)를 참조하세요.

AWS CLI를 **설치하려면** 다음 명령을 실행합니다.

버전을 지정하려면 파일 이름에 하이픈과 버전 번호를 추가합니다. 이 예제의 경우 버전 *2.0.30*의 파일 이름은 `awscli-exe-linux-aarch64-2.0.30.zip`이므로 명령은 다음과 같습니다.

```
$ curl "https://awscli.amazonaws.com/awscli-exe-linux-aarch64-2.0.30.zip" -o "awscliv2.zip"
unzip awscliv2.zip
sudo ./aws/install
```

AWS CLI의 **현재 설치를 업데이트하려면** 기존 심볼 링크 및 설치 관리자 정보를 추가하여 `--bin-dir`, `--install-dir`, `--update` 파라미터를 포함한 `install` 명령을 구성합니다. 다음 명령 블록은 */usr/local/bin*의 예제 심볼 링크와 */usr/local/aws-cli*의 설치 관리자 위치 예제를 사용합니다.

```
$ curl "https://awscli.amazonaws.com/awscli-exe-linux-aarch64-2.0.30.zip" -o "awscliv2.zip"
unzip awscliv2.zip
sudo ./aws/install --bin-dir /usr/local/bin --install-dir /usr/local/aws-cli --update
```

------

1. 다음 방법 중 하나로 설치 파일을 다운로드합니다.

------
#### [ Linux x86 (64-bit) ]
   + **`curl` 명령 사용** - `-o` 옵션은 다운로드한 패키지가 기록되는 파일 이름을 지정합니다. 다음 예제 명령의 옵션을 사용하면 다운로드한 파일이 로컬 이름 `awscliv2.zip`으로 현재 디렉터리에 기록됩니다.

     버전을 지정하려면 파일 이름에 하이픈과 버전 번호를 추가합니다. 이 예제의 경우 버전 *2.0.30*의 파일 이름은 `awscli-exe-linux-x86_64-2.0.30.zip`이므로 명령은 다음과 같습니다.

     ```
     $ curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64-2.0.30.zip" -o "awscliv2.zip"
     ```

      버전 목록은 *GitHub*에서 [AWS CLI 버전 2 변경 로그](https://raw.githubusercontent.com/aws/aws-cli/v2/CHANGELOG.rst)를 참조하세요.
   + **URL에서 다운로드** – 

     브라우저에서 파일 이름에 하이픈과 버전 번호를 추가하여 AWS CLI의 특정 버전을 다운로드합니다.

     ```
     https://awscli.amazonaws.com/awscli-exe-linux-x86_64-version.number.zip
     ```

     이 예제에서 버전 *2.0.30*의 파일 이름은 awscli-exe-linux-x86\$164-2.0.30. zip이며, 다음 링크가 생성됩니다. [https://awscli.amazonaws.com/awscli-exe-linux-x86_64-2.0.30.zip](https://awscli.amazonaws.com/awscli-exe-linux-x86_64-2.0.30.zip) 

------
#### [ Linux ARM ]
   + **`curl` 명령 사용** - `-o` 옵션은 다운로드한 패키지가 기록되는 파일 이름을 지정합니다. 다음 예제 명령의 옵션을 사용하면 다운로드한 파일이 로컬 이름 `awscliv2.zip`으로 현재 디렉터리에 기록됩니다.

     버전을 지정하려면 파일 이름에 하이픈과 버전 번호를 추가합니다. 이 예제의 경우 버전 *2.0.30*의 파일 이름은 `awscli-exe-linux-aarch64-2.0.30.zip`이므로 명령은 다음과 같습니다.

     ```
     $ curl "https://awscli.amazonaws.com/awscli-exe-linux-aarch64-2.0.30.zip" -o "awscliv2.zip"
     unzip awscliv2.zip
     sudo ./aws/install
     ```
   + **URL에서 다운로드** – 

     브라우저에서 파일 이름에 하이픈과 버전 번호를 추가하여 AWS CLI의 특정 버전을 다운로드합니다.

     ```
     https://awscli.amazonaws.com/awscli-exe-linux-aarch64-version.number.zip
     ```

     이 예제의 경우 버전 *2.0.30*의 파일 이름은 `awscli-exe-linux-aarch64-2.0.30.zip`이므로 링크는 다음과 같습니다. [https://awscli.amazonaws.com/awscli-exe-linux-aarch64-2.0.30.zip](https://awscli.amazonaws.com/awscli-exe-linux-aarch64-2.0.30.zip) 

------

1. **(선택 사항) 다운로드한 zip 파일의 무결성 확인**

   위의 단계에서 AWS CLI 설치 관리자 패키지 `.zip`를 수동으로 다운로드하도록 선택한 경우 다음 단계에 따라 `GnuPG` 도구를 사용하여 서명을 확인할 수 있습니다.

   AWS CLI 설치 관리자 패키지 `.zip` 파일은 PGP 서명을 사용하여 암호로 서명됩니다. 파일이 손상되거나 변경되면 이 확인이 실패하며 설치를 진행해서는 안 됩니다.

   1. 패키지 관리자를 사용하여 `gpg` 명령을 다운로드하고 설치합니다. `GnuPG`에 대한 자세한 내용은 [GnuPG 웹 사이트](https://www.gnupg.org/)를 참조하세요.

   1. 퍼블릭 키 파일을 만들려면 텍스트 파일을 만들고 다음 텍스트를 붙여 넣습니다.

      ```
      -----BEGIN PGP PUBLIC KEY BLOCK-----
      
      mQINBF2Cr7UBEADJZHcgusOJl7ENSyumXh85z0TRV0xJorM2B/JL0kHOyigQluUG
      ZMLhENaG0bYatdrKP+3H91lvK050pXwnO/R7fB/FSTouki4ciIx5OuLlnJZIxSzx
      PqGl0mkxImLNbGWoi6Lto0LYxqHN2iQtzlwTVmq9733zd3XfcXrZ3+LblHAgEt5G
      TfNxEKJ8soPLyWmwDH6HWCnjZ/aIQRBTIQ05uVeEoYxSh6wOai7ss/KveoSNBbYz
      gbdzoqI2Y8cgH2nbfgp3DSasaLZEdCSsIsK1u05CinE7k2qZ7KgKAUIcT/cR/grk
      C6VwsnDU0OUCideXcQ8WeHutqvgZH1JgKDbznoIzeQHJD238GEu+eKhRHcz8/jeG
      94zkcgJOz3KbZGYMiTh277Fvj9zzvZsbMBCedV1BTg3TqgvdX4bdkhf5cH+7NtWO
      lrFj6UwAsGukBTAOxC0l/dnSmZhJ7Z1KmEWilro/gOrjtOxqRQutlIqG22TaqoPG
      fYVN+en3Zwbt97kcgZDwqbuykNt64oZWc4XKCa3mprEGC3IbJTBFqglXmZ7l9ywG
      EEUJYOlb2XrSuPWml39beWdKM8kzr1OjnlOm6+lpTRCBfo0wa9F8YZRhHPAkwKkX
      XDeOGpWRj4ohOx0d2GWkyV5xyN14p2tQOCdOODmz80yUTgRpPVQUtOEhXQARAQAB
      tCFBV1MgQ0xJIFRlYW0gPGF3cy1jbGlAYW1hem9uLmNvbT6JAlQEEwEIAD4CGwMF
      CwkIBwIGFQoJCAsCBBYCAwECHgECF4AWIQT7Xbd/1cEYuAURraimMQrMRnJHXAUC
      aGveYQUJDMpiLAAKCRCmMQrMRnJHXKBYD/9Ab0qQdGiO5hObchG8xh8Rpb4Mjyf6
      0JrVo6m8GNjNj6BHkSc8fuTQJ/FaEhaQxj3pjZ3GXPrXjIIVChmICLlFuRXYzrXc
      Pw0lniybypsZEVai5kO0tCNBCCFuMN9RsmmRG8mf7lC4FSTbUDmxG/QlYK+0IV/l
      uJkzxWa+rySkdpm0JdqumjegNRgObdXHAQDWlubWQHWyZyIQ2B4U7AxqSpcdJp6I
      S4Zds4wVLd1WE5pquYQ8vS2cNlDm4QNg8wTj58e3lKN47hXHMIb6CHxRnb947oJa
      pg189LLPR5koh+EorNkA1wu5mAJtJvy5YMsppy2y/kIjp3lyY6AmPT1posgGk70Z
      CmToEZ5rbd7ARExtlh76A0cabMDFlEHDIK8RNUOSRr7L64+KxOUegKBfQHb9dADY
      qqiKqpCbKgvtWlds909Ms74JBgr2KwZCSY1HaOxnIr4CY43QRqAq5YHOay/mU+6w
      hhmdF18vpyK0vfkvvGresWtSXbag7Hkt3XjaEw76BzxQH21EBDqU8WJVjHgU6ru+
      DJTs+SxgJbaT3hb/vyjlw0lK+hFfhWKRwgOXH8vqducF95NRSUxtS4fpqxWVaw3Q
      V2OWSjbne99A5EPEySzryFTKbMGwaTlAwMCwYevt4YT6eb7NmFhTx0Fis4TalUs+
      j+c7Kg92pDx2uQ==
      =OBAt
      -----END PGP PUBLIC KEY BLOCK-----
      ```

      참고로 다음은 퍼블릭 키의 세부 정보입니다.

      ```
      Key ID:           A6310ACC4672
      Type:             RSA
      Size:             4096/4096
      Created:          2019-09-18
      Expires:          2026-07-07
      User ID:          AWS CLI Team <aws-cli@amazon.com>
      Key fingerprint:  FB5D B77F D5C1 18B8 0511  ADA8 A631 0ACC 4672 475C
      ```

   1. 다음 명령을 사용하여 AWS CLI 퍼블릭 키를 가져옵니다. *public-key-file-name*을 생성한 퍼블릭 키의 파일 이름으로 대체합니다.

      ```
      $ gpg --import public-key-file-name
      gpg: /home/username/.gnupg/trustdb.gpg: trustdb created
      gpg: key A6310ACC4672475C: public key "AWS CLI Team <aws-cli@amazon.com>" imported
      gpg: Total number processed: 1
      gpg:               imported: 1
      ```

   1. 다운로드한 패키지의 AWS CLI 서명 파일을 다운로드합니다. 해당 `.zip` 파일과 경로 및 이름은 같지만 확장명은 `.sig`입니다. 다음 예제에서는 이 파일을 현재 디렉터리에 이름이 `awscliv2.sig`인 파일로 저장합니다.

------
#### [ Linux x86 (64-bit) ]

      **최신 버전의 AWS CLI의 경우** 다음 명령 블록을 사용하세요.

      ```
      $ curl -o awscliv2.sig https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip.sig
      ```

      **특정 버전의 AWS CLI의 경우** 파일 이름에 하이픈과 버전 번호를 추가하세요. 이 예제의 경우 버전 *2.0.30*의 파일 이름은 `awscli-exe-linux-x86_64-2.0.30.zip.sig`이므로 명령은 다음과 같습니다.

      ```
      $ curl -o awscliv2.sig https://awscli.amazonaws.com/awscli-exe-linux-x86_64-2.0.30.zip.sig
      ```

       버전 목록은 *GitHub*에서 [AWS CLI 버전 2 변경 로그](https://raw.githubusercontent.com/aws/aws-cli/v2/CHANGELOG.rst)를 참조하세요.

------
#### [ Linux ARM ]

      **최신 버전의 AWS CLI의 경우** 다음 명령 블록을 사용하세요.

      ```
      $ curl -o awscliv2.sig https://awscli.amazonaws.com/awscli-exe-linux-aarch64.zip.sig
      ```

      **특정 버전의 AWS CLI의 경우** 파일 이름에 하이픈과 버전 번호를 추가하세요. 이 예제의 경우 버전 *2.0.30*의 파일 이름은 `awscli-exe-linux-aarch64-2.0.30.zip.sig`이므로 명령은 다음과 같습니다.

      ```
      $ curl -o awscliv2.sig https://awscli.amazonaws.com/awscli-exe-linux-aarch64-2.0.30.zip.sig
      ```

       버전 목록은 *GitHub*에서 [AWS CLI 버전 2 변경 로그](https://github.com/aws/aws-cli/blob/v2/CHANGELOG.rst?plain=1)를 참조하세요.

------

   1. `.sig` 및 `.zip` 파일 이름을 모두 `gpg` 명령의 파라미터로 전달하여 서명을 확인합니다.

      ```
      $ gpg --verify awscliv2.sig awscliv2.zip
      ```

      다음과 같이 출력됩니다.

      ```
      gpg: Signature made Mon Nov  4 19:00:01 2019 PST
      gpg:                using RSA key FB5D B77F D5C1 18B8 0511 ADA8 A631 0ACC 4672 475C
      gpg: Good signature from "AWS CLI Team <aws-cli@amazon.com>" [unknown]
      gpg: WARNING: This key is not certified with a trusted signature!
      gpg:          There is no indication that the signature belongs to the owner.
      Primary key fingerprint: FB5D B77F D5C1 18B8 0511  ADA8 A631 0ACC 4672 475C
      ```
**중요**  
결과에서 경고가 예상되지만 문제가 되지는 않습니다. 이 경고는 개인 PGP 키(보유한 경우)와 AWS CLI PGP 키 사이에 신뢰 체인이 없기 때문에 발생한 것입니다. 자세한 내용은 [Web of trust](https://en.wikipedia.org/wiki/Web_of_trust)를 참조하세요.

1. 설치 관리자의 압축을 풉니다. Linux 배포에 기본 제공 `unzip` 명령이 없는 경우 이와 동등한 명령을 사용하여 압축을 풉니다. 다음 명령 예제는 패키지의 압축을 풀고 현재 디렉터리 아래에 `aws`라는 디렉터리를 만듭니다.

   ```
   $ unzip awscliv2.zip
   ```

1. 설치 프로그램을 실행합니다. 설치 명령은 새로 압축을 푼 `install` 디렉터리의 `aws`이라는 이름의 파일을 사용합니다. 기본적으로 파일은 모두 `/usr/local/aws-cli`에 설치되고 `/usr/local/bin`에 심볼 링크가 생성됩니다. 이 명령은 해당 디렉터리에 대한 쓰기 권한을 부여하는 `sudo`를 포함합니다.

   ```
   $ sudo ./aws/install
   ```

   이미 쓰기 권한이 있는 디렉터리를 지정하는 경우 `sudo` 없이도 설치할 수 있습니다. `install` 명령에 대해 다음 지침에 따라 설치 위치를 지정합니다.
   + `-i` 및 `-b` 파라미터에 입력하는 경로의 볼륨 이름이나 디렉터리 이름에 공백이나 기타 공백 문자가 없어야 합니다. 공백이 있으면 설치가 실패합니다.
   + `--install-dir` 또는 `-i` - 이 옵션은 모든 파일을 복사할 디렉터리를 지정합니다.

     기본 값은 `/usr/local/aws-cli`입니다.
   + `--bin-dir` 또는 `-b` - 이 옵션은 설치 디렉터리의 기본 `aws` 프로그램에 대한 심볼 링크를 지정된 경로의 `aws` 파일에 연결하도록 지정합니다. 지정된 디렉터리에 대한 쓰기 권한이 있어야 합니다. 이미 경로에 있는 디렉터리에 대한 symlink를 만들면 설치 디렉터리를 사용자의 `$PATH` 변수에 추가할 필요가 없습니다.

     기본 값은 `/usr/local/bin`입니다.

   ```
   $ ./aws/install -i /usr/local/aws-cli -b /usr/local/bin
   ```
**참고**  
AWS CLI 버전 2의 현재 설치를 최신 버전으로 업데이트하려면 기존 심볼 링크 및 설치 관리자 정보를 추가하여 `--update` 파라미터를 포함한 `install` 명령을 구성합니다.  

   ```
   $ sudo ./aws/install --bin-dir /usr/local/bin --install-dir /usr/local/aws-cli --update
   ```
기존 심볼 링크 및 설치 디렉터리를 찾으려면 다음 단계를 따릅니다.  
`which` 명령을 사용하여 symlink를 찾습니다. 그러면 `--bin-dir` 파라미터와 함께 사용할 경로가 제공됩니다.  

      ```
      $ which aws
      /usr/local/bin/aws
      ```
`ls` 명령을 사용하여 symlink가 가리키는 디렉터리를 찾습니다. 그러면 `--install-dir` 파라미터와 함께 사용할 경로가 제공됩니다.  

      ```
      $ ls -l /usr/local/bin/aws
      lrwxrwxrwx 1 ec2-user ec2-user 49 Oct 22 09:49 /usr/local/bin/aws -> /usr/local/aws-cli/v2/current/bin/aws
      ```

1. 다음 명령을 사용하여 설치를 확인합니다.

   ```
   $ aws --version
   aws-cli/2.27.41 Python/3.11.6 Linux/5.10.205-195.807.amzn2.x86_64
   ```

   `aws` 명령을 찾을 수 없는 경우 터미널을 재시작하거나 [AWS CLI에 대한 오류 문제 해결](cli-chap-troubleshooting.md)에 나온 문제 해결 지침을 따라야 할 수도 있습니다.

## macOS
<a name="versioned-macos"></a>

### 설치 요구 사항
<a name="versioned-macos-reqs"></a>
+ AWS CLI 버전 2의 어느 릴리스를 설치할지 알아야 합니다. 버전 목록은 *GitHub*에서 [AWS CLI 버전 2 변경 로그](https://github.com/aws/aws-cli/blob/v2/CHANGELOG.rst?plain=1)를 참조하세요.
+ Apple이 지원하는 64비트 macOS 버전에서 AWS CLI 버전 2가 지원됩니다.
+ AWS에서는 타사 리포지토리를 유지 관리하지 않으므로 최신 버전의 AWS CLI가 포함되었다고 보장할 수 없습니다.

### 설치 지침
<a name="versioned-macos-install"></a>

다음과 같은 방법으로 macOS에서 AWS CLI 버전 2를 설치할 수 있습니다.

------
#### [ GUI installer ]

다음 단계는 표준 macOS 사용자 인터페이스와 브라우저를 사용하여 AWS CLI 버전 2의 최신 버전을 설치하거나 업데이트하는 방법을 보여줍니다. 최신 버전으로 업데이트하는 경우 현재 버전에 사용한 것과 동일한 설치 방법을 사용하세요.

1. 브라우저에서 파일 이름에 하이픈과 버전 번호를 추가하여 AWS CLI의 특정 버전을 다운로드합니다.

   ```
   https://awscli.amazonaws.com/AWSCLIV2-version.number.pkg
   ```

   이 예제의 경우 버전 *2.0.30*의 파일 이름은 `AWSCLIV2-2.0.30.pkg`이므로 링크는 다음과 같습니다. [https://awscli.amazonaws.com/AWSCLIV2-2.0.30.pkg](https://awscli.amazonaws.com/AWSCLIV2-2.0.30.pkg).

1. 다운로드한 파일을 실행하고 화면의 지침을 따릅니다. 다음과 같은 방법으로 AWS CLI 버전 2를 설치하도록 선택할 수 있습니다.
   + **컴퓨터의 모든 사용자 허용( 필요)`sudo`**
     + 임의의 폴더에 설치하거나 `/usr/local/aws-cli`의 권장 기본 폴더를 선택할 수 있습니다.
     + 설치 관리자는 사용자가 선택한 설치 폴더에 있는 기본 프로그램에 연결된 `/usr/local/bin/aws`에서 symlink를 자동으로 만듭니다.
   + **현재 사용자만 허용(가 필요하지 않음)`sudo`**
     + 쓰기 권한이 있는 폴더에 설치할 수 있습니다.
     + 표준 사용자 권한으로 인해 설치 관리자가 완료된 후 명령 프롬프트에서 다음 명령을 사용하여 `$PATH` 및 `aws` 프로그램을 가리키는 symlink 파일을 `aws_completer`에 수동으로 만들어야 합니다. 쓸 수 있는 폴더가 `$PATH`에 포함된 경우, 해당 폴더를 대상 경로로 지정하면 `sudo` 없이 다음 명령을 실행할 수 있습니다. 쓰기 가능한 폴더가 `$PATH`에 없는 경우 명령에서 `sudo`를 사용하여 지정된 대상 폴더에 쓸 수 있는 권한을 얻어야 합니다. symlink의 기본 위치는 `/usr/local/bin/`입니다.

       ```
       $ sudo ln -s /folder/installed/aws-cli/aws /usr/local/bin/aws
       $ sudo ln -s /folder/installed/aws-cli/aws_completer /usr/local/bin/aws_completer
       ```
**참고**  
설치 관리자의 아무 위치에서나 **Cmd\$1L**을 눌러 설치에 대한 디버그 로그를 볼 수 있습니다. 이렇게 하면 로그를 필터링하고 저장할 수 있는 로그 창이 열립니다. 로그 파일도 `/var/log/install.log`에 자동으로 저장됩니다.

1. 셸이 `aws`에서 `$PATH` 명령을 찾아서 실행할 수 있는지 확인하려면 다음 명령을 사용합니다.

   ```
   $ which aws
   /usr/local/bin/aws 
   $ aws --version
   aws-cli/2.27.41 Python/3.11.6 Darwin/23.3.0
   ```

   `aws` 명령을 찾을 수 없는 경우 터미널을 재시작하거나 [AWS CLI에 대한 오류 문제 해결](cli-chap-troubleshooting.md)에 나온 문제 해결 지침을 따라야 할 수도 있습니다.

------
#### [ Command line installer - All users ]

`sudo` 권한이 있는 경우 컴퓨터의 모든 사용자용으로 AWS CLI 버전 2를 설치할 수 있습니다. 손쉽게 그룹을 복사 및 붙여넣기할 수 있는 단계를 제공합니다. 다음 단계에서 각 라인에 대한 설명을 참조하세요.

특정 버전의 AWS CLI의 경우 파일 이름에 하이픈과 버전 번호를 추가하세요. 이 예제의 경우 버전 *2.0.30*의 파일 이름은 `AWSCLIV2-2.0.30.pkg`이므로 명령은 다음과 같습니다.

```
$ curl "https://awscli.amazonaws.com/AWSCLIV2-2.0.30.pkg" -o "AWSCLIV2.pkg"
$ sudo installer -pkg AWSCLIV2.pkg -target /
```

1. `curl` 명령을 사용하여 파일을 다운로드할 수 있습니다. `-o` 옵션은 다운로드한 패키지가 기록되는 파일 이름을 지정합니다. 이 예제에서 파일은 현재 폴더의 `AWSCLIV2.pkg`에 기록됩니다.

   특정 버전의 AWS CLI의 경우 파일 이름에 하이픈과 버전 번호를 추가하세요. 이 예제의 경우 버전 *2.0.30*의 파일 이름은 `AWSCLIV2-2.0.30.pkg`이므로 명령은 다음과 같습니다.

   ```
   $ curl "https://awscli.amazonaws.com/AWSCLIV2-2.0.30.pkg" -o "AWSCLIV2.pkg"
   ```

    버전 목록은 *GitHub*에서 [AWS CLI 버전 2 변경 로그](https://raw.githubusercontent.com/aws/aws-cli/v2/CHANGELOG.rst)를 참조하세요.

1. 다운로드한 `installer` 파일을 소스로 지정하여 표준 macOS `.pkg` 프로그램을 실행합니다. `-pkg` 파라미터를 사용하여 설치할 패키지의 이름을 지정하고 `-target /` 파라미터를 사용하여 패키지를 설치할 드라이브를 지정합니다. 파일은 `/usr/local/aws-cli`에 설치되고 `/usr/local/bin`에 symlink가 자동으로 만들어집니다. 해당 폴더에 쓰기 권한을 부여하려면 명령에 `sudo`를 포함해야 합니다.

   ```
   $ sudo installer -pkg ./AWSCLIV2.pkg -target /
   ```

   설치가 완료되면 디버그 로그가 `/var/log/install.log`에 기록됩니다.

1. 셸이 `aws`에서 `$PATH` 명령을 찾아서 실행할 수 있는지 확인하려면 다음 명령을 사용합니다.

   ```
   $ which aws
   /usr/local/bin/aws 
   $ aws --version
   aws-cli/2.27.41 Python/3.11.6 Darwin/23.3.0
   ```

   `aws` 명령을 찾을 수 없는 경우 터미널을 재시작하거나 [AWS CLI에 대한 오류 문제 해결](cli-chap-troubleshooting.md)에 나온 문제 해결 지침을 따라야 할 수도 있습니다.

------
#### [ Command line - Current user ]

1. AWS CLI를 설치할 폴더를 지정하려면 XML 파일을 만들어야 합니다. 이 파일은 다음 예제와 비슷한 XML 형식 파일입니다. 다음과 같이 모든 값을 그대로 두고 9행의 */Users/myusername* 경로를 AWS CLI 버전 2를 설치할 폴더의 경로로 바꿔야 합니다. *폴더가 이미 있어야 합니다. 그렇지 않으면 명령이 실패합니다.* 이 XML 예제는 설치 관리자가 AWS CLI 폴더에 `/Users/myusername`를 설치하도록 지정합니다. 여기서는 `aws-cli`라는 폴더가 만들어집니다.

   ```
   <?xml version="1.0" encoding="UTF-8"?>
   <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
   <plist version="1.0">
     <array>
       <dict>
         <key>choiceAttribute</key>
         <string>customLocation</string>
         <key>attributeSetting</key>
         <string>/Users/myusername</string>
         <key>choiceIdentifier</key>
         <string>default</string>
       </dict>
     </array>
   </plist>
   ```

1. `pkg` 명령을 사용하여 `curl` 설치 관리자를 다운로드합니다. `-o` 옵션은 다운로드한 패키지가 기록되는 파일 이름을 지정합니다. 이 예제에서 파일은 현재 폴더의 `AWSCLIV2.pkg`에 기록됩니다.

   특정 버전의 AWS CLI의 경우 파일 이름에 하이픈과 버전 번호를 추가합니다. 이 예제의 경우 버전 *2.0.30*의 파일 이름은 `AWSCLIV2-2.0.30.pkg`이므로 명령은 다음과 같습니다.

   ```
   $ curl "https://awscli.amazonaws.com/AWSCLIV2-2.0.30.pkg" -o "AWSCLIV2.pkg"
   ```

    버전 목록은 *GitHub*에서 [AWS CLI 버전 2 변경 로그](https://raw.githubusercontent.com/aws/aws-cli/v2/CHANGELOG.rst)를 참조하세요.

1. 다음 옵션을 사용하여 표준 macOS `installer` 프로그램을 실행합니다.
   + `-pkg` 파라미터를 사용하여 설치할 패키지 이름을 지정합니다.
   + `-target` 파라미터를 `CurrentUserHomeDirectory`로 설정하여 *현재 사용자 전용* 설치를 지정합니다.
   + `-applyChoiceChangesXML` 파라미터에서 만든 XML 파일의 경로(현재 폴더 기준) 및 이름을 지정합니다.

   다음 예제에서는 AWS CLI 폴더에 `/Users/myusername/aws-cli`를 설치합니다.

   ```
   $ installer -pkg AWSCLIV2.pkg \
               -target CurrentUserHomeDirectory \
               -applyChoiceChangesXML choices.xml
   ```

1. 표준 사용자 권한은 일반적으로 `$PATH`의 폴더에 쓰기를 허용하지 않기 때문에 이 모드의 설치 관리자는 symlink를 `aws` 및 `aws_completer` 프로그램에 추가하지 않습니다. AWS CLI를 올바르게 실행하려면 설치 관리자가 완료된 후 symlink를 수동으로 만들어야 합니다. 쓸 수 있는 폴더가 `$PATH`에 포함되어 있고 해당 폴더를 대상 경로로 지정하면 `sudo` 없이 다음 명령을 실행할 수 있습니다. 쓰기 가능한 폴더가 `$PATH`에 없는 경우 `sudo`를 사용하여 지정된 대상 폴더에 쓸 수 있는 권한을 얻어야 합니다. symlink의 기본 위치는 `/usr/local/bin/`입니다.

   ```
   $ sudo ln -s /folder/installed/aws-cli/aws /usr/local/bin/aws
   $ sudo ln -s /folder/installed/aws-cli/aws_completer /usr/local/bin/aws_completer
   ```

   설치가 완료되면 디버그 로그가 `/var/log/install.log`에 기록됩니다.

1. 셸이 `aws`에서 `$PATH` 명령을 찾아서 실행할 수 있는지 확인하려면 다음 명령을 사용합니다.

   ```
   $ which aws
   /usr/local/bin/aws 
   $ aws --version
   aws-cli/2.27.41 Python/3.11.6 Darwin/23.3.0
   ```

   `aws` 명령을 찾을 수 없는 경우 터미널을 재시작하거나 [AWS CLI에 대한 오류 문제 해결](cli-chap-troubleshooting.md)에 나온 문제 해결 지침을 따라야 할 수도 있습니다.

------

## Windows
<a name="versioned-windows"></a>

### 설치 요구 사항
<a name="versioned-windows-reqs"></a>
+ AWS CLI 버전 2의 어느 릴리스를 설치할지 알아야 합니다. 버전 목록은 *GitHub*에서 [AWS CLI 버전 2 변경 로그](https://raw.githubusercontent.com/aws/aws-cli/v2/CHANGELOG.rst)를 참조하세요.
+ Microsoft에서 지원하는 64비트 Windows 버전에서 AWS CLI를 지원합니다.
+ 소프트웨어 설치 관리자 권한

### 설치 지침
<a name="versioned-windows-install"></a>

Windows에서 AWS CLI 버전 2의 현재 설치를 업데이트하려면 업데이트할 때마다 새 설치 관리자를 다운로드하여 이전 버전을 덮어씁니다. AWS CLI는 정기적으로 업데이트됩니다. 최신 버전이 출시된 시기를 확인하려면 *GitHub*에서 [AWS CLI 버전 2 변경 로그](https://raw.githubusercontent.com/aws/aws-cli/v2/CHANGELOG.rst)를 참조하세요.

1. 다음 중 한 가지 방법으로 Windows용 AWS CLI MSI 설치 관리자(64비트)를 다운로드하여 실행합니다.
   + **MSI 설치 관리자 다운로드 및 실행:** 특정 버전의 AWS CLI에 대한 다운로드 링크를 만들려면 파일 이름에 하이픈과 버전 번호를 추가합니다.

     ```
     https://awscli.amazonaws.com/AWSCLIV2-version.number.msi
     ```

     이 예제의 경우 버전 *2.0.30*의 파일 이름은 `AWSCLIV2-2.0.30.msi`이므로 링크는 다음과 같습니다. [https://awscli.amazonaws.com/AWSCLIV2-2.0.30.msi](https://awscli.amazonaws.com/AWSCLIV2-2.0.30.msi).
   + **msiexec 명령 사용:** 또는 `msiexec` 명령에 링크를 추가하여 MSI 설치 관리자를 사용할 수 있습니다. 특정 버전의 AWS CLI의 경우 파일 이름에 하이픈과 버전 번호를 추가하세요.

     ```
     C:\> msiexec.exe /i https://awscli.amazonaws.com/AWSCLIV2-version.number.msi
     ```

     이 예제의 경우 버전 *2.0.30*의 파일 이름은 `AWSCLIV2-2.0.30.msi`이므로 링크는 다음과 같습니다. [https://awscli.amazonaws.com/AWSCLIV2-2.0.30.msi](https://awscli.amazonaws.com/AWSCLIV2-2.0.30.msi) 

     ```
     C:\> msiexec.exe /i https://awscli.amazonaws.com/AWSCLIV2-2.0.30.msi
     ```

     `msiexec`에서 사용할 수 있는 다양한 파라미터는 *Microsoft Docs* 웹 사이트에서 [msiexec](https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/msiexec)을 참조하세요.

   버전 목록은 *GitHub*에서 [AWS CLI 버전 2 변경 로그](https://raw.githubusercontent.com/aws/aws-cli/v2/CHANGELOG.rst)를 참조하세요.

1. 설치를 확인하려면 **시작** 메뉴를 열고, `cmd`를 검색하여 명령 프롬프트 창을 열고, 명령 프롬프트에서 `aws --version` 명령을 사용합니다.

   ```
   C:\> aws --version
   aws-cli/2.27.41 Python/3.11.6 Windows/10 exe/AMD64 prompt/off
   ```

   Windows에서 프로그램을 찾을 수 없는 경우 명령 프롬프트 창을 닫고 다시 열어 경로를 새로 고치거나 [AWS CLI에 대한 오류 문제 해결](cli-chap-troubleshooting.md)의 문제 해결 지침을 따라야 할 수 있습니다.

## AWS CLI 설치 및 제거 오류 문제 해결
<a name="getting-started-version-tshoot"></a>

AWS CLI를 설치하거나 제거한 후 문제가 발생할 경우 [AWS CLI에 대한 오류 문제 해결](cli-chap-troubleshooting.md)에 나온 문제 해결 단계를 참조하세요. 가장 관련성이 높은 문제 해결 단계는 [명령을 찾을 수 없음 오류](cli-chap-troubleshooting.md#tshoot-install-not-found), ['`aws --version`' 명령이 설치한 버전과 다른 버전을 반환함](cli-chap-troubleshooting.md#tshoot-install-wrong-version) 및 [AWS CLI를 제거한 후 '`aws --version`' 명령이 버전을 반환함](cli-chap-troubleshooting.md#tshoot-uninstall-1) 섹션을 참조하세요.

## 다음 단계
<a name="getting-started-version-next"></a>

[AWS CLI 버전 2를 사용하기 위한 사전 조건](getting-started-prereqs.md)의 단계를 완료하고 AWS CLI를 설치한 후에는 [AWS CLI 설정](getting-started-quickstart.md)의 단계를 수행해야 합니다.

# 소스에서 AWS CLI 빌드 및 설치
<a name="getting-started-source-install"></a>

이 주제에서는 지원되는 운영 체제에서 AWS Command Line Interface(AWS CLI)의 최신 릴리스를 설치하거나 업데이트하는 방법을 설명합니다.

AWS CLI의 최신 릴리스에 대한 자세한 내용은 GitHub에서 [AWS CLI 버전 2 변경 로그](https://raw.githubusercontent.com/aws/aws-cli/v2/CHANGELOG.rst)를 참조하세요.

**중요**  
AWS CLI 버전 1과 2는 동일한 `aws` 명령 이름을 사용합니다. 이전에 AWS CLI 버전 1을 설치한 경우 [AWS CLI 버전 2의 마이그레이션 가이드](cliv2-migration.md) 섹션을 참조하세요.

**Topics**
+ [

## 소스에서 빌드하는 이유
](#source-getting-started-install-why)
+ [

## 빠른 단계
](#source-getting-started-install-quicksteps)
+ [

## 1단계: 모든 요구 사항 구성
](#source-getting-started-install-reqs)
+ [

## 2단계: AWS CLI 소스 설치 구성
](#source-getting-started-install-config)
+ [

## 3단계: AWS CLI 빌드
](#source-getting-started-install-build)
+ [

## 4단계: AWS CLI 설치
](#source-getting-started-install-instructions)
+ [

## 5단계: AWS CLI 설치 확인
](#source-getting-started-install-verify)
+ [

## 워크플로우 예시
](#source-getting-started-install-workflows)
+ [

## AWS CLI 설치 및 제거 오류 문제 해결
](#source-install-tshoot)
+ [

## 다음 단계
](#source-install-next-steps)

## 소스에서 빌드하는 이유
<a name="source-getting-started-install-why"></a>

AWS CLI는 대부분의 플랫폼 및 환경에서 [사전 빌드된 설치 프로그램](getting-started-install.md)과 도커 이미지로 제공됩니다.

일반적으로 이러한 설치 프로그램은 대부분의 사용 사례를 지원합니다. 소스에서 설치하기 위한 지침은 설치 프로그램이 지원하지 않는 사용 사례에 도움을 주기 위한 것입니다. 이러한 사용 사례에는 다음이 포함됩니다.
+ 사전 빌드된 설치 프로그램이 사용자 환경을 지원하지 않습니다. 예를 들어 ARM 32비트는 사전 빌드된 설치 프로그램에서 지원되지 않습니다.
+ 사전 빌드된 설치 프로그램에 사용자 환경에 없는 종속 항목이 있습니다. 예를 들어 Alpine Linux는 [https://musl.libc.org/](https://musl.libc.org/)을 사용하지만 현재 설치 프로그램에는 `glibc`가 필요하므로 사전 빌드된 설치 프로그램이 즉시 작동하지 않습니다.
+ 사전 빌드된 설치 프로그램에 사용자 환경에서 액세스를 제한하는 리소스가 필요합니다. 예를 들어 보안이 강화된 시스템은 공유 메모리에 대한 권한을 부여하지 않을 수 있습니다. 이는 고정된 `aws` 설치 프로그램에 필요합니다.
+ 사전 빌드된 설치 프로그램은 패키지 관리자의 유지 관리 프로그램을 차단하는 경우가 있습니다. 코드 및 패키지의 빌드 프로세스를 완전히 제어하는 것이 권장되기 때문입니다. 소스에서 빌드하면 배포 유지 관리 프로그램이 보다 간소화된 프로세스를 통해 AWS CLI를 최신 상태로 유지할 수 있습니다. 유지 관리 프로그램을 활성화하면 타사 패키지 관리자(예: `brew`, `yum`, `apt`)에서 설치할 때 고객에게 최신 버전의 AWS CLI가 제공됩니다.
+ AWS CLI 기능을 패치하는 고객은 소스에서 AWS CLI를 빌드하고 설치해야 합니다. 이는 AWS CLI GitHub 리포지토리에 변경 사항을 제공하기 전에 소스에 대한 변경 사항을 테스트하려는 커뮤니티 구성원에게 특히 중요합니다.

## 빠른 단계
<a name="source-getting-started-install-quicksteps"></a>

**참고**  
모든 코드 예제는 소스 디렉터리의 루트에서 실행되는 것으로 가정합니다.

소스에서 AWS CLI를 빌드하고 설치하려면 이 섹션의 단계를 따릅니다. AWS CLI는 [GNU Autotools](https://www.gnu.org/software/automake/faq/autotools-faq.html)를 활용하여 소스에서 설치됩니다. 가장 단순한 경우로, AWS CLI GitHub 리포지토리의 루트에서 기본 예제 명령을 실행하여 소스에서 AWS CLI를 설치할 수 있습니다.



1. [사용자 환경에 대한 모든 요구 사항을 구성합니다.](#source-getting-started-install-reqs) 여기에는 [GNU Autotools](https://www.gnu.org/software/automake/faq/autotools-faq.html) 생성 파일을 실행할 수 있도록 하는 것과 Python 3.8 이상을 설치하는 것이 포함됩니다.

1. 터미널에서 AWS CLI 소스 폴더의 최상위 수준으로 이동하여 `./configure` 명령을 실행합니다. 이 명령은 시스템에서 필요한 모든 종속 항목을 확인하고 감지 및 지정된 구성을 기반으로 AWS CLI를 빌드 및 설치하기 위한 `Makefile`을 생성합니다.

------
#### [ Linux and macOS ]

   다음 `./configure` 명령 예제는 기본 설정을 사용하여 AWS CLI에 대한 빌드 구성을 설정합니다.

   ```
   $ ./configure
   ```

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

   MSYS2 호출 명령을 실행하기 전에 현재 작업 디렉터리를 보존해야 합니다.

   ```
   PS C:\> $env:CHERE_INVOKING = 'yes'
   ```

   또한 다음 `./configure` 명령 예제를 사용하여 Python 실행 파일의 로컬 경로를 사용해 C:\$1Program Files\$1AWSCLI에 설치하고 모든 종속 항목을 다운로드하여 AWS CLI에 대한 빌드 구성을 설정합니다.

   ```
   PS C:\> C:\msys64\usr\bin\bash  -lc " PYTHON='C:\path\to\python.exe' ./configure --prefix='C:\Program Files\AWSCLI' --with-download-deps "
   ```

------

   자세한 내용, 사용 가능한 구성 옵션 및 기본 설정 정보는 [2단계: AWS CLI 소스 설치 구성](#source-getting-started-install-config) 섹션을 참조하세요.

1. `make` 명령을 실행합니다. 이 명령은 구성 설정에 따라 AWS CLI를 빌드합니다.

   다음 `make` 명령 예제는 기존 `./configure` 설정을 사용하여 기본 옵션으로 빌드합니다.

------
#### [ Linux and macOS ]

   ```
   $ make
   ```

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

   ```
   PS C:\> C:\msys64\usr\bin\bash -lc "make" 
   ```

------

   자세한 내용과 사용 가능한 빌드 옵션은 [3단계: AWS CLI 빌드](#source-getting-started-install-build) 섹션을 참조하세요.

1. `make install` 명령을 실행합니다. 이 명령은 빌드된 AWS CLI를 시스템의 구성된 위치에 설치합니다.

   다음 `make install` 명령 예제는 빌드된 AWS CLI를 설치하고 기본 명령 설정을 사용하여 구성된 위치에 symlink를 생성합니다.

------
#### [ Linux and macOS ]

   ```
   $ make install
   ```

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

   ```
   PS C:\> C:\msys64\usr\bin\bash -lc "make install" 
   ```

   설치 후 다음을 사용하여 AWS CLI에 대한 경로를 추가합니다.

   ```
   PS C:\> $Env:PATH +=";C:\Program Files\AWSCLI\bin\"
   ```

------

   자세한 내용과 사용 가능한 설치 옵션은 [4단계: AWS CLI 설치](#source-getting-started-install-instructions) 섹션을 참조하세요.

1. 다음 명령을 사용하여 AWS CLI가 성공적으로 설치되었는지 확인합니다.

   ```
   $ aws --version
   aws-cli/2.27.41 Python/3.11.6 Windows/10 exe/AMD64 prompt/off
   ```

   설치 오류에 대한 문제 해결 단계는 [AWS CLI 설치 및 제거 오류 문제 해결](#source-install-tshoot) 섹션을 참조하세요.

## 1단계: 모든 요구 사항 구성
<a name="source-getting-started-install-reqs"></a>

소스에서 AWS CLI를 빌드하려면 다음 사항을 미리 완료해야 합니다.

**참고**  
모든 코드 예제는 소스 디렉터리의 루트에서 실행되는 것으로 가정합니다.

1. AWS CLI GitHub 리포지토리를 분기하거나 소스 tarball을 다운로드하여 AWS CLI 소스를 다운로드합니다. 다음 중 한 가지 지침을 따릅니다.
   + *GitHub*에서 [AWS CLI 리포지토리](https://github.com/aws/aws-cli)를 분기하고 복제합니다. 자세한 내용은 *GitHub Docs*에서 [Fork a repo](https://docs.github.com/en/get-started/quickstart/fork-a-repo)(리포지토리 분기)를 참조하세요.
   + 다음 명령을 사용하여 [https://awscli.amazonaws.com/awscli.tar.gz](https://awscli.amazonaws.com/awscli.tar.gz)에서 최신 소스 tarball을 다운로드하고 그 내용물을 추출합니다.

     ```
     $ curl "https://awscli.amazonaws.com/awscli.tar.gz" -o "awscli.tar.gz"
     $ tar -xzf awscli.tar.gz
     ```
**참고**  
특정 버전을 다운로드하려면 다음 링크 형식을 사용합니다. [https://awscli.amazonaws.com/awscli-*versionnumber*.tar.gz](https://awscli.amazonaws.com/awscli.tar.gz)   
예를 들어 버전 2.10.0의 경우 링크는 다음과 같습니다. [https://awscli.amazonaws.com/awscli-*2.10.0*.tar.gz](https://awscli.amazonaws.com/awscli.tar.gz)  
소스 버전은 AWS CLI 버전 **2.10.0**부터 사용할 수 있습니다.

     **(선택 사항) 다음 단계를 완료하여 다운로드한 zip 파일의 무결성 확인:**

     1. 다음 단계에 따라 `GnuPG` 도구를 사용하여 서명을 확인할 수 있습니다.

        AWS CLI 설치 관리자 패키지 `.zip` 파일은 PGP 서명을 사용하여 암호로 서명됩니다. 파일이 손상되거나 변경되면 이 확인이 실패하며 설치를 진행해서는 안 됩니다.

     1. 패키지 관리자를 사용하여 `gpg` 명령을 다운로드하고 설치합니다. `GnuPG`에 대한 자세한 내용은 [GnuPG 웹 사이트](https://www.gnupg.org/)를 참조하세요.

     1. 퍼블릭 키 파일을 만들려면 텍스트 파일을 만들고 다음 텍스트를 붙여 넣습니다.

        ```
        -----BEGIN PGP PUBLIC KEY BLOCK-----
        
        mQINBF2Cr7UBEADJZHcgusOJl7ENSyumXh85z0TRV0xJorM2B/JL0kHOyigQluUG
        ZMLhENaG0bYatdrKP+3H91lvK050pXwnO/R7fB/FSTouki4ciIx5OuLlnJZIxSzx
        PqGl0mkxImLNbGWoi6Lto0LYxqHN2iQtzlwTVmq9733zd3XfcXrZ3+LblHAgEt5G
        TfNxEKJ8soPLyWmwDH6HWCnjZ/aIQRBTIQ05uVeEoYxSh6wOai7ss/KveoSNBbYz
        gbdzoqI2Y8cgH2nbfgp3DSasaLZEdCSsIsK1u05CinE7k2qZ7KgKAUIcT/cR/grk
        C6VwsnDU0OUCideXcQ8WeHutqvgZH1JgKDbznoIzeQHJD238GEu+eKhRHcz8/jeG
        94zkcgJOz3KbZGYMiTh277Fvj9zzvZsbMBCedV1BTg3TqgvdX4bdkhf5cH+7NtWO
        lrFj6UwAsGukBTAOxC0l/dnSmZhJ7Z1KmEWilro/gOrjtOxqRQutlIqG22TaqoPG
        fYVN+en3Zwbt97kcgZDwqbuykNt64oZWc4XKCa3mprEGC3IbJTBFqglXmZ7l9ywG
        EEUJYOlb2XrSuPWml39beWdKM8kzr1OjnlOm6+lpTRCBfo0wa9F8YZRhHPAkwKkX
        XDeOGpWRj4ohOx0d2GWkyV5xyN14p2tQOCdOODmz80yUTgRpPVQUtOEhXQARAQAB
        tCFBV1MgQ0xJIFRlYW0gPGF3cy1jbGlAYW1hem9uLmNvbT6JAlQEEwEIAD4CGwMF
        CwkIBwIGFQoJCAsCBBYCAwECHgECF4AWIQT7Xbd/1cEYuAURraimMQrMRnJHXAUC
        aGveYQUJDMpiLAAKCRCmMQrMRnJHXKBYD/9Ab0qQdGiO5hObchG8xh8Rpb4Mjyf6
        0JrVo6m8GNjNj6BHkSc8fuTQJ/FaEhaQxj3pjZ3GXPrXjIIVChmICLlFuRXYzrXc
        Pw0lniybypsZEVai5kO0tCNBCCFuMN9RsmmRG8mf7lC4FSTbUDmxG/QlYK+0IV/l
        uJkzxWa+rySkdpm0JdqumjegNRgObdXHAQDWlubWQHWyZyIQ2B4U7AxqSpcdJp6I
        S4Zds4wVLd1WE5pquYQ8vS2cNlDm4QNg8wTj58e3lKN47hXHMIb6CHxRnb947oJa
        pg189LLPR5koh+EorNkA1wu5mAJtJvy5YMsppy2y/kIjp3lyY6AmPT1posgGk70Z
        CmToEZ5rbd7ARExtlh76A0cabMDFlEHDIK8RNUOSRr7L64+KxOUegKBfQHb9dADY
        qqiKqpCbKgvtWlds909Ms74JBgr2KwZCSY1HaOxnIr4CY43QRqAq5YHOay/mU+6w
        hhmdF18vpyK0vfkvvGresWtSXbag7Hkt3XjaEw76BzxQH21EBDqU8WJVjHgU6ru+
        DJTs+SxgJbaT3hb/vyjlw0lK+hFfhWKRwgOXH8vqducF95NRSUxtS4fpqxWVaw3Q
        V2OWSjbne99A5EPEySzryFTKbMGwaTlAwMCwYevt4YT6eb7NmFhTx0Fis4TalUs+
        j+c7Kg92pDx2uQ==
        =OBAt
        -----END PGP PUBLIC KEY BLOCK-----
        ```

        참고로 다음은 퍼블릭 키의 세부 정보입니다.

        ```
        Key ID:           A6310ACC4672
        Type:             RSA
        Size:             4096/4096
        Created:          2019-09-18
        Expires:          2026-07-07
        User ID:          AWS CLI Team <aws-cli@amazon.com>
        Key fingerprint:  FB5D B77F D5C1 18B8 0511  ADA8 A631 0ACC 4672 475C
        ```

     1. 다음 명령을 사용하여 AWS CLI 퍼블릭 키를 가져옵니다. *public-key-file-name*을 생성한 퍼블릭 키의 파일 이름으로 대체합니다.

        ```
        $ gpg --import public-key-file-name
        gpg: /home/username/.gnupg/trustdb.gpg: trustdb created
        gpg: key A6310ACC4672475C: public key "AWS CLI Team <aws-cli@amazon.com>" imported
        gpg: Total number processed: 1
        gpg:               imported: 1
        ```

     1. [https://awscli.amazonaws.com/awscli.tar.gz.sig](https://awscli.amazonaws.com/awscli.tar.gz.sig)에서 다운로드한 패키지의 AWS CLI 서명 파일을 다운로드합니다. 해당 tarball 파일과 경로 및 이름은 같지만 확장명은 `.sig`입니다. tarball 파일과 같은 경로에 저장합니다. 또는 다음 명령 블록을 사용합니다.

        ```
        $ curl awscliv2.sig https://awscli.amazonaws.com/ -o awscli.tar.gz.sig
        ```

     1. `.sig` 및 `.zip` 파일 이름을 모두 `gpg` 명령의 파라미터로 전달하여 서명을 확인합니다.

        ```
        $ gpg --verify awscliv2.sig awscli.tar.gz
        ```

        다음과 같이 출력됩니다.

        ```
        gpg: Signature made Mon Nov  4 19:00:01 2019 PST
        gpg:                using RSA key FB5D B77F D5C1 18B8 0511 ADA8 A631 0ACC 4672 475C
        gpg: Good signature from "AWS CLI Team <aws-cli@amazon.com>" [unknown]
        gpg: WARNING: This key is not certified with a trusted signature!
        gpg:          There is no indication that the signature belongs to the owner.
        Primary key fingerprint: FB5D B77F D5C1 18B8 0511  ADA8 A631 0ACC 4672 475C
        ```
**중요**  
결과에서 경고가 예상되지만 문제가 되지는 않습니다. 이 경고는 개인 PGP 키(보유한 경우)와 AWS CLI PGP 키 사이에 신뢰 체인이 없기 때문에 발생한 것입니다. 자세한 내용은 [Web of trust](https://wikipedia.org/wiki/Web_of_trust)를 참조하세요.

1. 사용자 환경에서는 [GNU Autotools](https://www.gnu.org/software/automake/faq/autotools-faq.html)로 생성된 파일(예: `configure` 및 `Makefile`)을 실행할 수 있습니다. 이러한 파일은 POSIX 플랫폼 간에 광범위하게 이식할 수 있습니다.

------
#### [ Linux and macOS ]

   Autotools가 사용자 환경에 아직 설치되지 않았거나 이를 업데이트해야 하는 경우 [How do I install the Autotools (as user)?](https://www.gnu.org/software/automake/faq/autotools-faq.html#How-do-I-install-the-Autotools-_0028as-user_0029_003f)(사용자가 Autotools를 설치하는 방법) 또는 *GNU 설명서*의 [Basic Installation](https://www.gnu.org/savannah-checkouts/gnu/automake/manual/automake.html#Basic-Installation)(기본 설치)에 나온 설치 지침을 따르세요.

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

**주의**  
Windows 환경에서는 사전 빌드된 설치 프로그램을 사용하는 것이 좋습니다. 사전 빌드된 설치 프로그램에 대한 설치 지침은 [최신 버전의 AWS CLI 설치 또는 업데이트](getting-started-install.md) 섹션을 참조하세요.

   Windows에는 POSIX 호환 셸이 제공되지 않으므로 AWS CLI 소스에서 설치하려면 추가 소프트웨어를 설치해야 합니다. [MSYS2](https://www.msys2.org/)는 특히 Autotools가 사용하는 POSIX 기반 스크립팅을 위해 Windows 소프트웨어를 빌드하고 설치하는 데 도움이 되는 도구 및 라이브러리 모음을 제공합니다.

   1. MSYS2를 설치합니다. MSYS2 설치 및 사용에 대한 자세한 내용은 *MSYS2 설명서*의 [설치 및 사용 지침](https://www.msys2.org/)을 참조하세요.

   1. MSYS2 터미널을 열고 다음 명령을 사용하여 autotools를 설치합니다.

      ```
      $ pacman -S autotools
      ```

**참고**  
Windows용 이 가이드의 구성, 빌드 및 설치 코드 예제에서는 기본 MSYS2 설치 경로인 `C:\msys64\usr\bin\bash`를 사용하는 것으로 가정합니다. PowerShell 내에서 MSYS2 을 호출할 때는 bash 명령을 따옴표로 묶은 다음 형식을 사용하게 됩니다.  

   ```
   PS C:\> C:\msys64\usr\bin\bash  -lc "command example" 
   ```
다음 명령 예제는 `./configure` 명령을 호출합니다.  

   ```
   PS C:\> C:\msys64\usr\bin\bash  -lc "./configure" 
   ```

------

1. Python 3.8 이상의 인터프리터가 설치되어 있습니다. 필요한 최소 Python 버전은 [AWS SDK 및 도구에 대한 공식 Python 지원 정책](https://aws.amazon.com/blogs/developer/python-support-policy-updates-for-aws-sdks-and-tools/)과 동일한 일정을 따릅니다. 인터프리터는 지원 종료일로부터 6개월 동안만 지원됩니다.

1. **(선택 사항)** AWS CLI의 모든 빌드 및 런타임 Python 라이브러리 종속 항목을 설치합니다. `./configure` 명령은 종속 항목이 누락되었는지 여부와 해당 종속 항목을 설치하는 방법을 알려줍니다.

   구성을 통해 이러한 종속 항목을 자동으로 설치하고 사용할 수 있습니다. 자세한 내용은 [종속 항목 다운로드](#source-getting-started-install-config-dependencies) 섹션을 참조하세요.

## 2단계: AWS CLI 소스 설치 구성
<a name="source-getting-started-install-config"></a>

AWS CLI 빌드 및 설치를 위한 구성은 `configure` 스크립트를 사용하여 지정됩니다. 모든 구성 옵션에 대한 문서를 보려면 `--help` 옵션과 함께 `configure` 스크립트를 실행합니다.

------
#### [ Linux and macOS ]

```
$ ./configure --help
```

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

```
PS C:\> C:\msys64\usr\bin\bash -lc "./configure --help" 
```

------

**Topics**
+ [

### 설치 위치
](#source-getting-started-install-config-location)
+ [

### Python 인터프리터
](#source-getting-started-install-config-interpreter)
+ [

### 종속 항목 다운로드
](#source-getting-started-install-config-dependencies)
+ [

### 설치 유형
](#source-getting-started-install-config-type)

### 설치 위치
<a name="source-getting-started-install-config-location"></a>

AWS CLI의 소스 설치에서는 구성 가능한 두 개의 디렉터리를 사용하여 AWS CLI를 설치합니다.
+ `libdir` - AWS CLI가 설치될 상위 디렉터리입니다. AWS CLI 설치 경로는 `<libdir-value>/aws-cli`입니다. Linux 및 macOS의 기본 `libdir` 값은 `/usr/local/lib`이므로 기본 설치 디렉터리는 `/usr/local/lib/aws-cli`가 됩니다.
+ `bindir` - AWS CLI 실행 파일이 설치된 디렉터리입니다. 기본 위치는 `/usr/local/bin`입니다.

다음 `configure` 옵션은 사용되는 디렉터리를 제어합니다.
+ `--prefix` - 설치에 사용할 디렉터리 접두사를 설정합니다. Linux 및 macOS의 기본값은 `/usr/local`입니다.
+ `--libdir` - AWS CLI 설치에 사용할 `libdir`을 설정합니다. 기본값은 `<prefix-value>/lib`입니다. `--libdir` 및 `--prefix`를 모두 지정하지 않은 경우 Linux 및 macOS의 기본값은 `/usr/local/lib/`입니다.
+ `--bindir` - AWS CLI `aws` 및 `aws_completer` 실행 파일을 설치하는 데 사용할 `bindir`을 설정합니다. 기본값은 `<prefix-value>/bin`입니다. `bindir` 및 `--prefix`를 모두 지정하지 않은 경우 Linux 및 macOS의 기본값은 `/usr/local/bin/`입니다.

------
#### [ Linux and macOS ]

다음 명령 예제에서는 `--prefix` 옵션을 사용하여 AWS CLI의 로컬 사용자 설치를 수행합니다. 이 명령은 `$HOME/.local/lib/aws-cli`에 AWS CLI를 설치하고 `$HOME/.local/bin`에 실행 파일을 설치합니다.

```
$ ./configure --prefix=$HOME/.local
```

다음 명령 예제에서는 `--libdir` 옵션을 사용하여 AWS CLI를 `/opt` 디렉터리에 추가 기능 애플리케이션으로 설치합니다 이 명령은 AWS CLI를 `/opt/aws-cli`에 설치하고 실행 파일을 기본 위치인 `/usr/local/bin`에 설치합니다.

```
$ ./configure --libdir=/opt
```

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

다음 명령 예제에서는 `--prefix` 옵션을 사용하여 AWS CLI의 로컬 사용자 설치를 수행합니다. 이 명령은 `$HOME/.local/lib/aws-cli`에 AWS CLI를 설치하고 `$HOME/.local/bin`에 실행 파일을 설치합니다.

```
$ C:\msys64\usr\bin\bash -lc "./configure --prefix='C:\Program Files\AWSCLI'" 
```

다음 명령 예제에서는 `--libdir` 옵션을 사용하여 AWS CLI를 `/opt` 디렉터리에 추가 기능 애플리케이션으로 설치합니다 이 명령은 AWS CLI를 `C:\Program Files\AWSCLI\opt\aws-cli`에 설치합니다.

------

### Python 인터프리터
<a name="source-getting-started-install-config-interpreter"></a>

**참고**  
Windows용으로 설치할 때 Python 인터프리터를 지정하는 것이 좋습니다.

`./configure` 스크립트는 [https://www.gnu.org/software/automake/manual/html_node/Python.html](https://www.gnu.org/software/automake/manual/html_node/Python.html) Autoconf 매크로를 사용하여 AWS CLI를 빌드 및 실행하는 데 사용할 설치된 Python 3.8 이상 버전의 인터프리터를 자동으로 선택합니다.

사용할 Python 인터프리터는 `configure` 스크립트를 실행할 때 `PYTHON` 환경 변수를 사용하여 명시적으로 설정할 수 있습니다.

------
#### [ Linux and macOS ]

```
$ PYTHON=/path/to/python ./configure
```

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

```
PS C:\> C:\msys64\usr\bin\bash -lc "PYTHON='C:\path\to\python' ./configure"
```

------

### 종속 항목 다운로드
<a name="source-getting-started-install-config-dependencies"></a>

기본적으로 AWS CLI의 모든 빌드 및 런타임 종속 항목이 시스템에 이미 설치되어 있어야 합니다. 여기에는 모든 Python 라이브러리 종속 항목이 포함됩니다. `configure` 스크립트가 실행될 때 모든 종속 항목이 확인되며, 시스템에 Python 종속 항목이 누락되면 `configure` 스크립트 오류가 발생합니다.

시스템에 종속 항목이 없으면 다음 코드 예제에서 오류가 출력됩니다.

------
#### [ Linux and macOS ]

```
$ ./configure 
checking for a Python interpreter with version >= 3.8... python
checking for python... /Users/username/.envs/env3.11/bin/python
checking for python version... 3.11
checking for python platform... darwin
checking for GNU default python prefix... ${prefix}
checking for GNU default python exec_prefix... ${exec_prefix}
checking for python script directory (pythondir)... ${PYTHON_PREFIX}/lib/python3.11/site-packages
checking for python extension module directory (pyexecdir)... ${PYTHON_EXEC_PREFIX}/lib/python3.11/site-packages
checking for --with-install-type... system-sandbox
checking for --with-download-deps... Traceback (most recent call last):
  File "<frozen runpy>", line 198, in _run_module_as_main
  File "<frozen runpy>", line 88, in _run_code
  File "/Users/username/aws-code/aws-cli/./backends/build_system/__main__.py", line 125, in <module>
    main()
  File "/Users/username/aws-code/aws-cli/./backends/build_system/__main__.py", line 121, in main
    parsed_args.func(parsed_args)
  File "/Users/username/aws-code/aws-cli/./backends/build_system/__main__.py", line 49, in validate
    validate_env(parsed_args.artifact)
  File "/Users/username/aws-code/aws-cli/./backends/build_system/validate_env.py", line 68, in validate_env
    raise UnmetDependenciesException(unmet_deps, in_venv)
validate_env.UnmetDependenciesException: Environment requires following Python dependencies:

awscrt (required: ('>=0.12.4', '<0.17.0')) (version installed: None)

We recommend using --with-download-deps flag to automatically create a virtualenv and download the dependencies.

If you want to manage the dependencies yourself instead, run the following pip command:
/Users/username/.envs/env3.11/bin/python -m pip install --prefer-binary 'awscrt>=0.12.4,<0.17.0'

configure: error: "Python dependencies not met."
```

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

```
PS C:\> C:\msys64\usr\bin\bash -lc "./configure" 
checking for a Python interpreter with version >= 3.8... python
checking for python... /Users/username/.envs/env3.11/bin/python
checking for python version... 3.11
checking for python platform... darwin
checking for GNU default python prefix... ${prefix}
checking for GNU default python exec_prefix... ${exec_prefix}
checking for python script directory (pythondir)... ${PYTHON_PREFIX}/lib/python3.11/site-packages
checking for python extension module directory (pyexecdir)... ${PYTHON_EXEC_PREFIX}/lib/python3.11/site-packages
checking for --with-install-type... system-sandbox
checking for --with-download-deps... Traceback (most recent call last):
  File "<frozen runpy>", line 198, in _run_module_as_main
  File "<frozen runpy>", line 88, in _run_code
  File "/Users/username/aws-code/aws-cli/./backends/build_system/__main__.py", line 125, in <module>
    main()
  File "/Users/username/aws-code/aws-cli/./backends/build_system/__main__.py", line 121, in main
    parsed_args.func(parsed_args)
  File "/Users/username/aws-code/aws-cli/./backends/build_system/__main__.py", line 49, in validate
    validate_env(parsed_args.artifact)
  File "/Users/username/aws-code/aws-cli/./backends/build_system/validate_env.py", line 68, in validate_env
    raise UnmetDependenciesException(unmet_deps, in_venv)
validate_env.UnmetDependenciesException: Environment requires following Python dependencies:

awscrt (required: ('>=0.12.4', '<0.17.0')) (version installed: None)

We recommend using --with-download-deps flag to automatically create a virtualenv and download the dependencies.

If you want to manage the dependencies yourself instead, run the following pip command:
/Users/username/.envs/env3.11/bin/python -m pip install --prefer-binary 'awscrt>=0.12.4,<0.17.0'

configure: error: "Python dependencies not met."
```

------

필요한 Python 종속 항목을 자동으로 설치하려면 `--with-download-deps` 옵션을 사용합니다. 이 플래그를 사용할 때 빌드 프로세스는 다음을 수행합니다.
+ Python 라이브러리 종속 항목 확인을 건너뜁니다.
+ 필요한 모든 Python 종속 항목을 다운로드하고 다운로드한 **종속 항목만** 사용하여 `make` 빌드 중에 AWS CLI를 빌드하도록 설정을 구성합니다.

다음 configure 명령 예제는 `--with-download-deps` 옵션을 사용하여 Python 종속 항목을 다운로드하고 사용합니다.

------
#### [ Linux and macOS ]

```
$ ./configure --with-download-deps
```

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

```
PS C:\> C:\msys64\usr\bin\bash -lc "./configure --with-download-deps"
```

------

### 설치 유형
<a name="source-getting-started-install-config-type"></a>

소스 설치 프로세스는 다음 설치 유형을 지원합니다.
+ `system-sandbox` - **(기본값)** 격리된 Python 가상 환경을 만들고 가상 환경에 AWS CLI를 설치한 다음 가상 환경에서 `aws` 및 `aws_completer` 실행 파일에 symlink를 연결합니다. 이 AWS CLI 설치는 런타임에 선택한 Python 인터프리터에 직접 의존합니다.

  이는 AWS CLI를 시스템에 설치하기 위한 간단한 설치 메커니즘으로, 가상 환경에서 설치를 샌드박싱하여 Python 모범 사례를 따릅니다. 이 설치는 Python 설치와 함께 설치하여 가능한 한 가장 원활한 방식으로AWS CLI 소스에서 설치하려는 고객을 위한 것입니다.
+ `portable-exe` - AWS CLI를 유사한 아키텍처의 환경에 배포할 수 있는 독립형 실행 파일로 고정합니다. 이는 AWS CLI의 공식 사전 빌드된 실행 파일을 생성하는 데 사용되는 것과 동일한 프로세스입니다. `portable-exe`는 AWS CLI의 런타임에 사용하기 위해 `configure` 단계에서 선택한 Python 인터프리터의 복사본에서 정지됩니다. 이를 통해 Python 인터프리터가 없을 수 있는 다른 컴퓨터로 이동할 수 있습니다.

  이 유형의 빌드는 AWS CLI 설치가 환경에 설치된 Python 버전과 연결되지 않도록 하고 Python이 아직 설치되지 않은 다른 시스템에 빌드를 배포할 수 있기 때문에 유용합니다. 이를 통해 사용하는 AWS CLI 실행 파일의 종속 항목과 보안을 제어할 수 있습니다.

설치 유형을 구성하려면 `--with-install-type` 옵션을 사용하고 `portable-exe` 또는 `system-sandbox` 값을 지정합니다.

다음 `./configure` 명령 예제에서는 `portable-exe` 값을 지정합니다.

------
#### [ Linux and macOS ]

```
$ ./configure --with-install-type=portable-exe
```

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

```
PS C:\> C:\msys64\usr\bin\bash -lc "./configure --with-install-type=portable-exe"
```

------

## 3단계: AWS CLI 빌드
<a name="source-getting-started-install-build"></a>

`make` 명령을 통해 구성 설정을 사용하여 AWS CLI를 빌드합니다.

------
#### [ Linux and macOS ]

```
$ make
```

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

```
PS C:\> C:\msys64\usr\bin\bash -lc "make"
```

------

**참고**  
Python [https://docs.python.org/3/library/venv.html](https://docs.python.org/3/library/venv.html) 모듈을 사용하여 빌드 디렉터리에 가상 환경이 생성됩니다. 가상 환경은 [Python 표준 라이브러리에서 제공되는 pip 버전](https://docs.python.org/3/library/ensurepip.html)으로 부트스트랩됩니다.
Python 라이브러리 종속 항목을 복사합니다. `configure` 명령에 `--with-download-deps` 플래그가 지정되었는지 여부에 따라 이 단계는 다음 중 하나를 수행합니다.  
`--with-download-deps`가 **지정된** 경우. Python 종속 항목은 pip로 설치됩니다. 여기에는 `wheel`, `setuptools` 및 모든 AWS CLI 런타임 종속 항목이 포함됩니다. `portable-exe`를 빌드하는 경우 `pyinstaller`가 설치됩니다. 이러한 요구 사항은 모두 [https://github.com/jazzband/pip-tools](https://github.com/jazzband/pip-tools)에서 생성된 잠금 파일에 지정되어 있습니다.
`--with-download-deps`가 **지정되지 않은** 경우. Python 인터프리터 사이트 패키지의 Python 라이브러리와 모든 스크립트(예:`pyinstaller`)가 빌드에 사용되는 가상 환경에 복사됩니다.
AWS CLI 코드베이스에서 직접 `pip install`을 실행하여 오프라인 트리 내 빌드를 수행하고 빌드 가상 환경에 AWS CLI를 설치합니다. 이 설치는 pip 플래그 [--no-build-isolation](https://pip.pypa.io/en/stable/cli/pip_install/#cmdoption-no-build-isolation), [--use-feature=in-tree-build](https://pip.pypa.io/en/stable/cli/pip_install/#local-project-installs), [--no-cache-dir](https://pip.pypa.io/en/stable/cli/pip_install/#caching) 및 [https://pip.pypa.io/en/stable/cli/pip_install/#cmdoption-no-index](https://pip.pypa.io/en/stable/cli/pip_install/#cmdoption-no-index)를 사용합니다.
**(선택 사항)** `configure` 명령에서 `--install-type`이 `portable-exe`로 설정된 경우 [https://www.pyinstaller.org/](https://www.pyinstaller.org/)를 사용하여 독립 실행형 실행 파일을 빌드합니다.

## 4단계: AWS CLI 설치
<a name="source-getting-started-install-instructions"></a>

`make install` 명령은 빌드된 AWS CLI를 시스템의 구성된 위치에 설치합니다.

------
#### [ Linux and macOS ]

다음 명령 예제에서는 구성 및 빌드 설정을 사용하여 AWS CLI를 설치합니다.

```
$ make install
```

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

다음 명령 예제에서는 구성 및 빌드 설정을 사용하여 AWS CLI를 설치한 다음 AWS CLI 경로와 함께 환경 변수를 추가합니다.

```
PS C:\> C:\msys64\usr\bin\bash -lc " make install "
PS C:\> $Env:PATH +=";C:\Program Files\AWSCLI\bin\"
```

------

`make install` 규칙은 [https://www.gnu.org/software/make/manual/html_node/DESTDIR.html#DESTDIR](https://www.gnu.org/software/make/manual/html_node/DESTDIR.html#DESTDIR) 변수를 지원합니다. 이 변수를 지정하면 AWS CLI 설치 시 이미 구성된 설치 경로 앞에 지정된 경로가 추가됩니다. 기본적으로 이 변수에는 값이 설정되지 않습니다.

------
#### [ Linux and macOS ]

다음 코드 예제에서는 `--prefix=/usr/local` 플래그를 사용하여 설치 위치를 구성한 다음 `make install` 명령에 `DESTDIR=/tmp/stage`를 사용하여 해당 대상을 변경합니다. 이러한 명령을 실행하면 AWS CLI가 `/tmp/stage/usr/local/lib/aws-cli`에 설치되고 해당 실행 파일이 `/tmp/stage/usr/local/bin`에 배치됩니다.

```
$ ./configure --prefix=/usr/local
$ make
$ make DESTDIR=/tmp/stage install
```

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

다음 코드 예제에서는 `--prefix=\awscli` 플래그를 사용하여 설치 위치를 구성한 다음 `make install` 명령에 `DESTDIR=C:\Program Files`를 사용하여 해당 대상을 변경합니다. 이 명령을 실행하면 AWS CLI가 `C:\Program Files\awscli`에 설치됩니다.

```
$ ./configure --prefix=\awscli
$ make
$ make DESTDIR='C:\Program Files' install
```

------

**참고**  
다음 중 하나를 구성된 설치 디렉터리로 이동합니다.  
설치 유형이 `system-sandbox`인 경우 빌드된 가상 환경을 이동합니다.
설치 유형이 `portable-exe`인 경우 빌드된 독립 실행형 실행 파일을 이동합니다.
구성된 bin 디렉터리에 `aws` 및 `aws_completer` 실행 파일 모두에 대한 symlink를 만듭니다.

## 5단계: AWS CLI 설치 확인
<a name="source-getting-started-install-verify"></a>

다음 명령을 사용하여 AWS CLI가 성공적으로 설치되었는지 확인합니다.

```
$ aws --version
aws-cli/2.27.41 Python/3.11.6 Windows/10 exe/AMD64 prompt/off
```

`aws` 명령이 인식되지 않으면 새 symlink가 업데이트할 수 있도록 터미널을 재시작해야 할 수도 있습니다. AWS CLI를 설치하거나 제거한 후 추가 문제가 발생할 경우 [AWS CLI에 대한 오류 문제 해결](cli-chap-troubleshooting.md)에 나온 일반적인 문제 해결 단계를 참조하세요.

## 워크플로우 예시
<a name="source-getting-started-install-workflows"></a>

이 섹션에서는 소스에서 설치하기 위한 몇 가지 기본 워크플로 예제를 제공합니다.

### 기본 Linux 및 macOS 설치
<a name="source-getting-started-install-workflows-basic"></a>

다음 예제는 AWS CLI를 기본 위치인 `/usr/local/lib/aws-cli`에 설치하는 기본 설치 워크플로입니다.

```
$ cd path/to/cli/respository/
$ ./configure
$ make
$ make install
```

### 자동화된 Windows 설치
<a name="source-getting-started-install-workflows-win"></a>

**참고**  
이 워크플로를 사용하려면 PowerShell을 관리자 권한으로 실행해야 합니다.

CI 설정에서 자동화된 방식으로 MSYS2를 사용할 수 있습니다. *MSYS2 설명서*의 [Using MSYS2 in CI](https://www.msys2.org/docs/ci/)(CI에서 MSYS2 사용)를 참조하세요.

------
#### [ Downloaded Tarball ]

`awscli.tar.gz` 파일을 다운로드한 후 압축을 풀고 AWS CLI를 설치합니다. 다음 명령을 사용할 경우 다음과 같이 경로를 바꿉니다.
+ `C:\msys64\usr\bin\bash`를 MSYS2 경로 위치로
+ `.\awscli-2.x.x\`를 추출된 `awscli.tar.gz` 폴더 이름으로
+ `PYTHON='C:\path\to\python.exe'`를 로컬 Python 경로로

다음 코드 예제에서는 MSYS2를 사용하여 PowerShell에서 AWS CLI 빌드 및 설치를 자동화하고 사용할 Python 로컬 설치를 지정합니다.

```
PS C:\> curl "https://awscli.amazonaws.com/awscli.tar.gz" -o "awscliv2.zip"  #  Download the awscli.tar.gz file in the current working directory
PS C:\> tar -xvzf .\awscli.tar.gz #  Extract awscli.tar.gz file
PS C:\> cd .\awscli-2.x.x\ #  Navigate to the root of the extracted files
PS C:\> $env:CHERE_INVOKING = 'yes' #  Preserve the current working directory
PS C:\> C:\msys64\usr\bin\bash  -lc " PYTHON='C:\path\to\python.exe' ./configure --prefix='C:\Program Files\AWSCLI' --with-download-deps " 
PS C:\> C:\msys64\usr\bin\bash  -lc "make"
PS C:\> C:\msys64\usr\bin\bash  -lc "make install"
PS C:\> $Env:PATH +=";C:\Program Files\AWSCLI\bin\"
PS C:\> aws --version
aws-cli/2.27.41 Python/3.11.6 Windows/10 source-sandbox/AMD64
```

------
#### [ GitHub Repository ]

`awscli.tar.gz` 파일을 다운로드한 후 압축을 풀고 AWS CLI를 설치합니다. 다음 명령을 사용할 경우 다음과 같이 경로를 바꿉니다.
+ `C:\msys64\usr\bin\bash`를 MSYS2 경로 위치로
+ `C:path\to\cli\repository\`를 *GitHub*에서 복제된 [AWS CLI 리포지토리](https://github.com/aws/aws-cli)의 경로로. 자세한 내용은 *GitHub Docs*에서 [Fork a repo](https://docs.github.com/en/get-started/quickstart/fork-a-repo)(리포지토리 분기)를 참조하세요.
+ `PYTHON='C:\path\to\python.exe'`를 로컬 Python 경로로

다음 코드 예제에서는 MSYS2를 사용하여 PowerShell에서 AWS CLI 빌드 및 설치를 자동화하고 사용할 Python 로컬 설치를 지정합니다.

```
PS C:\> cd C:path\to\cli\repository\
PS C:\> $env:CHERE_INVOKING = 'yes' #  Preserve the current working directory
PS C:\> C:\msys64\usr\bin\bash  -lc " PYTHON='C:\path\to\python.exe' ./configure --prefix='C:\Program Files\AWSCLI' --with-download-deps " 
PS C:\> C:\msys64\usr\bin\bash  -lc "make"
PS C:\> C:\msys64\usr\bin\bash  -lc "make install"
PS C:\> $Env:PATH +=";C:\Program Files\AWSCLI\bin\"
PS C:\> aws --version
```

------

### Alpine Linux 컨테이너
<a name="source-getting-started-install-workflows-alpine"></a>

다음은 [Alpine용으로 사전 빌드된 바이너리의 대안](https://github.com/aws/aws-cli/issues/4685)으로 Alpine Linux 컨테이너에 AWS CLI를 제대로 설치하는 데 사용할 수 있는 Dockerfile의 예입니다. 이 예제를 사용할 때는 *AWSCLI\$1VERSION*을 원하는 AWS CLI 버전 번호로 바꿉니다.

```
 1. FROM python:3.8-alpine AS builder
 2. 
 3. ENV AWSCLI_VERSION=2.10.1
 4. 
 5. RUN apk add --no-cache \
 6.     curl \
 7.     make \
 8.     cmake \
 9.     gcc \
10.     g++ \
11.     libc-dev \
12.     libffi-dev \
13.     openssl-dev \
14.     && curl https://awscli.amazonaws.com/awscli-${AWSCLI_VERSION}.tar.gz | tar -xz \
15.     && cd awscli-${AWSCLI_VERSION} \
16.     && ./configure --prefix=/opt/aws-cli/ --with-download-deps \
17.     && make \
18.     && make install
19. 
20. FROM python:3.8-alpine
21. 
22. RUN apk --no-cache add groff
23. 
24. COPY --from=builder /opt/aws-cli/ /opt/aws-cli/
25. 
26. ENTRYPOINT ["/opt/aws-cli/bin/aws"]
```

Amazon Linux 2에서 빌드된 것과 유사한 컨테이너에서 이 이미지가 빌드되고 AWS CLI가 호출됩니다.

```
$ docker build --tag awscli-alpine .
$ docker run --rm -it awscli-alpine --version
aws-cli/2.2.1 Python/3.8.11 Linux/5.10.25-linuxkit source-sandbox/x86_64.alpine.3 prompt/off
```

이 이미지의 최종 크기는 공식 AWS CLI 도커 이미지 크기보다 작습니다. 공식 도커 이미지에 대한 자세한 내용은 [AWS CLI에 대한 공식 Amazon ECR 퍼블릭 또는 Docker 이미지 실행](getting-started-docker.md) 섹션을 참조하세요.

## AWS CLI 설치 및 제거 오류 문제 해결
<a name="source-install-tshoot"></a>

설치 오류에 대한 문제 해결 단계는 [AWS CLI에 대한 오류 문제 해결](cli-chap-troubleshooting.md)의 일반적인 문제 해결 단계를 참조하세요. 가장 관련성이 높은 문제 해결 단계는 [명령을 찾을 수 없음 오류](cli-chap-troubleshooting.md#tshoot-install-not-found), ['`aws --version`' 명령이 설치한 버전과 다른 버전을 반환함](cli-chap-troubleshooting.md#tshoot-install-wrong-version) 및 [AWS CLI를 제거한 후 '`aws --version`' 명령이 버전을 반환함](cli-chap-troubleshooting.md#tshoot-uninstall-1) 섹션을 참조하세요.

문제 해결 가이드에서 다루지 않는 문제의 경우 *GitHub*의 [AWS CLI 리포지토리](https://github.com/aws/aws-cli/labels/source-distribution)에서 `source-distribution` 레이블을 사용하여 문제를 검색합니다. 해당 오류와 관련된 기존 문제가 없는 경우 [새 문제를 생성](https://github.com/aws/aws-cli/issues/new?assignees=&labels=source-distribution%2Cneeds-triage&template=source-distribution.yml&title=%28short+issue+description%29)하여 AWS CLI 관리자에게 도움을 받습니다.

## 다음 단계
<a name="source-install-next-steps"></a>

AWS CLI를 설치한 후에는 [AWS CLI 설정](getting-started-quickstart.md)를 수행해야 합니다.

# AWS CLI에 대한 공식 Amazon ECR 퍼블릭 또는 Docker 이미지 실행
<a name="getting-started-docker"></a>

이 주제에서는 공식 Amazon Elastic Container Registry Public(Amazon ECR Public) 또는 Docker Hub 이미지 중 하나를 사용하여 Docker에서 AWS CLI 버전 2를 실행, 버전 제어 및 구성하는 방법에 관해 설명합니다. Docker를 사용하는 방법에 대한 자세한 내용은 [Docker 설명서](https://docs.docker.com/)를 참조하세요.

공식 이미지는 AWS가 직접 지원하고 유지하는 격리, 이동성 및 보안을 제공합니다. 이렇게 하면 설치를 직접 관리할 필요 없이 컨테이너 기반 환경에서 AWS CLI 버전 2를 사용할 수 있습니다.

**Topics**
+ [

## 사전 조건
](#cliv2-docker-prereq)
+ [

## Amazon ECR Public과 Docker Hub 간에 결정하기
](#cliv2-docker-versus)
+ [

## 공식 AWS CLI 버전 2 이미지 실행
](#cliv2-docker-install)
+ [

## 공식 이미지의 인터페이스 및 이전 버전과의 호환성에 대한 참고 사항
](#cliv2-docker-install-notes)
+ [

## 특정 버전 및 태그 사용
](#cliv2-docker-upgrade)
+ [

## 최신 공식 이미지로 업데이트
](#cliv2-docker-update)
+ [

## 호스트 파일, 자격 증명, 환경 변수 및 구성 공유
](#cliv2-docker-share-files)
+ [

## Docker 실행 명령 단축
](#cliv2-docker-aliases)

## 사전 조건
<a name="cliv2-docker-prereq"></a>

도커가 설치되어 있어야 합니다. 설치 지침은 [도커 웹 사이트](https://docs.docker.com/install/)를 참조하세요.

도커의 설치를 확인하려면 다음 명령을 실행하고 출력이 있는지 확인하세요.

```
$ docker --version
Docker version 19.03.1
```

## Amazon ECR Public과 Docker Hub 간에 결정하기
<a name="cliv2-docker-versus"></a>

AWS CLI 이미지에는 Docker Hub를 통한 Amazon ECR Public을 사용하는 것이 좋습니다. Docker Hub는 Public 소비자에 대한 속도 제한이 더 엄격하여 제한 문제가 발생할 수 있습니다. 또한 Amazon ECR Public은 두 개 이상의 리전에 이미지를 복제하여 강력한 가용성을 제공하고 리전 중단 문제를 처리합니다.

Docker Hub 속도 제한에 대한 자세한 내용은 *Docker* 웹 사이트의 [Docker Hub 속도 제한 이해](https://www.docker.com/increase-rate-limits/) 섹션을 참조하세요.

## 공식 AWS CLI 버전 2 이미지 실행
<a name="cliv2-docker-install"></a>

 `docker run` 명령을 처음 사용하면 최신 이미지가 컴퓨터에 다운로드됩니다. 이후에 `docker run` 명령을 사용할 때마다 로컬 사본에서 실행됩니다.

AWS CLI 버전 2 Docker 이미지를 실행하려면 `docker run` 명령을 사용합니다.

------
#### [ Amazon ECR Public ]

공식 AWS CLI 버전 2 Amazon ECR Public 이미지는 [`aws-cli/aws-cli` 리포지토리](https://gallery.ecr.aws/aws-cli/aws-cli)의 Amazon ECR Public에서 호스팅됩니다.

```
$ docker run --rm -it public.ecr.aws/aws-cli/aws-cli command
```

------
#### [ Docker Hub ]

공식 AWS CLI 버전 2 Docker 이미지는 `amazon/aws-cli` 리포지토리의 Docker Hub에서 호스팅됩니다.

```
$ docker run --rm -it amazon/aws-cli command
```

------

다음은 명령의 작동 방식입니다.
+ `docker run --rm -it repository/name` - `aws` 실행 파일과 동일합니다. 이 명령을 실행할 때마다 Docker는 다운로드한 이미지의 컨테이너를 구동하고 `aws` 명령을 실행합니다. 기본적으로 이미지는 최신 버전의 AWS CLI 버전 2를 사용합니다.

  예를 들어 도커에서 `aws --version` 명령을 호출하려면 다음을 실행하세요.

------
#### [ Amazon ECR Public ]

  ```
  $ docker run --rm -it public.ecr.aws/aws-cli/aws-cli --version
  aws-cli/2.27.41 Python/3.7.3 Linux/4.9.184-linuxkit botocore/2.4.5dev10
  ```

------
#### [ Docker Hub ]

  ```
  $ docker run --rm -it amazon/aws-cli --version
  aws-cli/2.27.41 Python/3.7.3 Linux/4.9.184-linuxkit botocore/2.4.5dev10
  ```

------
+ `--rm` - 명령이 종료된 후 컨테이너를 정리하도록 지정합니다.
+ `-it` - 을 사용하여 가상 TTY를 열도록 지정합니다.`stdin` 이렇게 하면 컨테이너에서 실행되는 동안 `aws configure` 및 `aws help` 명령을 사용하여 AWS CLI 버전 2에 입력을 제공할 수 있습니다. `-it`를 생략할지 여부를 선택할 때 다음 사항을 고려합니다.
  + 스크립트를 실행하는 경우 `-it`가 필요하지 않습니다.
  + 스크립트에 오류가 발생하는 경우 Docker 호출에서 `-it`를 생략하면 문제가 해결될 수 있습니다.
  + 출력을 파이프하려는 경우 `-it`로 인해 오류가 발생할 수 있으며 Docker 호출에서 `-it`를 생략하면 이 문제가 해결될 수 있습니다. `-it` 플래그를 유지하고 싶지만 여전히 출력을 파이프하려는 경우 AWS CLI가 기본적으로 사용하는 [클라이언트 측 호출기](cli-usage-pagination.md#cli-usage-pagination-clientside)를 사용 중지하면 문제가 해결됩니다.

`docker run` 명령에 대한 자세한 내용은 [도커 참조 안내서](https://docs.docker.com/engine/reference/run/)를 참조하세요.

## 공식 이미지의 인터페이스 및 이전 버전과의 호환성에 대한 참고 사항
<a name="cliv2-docker-install-notes"></a>
+ 이미지에서 지원되는 유일한 도구는 AWS CLI입니다. `aws` 실행 파일만 직접 실행해야 합니다. 예를 들어 `less` 및 `groff`가 이미지에 명시적으로 설치되어 있어도 AWS CLI 명령 외부에서 직접 실행해서는 안 됩니다.
+ `/aws` 작업 디렉터리는 사용자가 제어합니다. AWS CLI 명령을 실행할 때 사용자가 지시하지 않는 한 이미지는 이 디렉터리에 기록되지 않습니다.
+ 최신 태그에 의존할 때 이전 버전과의 호환성은 보장되지 않습니다. 이전 버전과의 호환성을 보장하려면 변경 불가능한 특정 `<major.minor.patch>` 태그에 고정해야 합니다. 이러한 태그는 한 번만 푸시됩니다.

## 특정 버전 및 태그 사용
<a name="cliv2-docker-upgrade"></a>

공식 AWS CLI 버전 2 이미지에는 버전 `2.0.6`부터 시작되는 여러 버전이 있습니다. 특정 버전의 AWS CLI 버전 2를 실행하려면 `docker run` 명령에 적절한 태그를 추가합니다. 태그와 함께 `docker run` 명령을 처음 사용하면 해당 태그의 최신 이미지가 컴퓨터에 다운로드됩니다. 이후에 해당 태그와 함께 `docker run` 명령을 사용할 때마다 로컬 사본에서 실행됩니다.

두 가지 유형의 태그를 사용할 수 있습니다.
+ `latest` – 이미지에 대한 AWS CLI 버전 2의 최신 버전을 정의합니다. 최신 버전의 AWS CLI 버전 2를 원하는 경우 `latest` 태그를 사용하는 것이 좋습니다. 그러나 이 태그에 의존할 때 이전 버전과의 호환성은 보장되지 않습니다. `latest` 태그는 기본적으로 `docker run` 명령에서 사용됩니다. 명시적으로 `latest` 태그를 사용하려면 컨테이너 이미지 이름에 태그를 추가합니다.

------
#### [ Amazon ECR Public ]

  ```
  $ docker run --rm -it public.ecr.aws/aws-cli/aws-cli:latest command
  ```

------
#### [ Docker Hub ]

  ```
  $ docker run --rm -it amazon/aws-cli:latest command
  ```

------
+ `<major.minor.patch>` – 이미지에 대한 AWS CLI 버전 2의 특정 버전을 정의합니다. 프로덕션 환경에서 공식 이미지를 사용하려는 경우 이전 버전과의 호환성을 보장하기 위해 특정 버전의 AWS CLI 버전 2를 사용하는 것이 좋습니다. 예를 들어 버전 `2.0.6`을 실행하려면 컨테이너 이미지 이름에 버전을 추가합니다.

------
#### [ Amazon ECR Public ]

  ```
  $ docker run --rm -it public.ecr.aws/aws-cli/aws-cli:2.0.6 command
  ```

------
#### [ Docker Hub ]

  ```
  $ docker run --rm -it amazon/aws-cli:2.0.6 command
  ```

------

## 최신 공식 이미지로 업데이트
<a name="cliv2-docker-update"></a>

최신 이미지는 `docker run` 명령을 처음 사용할 때만 컴퓨터에 다운로드되므로 업데이트된 이미지를 수동으로 가져와야 합니다. 최신 버전으로 수동으로 업데이트하려면 `latest` 태그가 지정된 이미지를 가져오는 것이 좋습니다. 이미지를 가져오면 최신 버전이 컴퓨터에 다운로드됩니다.

------
#### [ Amazon ECR Public ]

```
$ docker pull public.ecr.aws/aws-cli/aws-cli:latest
```

------
#### [ Docker Hub ]

```
$ docker pull amazon/aws-cli:latest
```

------

## 호스트 파일, 자격 증명, 환경 변수 및 구성 공유
<a name="cliv2-docker-share-files"></a>

AWS CLI 버전 2는 컨테이너에서 실행되므로 기본적으로 CLI는 구성 및 자격 증명을 포함하는 호스트 파일 시스템에 액세스할 수 없습니다. 호스트 파일 시스템, 자격 증명 및 구성을 컨테이너에 공유하려면 `~/.aws` 명령에 `/root/.aws` 플래그를 사용하여 호스트 시스템의 `-v` 디렉터리를 `docker run`의 컨테이너에 마운트합니다. 이렇게 하면 컨테이너에서 실행 중인 AWS CLI 버전 2가 호스트 파일 정보를 찾을 수 있습니다.

------
#### [ Amazon ECR Public ]

**Linux 및 macOS**: 

```
$ docker run --rm -it -v ~/.aws:/root/.aws public.ecr.aws/aws-cli/aws-cli command
```

**Windows 명령 프롬프트**

```
$ docker run --rm -it -v %userprofile%\.aws:/root/.aws public.ecr.aws/aws-cli/aws-cli command
```

**Windows PowerShell**:

```
C:\> docker run --rm -it -v $env:userprofile\.aws:/root/.aws  public.ecr.aws/aws-cli/aws-cli command
```

------
#### [ Docker Hub ]

**Linux 및 macOS**: 

```
$ docker run --rm -it -v ~/.aws:/root/.aws amazon/aws-cli command
```

**Windows 명령 프롬프트**

```
$ docker run --rm -it -v %userprofile%\.aws:/root/.aws amazon/aws-cli command
```

**Windows PowerShell**:

```
C:\> docker run --rm -it -v $env:userprofile\.aws:/root/.aws  amazon/aws-cli command
```

------

`-v` 플래그 및 마운팅에 대한 자세한 내용은 [도커 참조 안내서](https://docs.docker.com/storage/volumes/)를 참조하세요.

**참고**  
`config` 및 `credentials` 파일에 대한 정보는 [AWS CLI의 구성 및 보안 인증 파일 설정](cli-configure-files.md) 섹션을 참조하세요.

### 예제 1: 자격 증명 및 구성 제공
<a name="cliv2-docker-share-files-config"></a>

이 예제에서는 `s3 ls` 명령을 실행하여 Amazon Simple Storage Service(Amazon S3)에 버킷을 나열할 때 호스트 자격 증명 및 구성을 제공합니다. 아래 예제에서는 AWS CLI 자격 증명 및 구성 파일의 기본 위치를 사용하고 다른 위치를 사용하고 파일 경로를 변경합니다.

------
#### [ Amazon ECR Public ]

**Linux 및 macOS**: 

```
$ docker run --rm -it -v ~/.aws:/root/.aws public.ecr.aws/aws-cli/aws-cli s3 ls
2020-03-25 00:30:48 aws-cli-docker-demo
```

**Windows 명령 프롬프트**

```
$ docker run --rm -it -v %userprofile%\.aws:/root/.aws public.ecr.aws/aws-cli/aws-cli s3 ls
2020-03-25 00:30:48 aws-cli-docker-demo
```

**Windows PowerShell**:

```
C:\> docker run --rm -it -v $env:userprofile\.aws:/root/.aws public.ecr.aws/aws-cli/aws-cli s3 ls
```

------
#### [ Docker Hub ]

**Linux 및 macOS**: 

```
$ docker run --rm -it -v ~/.aws:/root/.aws amazon/aws-cli s3 ls
2020-03-25 00:30:48 aws-cli-docker-demo
```

**Windows 명령 프롬프트**

```
$ docker run --rm -it -v %userprofile%\.aws:/root/.aws amazon/aws-cli s3 ls
2020-03-25 00:30:48 aws-cli-docker-demo
```

**Windows PowerShell**:

```
C:\> docker run --rm -it -v $env:userprofile\.aws:/root/.aws amazon/aws-cli s3 ls
```

------

`-e` 플래그를 사용하여 특정 시스템의 환경 변수를 호출할 수 있습니다. 환경 변수를 사용하려면 이름으로 호출합니다.

------
#### [ Amazon ECR Public ]

**Linux 및 macOS**: 

```
$ docker run --rm -it -v ~/.aws:/root/.aws -e ENVVAR_NAME public.ecr.aws/aws-cli/aws-cli s3 ls
2020-03-25 00:30:48 aws-cli-docker-demo
```

**Windows 명령 프롬프트**

```
$ docker run --rm -it -v %userprofile%\.aws:/root/.aws -e ENVVAR_NAME public.ecr.aws/aws-cli/aws-cli s3 ls
2020-03-25 00:30:48 aws-cli-docker-demo
```

**Windows PowerShell**:

```
C:\> docker run --rm -it -v $env:userprofile\.aws:/root/.aws -e ENVVAR_NAME public.ecr.aws/aws-cli/aws-cli s3 ls
```

------
#### [ Docker Hub ]

**Linux 및 macOS**: 

```
$ docker run --rm -it -v ~/.aws:/root/.aws -e ENVVAR_NAME amazon/aws-cli s3 ls
2020-03-25 00:30:48 aws-cli-docker-demo
```

**Windows 명령 프롬프트**

```
$ docker run --rm -it -v %userprofile%\.aws:/root/.aws -e ENVVAR_NAME amazon/aws-cli s3 ls
2020-03-25 00:30:48 aws-cli-docker-demo
```

**Windows PowerShell**:

```
C:\> docker run --rm -it -v $env:userprofile\.aws:/root/.aws -e ENVVAR_NAME amazon/aws-cli s3 ls
```

------

### 예제 2: 호스트 시스템에 Amazon S3 파일 다운로드
<a name="cliv2-docker-share-files-s3"></a>

일부 AWS CLI 버전 2 명령의 경우 컨테이너의 호스트 시스템에서 파일을 읽거나 컨테이너에서 호스트 시스템으로 파일을 쓸 수 있습니다.

이 예제에서는 현재 작업 디렉터리를 컨테이너의 `S3` 디렉터리에 마운트하여 로컬 파일 시스템으로 `s3://aws-cli-docker-demo/hello` 객체 `/aws`를 다운로드합니다. `hello` 객체를 컨테이너의 `/aws` 디렉터리에 다운로드하면 파일이 호스트 시스템의 현재 작업 디렉터리에 저장됩니다.

------
#### [ Amazon ECR Public ]

**Linux 및 macOS**: 

```
$ docker run --rm -it -v ~/.aws:/root/.aws -v $(pwd):/aws public.ecr.aws/aws-cli/aws-cli s3 cp s3://aws-cli-docker-demo/hello .
download: s3://aws-cli-docker-demo/hello to ./hello
```

**Windows 명령 프롬프트**

```
$ docker run --rm -it -v %userprofile%\.aws:/root/.aws -v %cd%:/aws public.ecr.aws/aws-cli/aws-cli s3 cp s3://aws-cli-docker-demo/hello .
download: s3://aws-cli-docker-demo/hello to ./hello
```

**Windows PowerShell**:

```
C:\> docker run --rm -it -v $env:userprofile\.aws:/root/.aws -v $pwd\aws:/aws public.ecr.aws/aws-cli/aws-cli s3 cp s3://aws-cli-docker-demo/hello .
```

------
#### [ Docker Hub ]

**Linux 및 macOS**: 

```
$ docker run --rm -it -v ~/.aws:/root/.aws -v $(pwd):/aws amazon/aws-cli s3 cp s3://aws-cli-docker-demo/hello .
download: s3://aws-cli-docker-demo/hello to ./hello
```

**Windows 명령 프롬프트**

```
$ docker run --rm -it -v %userprofile%\.aws:/root/.aws -v %cd%:/aws amazon/aws-cli s3 cp s3://aws-cli-docker-demo/hello .
download: s3://aws-cli-docker-demo/hello to ./hello
```

**Windows PowerShell**:

```
C:\> docker run --rm -it -v $env:userprofile\.aws:/root/.aws -v $pwd\aws:/aws amazon/aws-cli s3 cp s3://aws-cli-docker-demo/hello .
```

------

다운로드한 파일이 로컬 파일 시스템에 있는지 확인하려면 다음을 실행합니다.

**Linux 및 macOS**: 

```
$ cat hello
Hello from Docker!
```

**Windows PowerShell**:

```
$ type hello
Hello from Docker!
```

### 예제 3: AWS\$1PROFILE 환경 변수 사용
<a name="cliv2-docker-share-files-envvars"></a>

`-e` 플래그를 사용하여 특정 시스템의 환경 변수를 호출할 수 있습니다. 사용하려는 각 환경 변수를 호출합니다. 이 예제에서는 `s3 ls` 명령을 실행하여 Amazon Simple Storage Service(Amazon S3)의 버킷을 나열할 때 호스트 자격 증명, 구성 및 *AWS\$1PROFILE* 환경 변수를 제공합니다.

------
#### [ Amazon ECR Public ]

**Linux 및 macOS**: 

```
$ docker run --rm -it -v ~/.aws:/root/.aws -e AWS_PROFILE public.ecr.aws/aws-cli/aws-cli s3 ls
2020-03-25 00:30:48 aws-cli-docker-demo
```

**Windows 명령 프롬프트**

```
$ docker run --rm -it -v %userprofile%\.aws:/root/.aws -e AWS_PROFILE public.ecr.aws/aws-cli/aws-cli s3 ls
2020-03-25 00:30:48 aws-cli-docker-demo
```

**Windows PowerShell**:

```
C:\> docker run --rm -it -v $env:userprofile\.aws:/root/.aws -e AWS_PROFILE public.ecr.aws/aws-cli/aws-cli s3 ls
```

------
#### [ Docker Hub ]

**Linux 및 macOS**: 

```
$ docker run --rm -it -v ~/.aws:/root/.aws -e AWS_PROFILE amazon/aws-cli s3 ls
2020-03-25 00:30:48 aws-cli-docker-demo
```

**Windows 명령 프롬프트**

```
$ docker run --rm -it -v %userprofile%\.aws:/root/.aws -e AWS_PROFILE amazon/aws-cli s3 ls
2020-03-25 00:30:48 aws-cli-docker-demo
```

**Windows PowerShell**:

```
C:\> docker run --rm -it -v $env:userprofile\.aws:/root/.aws -e AWS_PROFILE amazon/aws-cli s3 ls
```

------

## Docker 실행 명령 단축
<a name="cliv2-docker-aliases"></a>

`docker run` 명령을 단축하려면 운영 체제의 기능을 사용하여 [https://www.linux.com/topic/desktop/understanding-linux-links/](https://www.linux.com/topic/desktop/understanding-linux-links/)(symlink) 또는 [https://www.linux.com/topic/desktop/aliases-diy-shell-commands/](https://www.linux.com/topic/desktop/aliases-diy-shell-commands/)(Linux 및 macOS) 또는 [https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/doskey](https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/doskey)(Windows)를 만드는 것이 좋습니다. `aws` 별칭을 설정하려면 다음 명령 중 하나를 실행할 수 있습니다.
+ `aws` 명령에 대한 기본 액세스를 위해 다음을 실행합니다.

------
#### [ Amazon ECR Public ]

  **Linux 및 macOS**: 

  ```
  $ alias aws='docker run --rm -it public.ecr.aws/aws-cli/aws-cli'
  ```

  **Windows 명령 프롬프트**

  ```
  C:\> doskey aws=docker run --rm -it public.ecr.aws/aws-cli/aws-cli $*
  ```

  **Windows PowerShell**:

  ```
  C:\> Function AWSCLI {docker run --rm -it public.ecr.aws/aws-cli/aws-cli $args}
  Set-Alias -Name aws -Value AWSCLI
  ```

------
#### [ Docker Hub ]

  **Linux 및 macOS**: 

  ```
  $ alias aws='docker run --rm -it amazon/aws-cli'
  ```

  **Windows 명령 프롬프트**

  ```
  C:\> doskey aws=docker run --rm -it amazon/aws-cli $*
  ```

  **Windows PowerShell**:

  ```
  C:\> Function AWSCLI {docker run --rm -it amazon/aws-cli $args}
  Set-Alias -Name aws -Value AWSCLI
  ```

------
+ `aws` 명령 사용 시 호스트 파일 시스템 및 구성 설정에 액세스하려면 다음을 실행합니다.

------
#### [ Amazon ECR Public ]

  **Linux 및 macOS**: 

  ```
  $ alias aws='docker run --rm -it -v ~/.aws:/root/.aws -v $(pwd):/aws public.ecr.aws/aws-cli/aws-cli'
  ```

  **Windows 명령 프롬프트**

  ```
  C:\> doskey aws=docker run --rm -it -v %userprofile%\.aws:/root/.aws -v %cd%:/aws public.ecr.aws/aws-cli/aws-cli $*
  ```

  **Windows PowerShell**:

  ```
  C:\> Function AWSCLI {docker run --rm -it -v $env:userprofile\.aws:/root/.aws -v $pwd\aws:/aws public.ecr.aws/aws-cli/aws-cli $args}
  Set-Alias -Name aws -Value AWSCLI
  ```

------
#### [ Docker Hub ]

  **Linux 및 macOS**: 

  ```
  $ alias aws='docker run --rm -it -v ~/.aws:/root/.aws -v $(pwd):/aws amazon/aws-cli'
  ```

  **Windows 명령 프롬프트**

  ```
  C:\> doskey aws=docker run --rm -it -v %userprofile%\.aws:/root/.aws -v %cd%:/aws amazon/aws-cli $*
  ```

  **Windows PowerShell**:

  ```
  C:\> Function AWSCLI {docker run --rm -it -v $env:userprofile\.aws:/root/.aws -v $pwd\aws:/aws amazon/aws-cli $args}
  Set-Alias -Name aws -Value AWSCLI
  ```

------
+ `aws` 별칭에 사용할 특정 버전을 할당하려면 버전 태그를 추가합니다.

------
#### [ Amazon ECR Public ]

  **Linux 및 macOS**: 

  ```
  $ alias aws='docker run --rm -it -v ~/.aws:/root/.aws -v $(pwd):/aws public.ecr.aws/aws-cli/aws-cli:2.0.6'
  ```

  **Windows 명령 프롬프트**

  ```
  C:\> doskey aws=docker run --rm -it -v %userprofile%\.aws:/root/.aws -v %cd%:/aws public.ecr.aws/aws-cli/aws-cli:2.0.6 $*
  ```

  **Windows PowerShell**:

  ```
  C:\> Function AWSCLI {docker run --rm -it -v $env:userprofile\.aws:/root/.aws -v $pwd\aws:/aws public.ecr.aws/aws-cli/aws-cli:2.0.6 $args}
  Set-Alias -Name aws -Value AWSCLI
  ```

------
#### [ Docker Hub ]

  **Linux 및 macOS**: 

  ```
  $ alias aws='docker run --rm -it -v ~/.aws:/root/.aws -v $(pwd):/aws amazon/aws-cli:2.0.6'
  ```

  **Windows 명령 프롬프트**

  ```
  C:\> doskey aws=docker run --rm -it -v %userprofile%\.aws:/root/.aws -v %cd%:/aws amazon/aws-cli:2.0.6 $*
  ```

  **Windows PowerShell**:

  ```
  C:\> Function AWSCLI {docker run --rm -it -v $env:userprofile\.aws:/root/.aws -v $pwd\aws:/aws amazon/aws-cli:2.0.6 $args}
  Set-Alias -Name aws -Value AWSCLI
  ```

------

별칭을 설정한 후 호스트 시스템에 설치된 것처럼 컨테이너 내에서 AWS CLI 버전 2를 실행할 수 있습니다.

```
$ aws --version
aws-cli/2.27.41 Python/3.7.3 Linux/4.9.184-linuxkit botocore/2.4.5dev10
```

# AWS CLI 설정
<a name="getting-started-quickstart"></a>

이 주제에서는 AWS Command Line Interface(AWS CLI)가 AWS와 상호 작용하는 데 사용하는 기본 설정을 간편하게 구성하는 방법에 대해 설명합니다. 여기에는 보안 보안 인증, 기본 출력 형식 및 기본 AWS 리전이 포함됩니다.

**Topics**
+ [

## 프로그래밍 방식 액세스를 위한 보안 인증 정보 수집
](#getting-started-prereqs-keys)
+ [

## 새 구성 및 보안 인증 설정
](#getting-started-quickstart-new)
+ [

## 기존 구성 및 보안 인증 파일 사용
](#getting-started-quickstart-existing)

## 프로그래밍 방식 액세스를 위한 보안 인증 정보 수집
<a name="getting-started-prereqs-keys"></a>

AWS Management Console 외부에서 AWS와 상호 작용하려면 프로그래밍 방식의 액세스가 필요합니다. 인증 및 보안 인증 지침을 보려면 다음 옵션 중 하나를 선택합니다.


****  

| 인증 유형 | 용도 | 지침 | 
| --- | --- | --- | 
|  AWS Management Console 자격 증명  | **(권장)** 콘솔 자격 증명으로 AWS CLI에 로그인하여 단기 자격 증명을 사용합니다. AWS 계정 액세스를 위해 루트, IAM 사용자 또는 IAM과의 페더레이션을 사용하는 경우 권장 | [콘솔 자격 증명을 사용하여 AWS 로컬 개발을 위해 로그인](cli-configure-sign-in.md) | 
|  IAM Identity Center 인력 사용자 단기 자격 증명  | IAM Identity Center 인력 사용자에게 단기 자격 증명을 사용합니다.보안 모범 사례는 IAM Identity Center가 있는 AWS Organizations를 사용하는 것입니다. 단기 자격 증명을 기본 제공 IAM Identity Center 디렉터리 또는 Active Directory와 같은 사용자 디렉터리와 결합합니다. | [AWS CLI를 사용하여 IAM Identity Center 인증 구성](cli-configure-sso.md) | 
| IAM 사용자 단기 자격 증명 | 장기 자격 증명보다 더 안전한 IAM 사용자 단기 자격 증명을 사용하세요. 자격 증명이 유출된 경우 만료되기 전까지 사용할 수 있는 시간이 제한되어 있습니다. | [AWS CLI에 대한 단기 자격 증명으로 인증](cli-authentication-short-term.md) | 
| Amazon EC2 인스턴스의 IAM 또는 IAM Identity Center 사용자. | Amazon EC2 인스턴스 메타데이터를 사용하여 Amazon EC2 인스턴스에 할당된 역할을 사용하여 임시 자격 증명을 쿼리할 수 있습니다. | [AWS CLI에서 Amazon EC2 인스턴스 메타데이터의 자격 증명 사용](cli-configure-metadata.md) | 
| 권한에 대한 역할 가정 | 다른 자격 증명 방법을 페어링하고 사용자가 액세스 권한이 없을 수 있는 AWS 서비스에 대한 임시 액세스를 위한 역할을 맡습니다. | [AWS CLI에서 IAM 역할 사용](cli-configure-role.md) | 
| IAM 사용자 장기 자격 증명 | (권장하지 않음) 만료 기간이 없는 장기 인증 정보를 사용하세요. | [IAM 사용자 자격 증명을 사용한 인증](cli-authentication-user.md) | 
| IAM 또는 IAM Identity Center 인력 사용자의 외부 스토리지  | (권장되지 않음) 다른 자격 증명 방법을 페어링하되 자격 증명 값을 AWS CLI 외부의 위치에 저장합니다. 이 방법은 자격 증명이 저장된 외부 위치만큼만 안전합니다. | [AWS CLI에서 외부 프로세스를 통해 자격 증명 소싱](cli-configure-sourcing-external.md) | 

## 새 구성 및 보안 인증 설정
<a name="getting-started-quickstart-new"></a>

AWS CLI는 `credentials`및 `config` 파일의 *프로파일*(설정 모음)에 구성 및 보안 인증 정보를 저장합니다.

**Topics**
+ [

### AWS CLI 명령을 사용한 구성
](#getting-started-quickstart-new-command)
+ [

### 보안 인증 및 구성 파일 수동 편집
](#getting-started-quickstart-new-file)

다음 예에서는 각 인증 방법에 샘플 값을 사용합니다. 샘플 값을 고유한 값으로 바꿉니다.

### AWS CLI 명령을 사용한 구성
<a name="getting-started-quickstart-new-command"></a>

일반적으로 선호하는 터미널에서 `aws configure` 또는 `aws configure sso` 명령을 사용하는 것은 AWS CLI 설치를 설정하는 가장 빠른 방법입니다. AWS CLI에서 선호하는 보안 인증 방법에 따라 관련 정보를 입력하라는 메시지가 표시됩니다. 기본적으로 이 프로파일의 정보는 사용할 프로파일을 명시적으로 지정하지 않는 AWS CLI 명령이 실행될 때 사용됩니다.

`credentials` 및 `config` 파일에 대한 자세한 내용은 [AWS CLI의 구성 및 보안 인증 파일 설정](cli-configure-files.md) 섹션을 참조하세요.

------
#### [ Console sessions as short-term credentials ]

이 예제에서는 기존 콘솔 자격 증명을 `aws login` 명령과 함께 사용할 수 있습니다. 이 로그인 방법은 초기 계정 설정 중에 생성된 루트 자격 증명, IAM 사용자 또는 자격 증명 공급자의 페더레이션 자격 증명과 함께 사용할 수 있습니다. 자세한 내용은 [콘솔 자격 증명을 사용한 AWS 로컬 개발을 위한 로그인](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-sign-in.html)을 참조하세요.

```
$ aws login
No AWS region has been configured. The AWS region is the geographic location of your AWS resources. 

If you've used AWS before and already have resources in your account, tell us which region they were 
created in. If you haven't created resources in your account before, you can pick the region closest to you: 
https://docs.aws.amazon.com/global-infrastructure/latest/regions/aws-regions.html. You are able to change 
the region in the CLI at any time with the command `aws configure set region NEW_REGION`.

AWS Region [us-east-1]: us-east-1
Attempting to open the login page for `us-east-1` in your default browser. If the browser does not open, 
use the following URL to complete your login:

https://us-east-1.signin.aws.amazon.com/v1/authorize<abbreviated>

If you cannot connect to this URL, make sure that you have specified a valid region.

Waiting for login...

Logged in with role `arn:aws:sts::012345678910:user/iam-user`, and configured profile 
`default` to use `us-east-1`. This session will expire on October 14, 2025 at 2:04 PST. After this time, you 
can renew your session with `aws login`.
```

------
#### [ IAM Identity Center (SSO) ]

이 예제는 `aws configure sso` 마법사를 사용한 AWS IAM Identity Center를 위한 것입니다. 자세한 내용은 [AWS CLI를 사용하여 IAM Identity Center 인증 구성](cli-configure-sso.md) 섹션을 참조하세요.

```
$ aws configure sso
SSO session name (Recommended): my-sso
SSO start URL [None]: https://my-sso-portal.awsapps.com/start
SSO region [None]:us-east-1

Attempting to automatically open the SSO authorization page in your default browser.

There are 2 AWS accounts available to you.
> DeveloperAccount, developer-account-admin@example.com (111122223333) 
  ProductionAccount, production-account-admin@example.com (444455556666)

Using the account ID 111122223333

There are 2 roles available to you.
> ReadOnly
  FullAccess

Using the role name "ReadOnly"

CLI default client Region [None]: us-west-2
CLI default output format [None]: json
CLI profile name [123456789011_ReadOnly]: user1
```

------
#### [ IAM Identity Center (Legacy SSO) ]

이 예제는 `aws configure sso` 마법사를 사용하는 AWS IAM Identity Center의 기존 방법을 위한 것입니다. 기존 SSO를 사용하려면 세션 이름을 비워 두세요. 자세한 내용은 [AWS CLI를 사용하여 IAM Identity Center 인증 구성](cli-configure-sso.md) 섹션을 참조하세요.

```
$ aws configure sso
SSO session name (Recommended):
SSO start URL [None]: https://my-sso-portal.awsapps.com/start
SSO region [None]:us-east-1

SSO authorization page has automatically been opened in your default browser.
Follow the instructions in the browser to complete this authorization request.

There are 2 AWS accounts available to you.
> DeveloperAccount, developer-account-admin@example.com (111122223333) 
  ProductionAccount, production-account-admin@example.com (444455556666)

Using the account ID 111122223333

There are 2 roles available to you.
> ReadOnly
  FullAccess

Using the role name "ReadOnly"

CLI default client Region [None]: us-west-2
CLI default output format [None]: json
CLI profile name [123456789011_ReadOnly]: user1
```

------
#### [ Short-term credentials ]

이 예는 AWS Identity and Access Management의 단기 보안 인증을 위한 것입니다. AWS 구성 마법사를 사용하여 초기 값을 설정한 다음 `aws configure set` 명령은 필요한 마지막 값을 할당합니다. 자세한 내용은 [AWS CLI에 대한 단기 자격 증명으로 인증](cli-authentication-short-term.md) 섹션을 참조하세요.

```
$ aws configure
AWS Access Key ID [None]: AKIAIOSFODNN7EXAMPLE
AWS Secret Access Key [None]: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
Default region name [None]: us-west-2
Default output format [None]: json
$ aws configure set aws_session_token fcZib3JpZ2luX2IQoJb3JpZ2luX2IQoJb3JpZ2luX2IQoJb3JpZ2luX2IQoJb3JpZVERYLONGSTRINGEXAMPLE
```

------
#### [ IAM role ]

이 예는 IAM 역할을 맡기 위한 것입니다. IAM 역할을 사용하는 프로필은 다른 프로필에서 보안 인증을 가져온 다음 IAM 역할 권한을 적용합니다. 다음 예에서 `default`는 보안 인증의 소스 프로필이며 `user1`는 동일한 보안 인증을 차용한 다음 새 역할을 맡습니다. 이 프로세스에는 마법사가 없으므로 `aws configure set` 명령을 사용하여 각 값을 설정합니다. 자세한 내용은 [AWS CLI에서 IAM 역할 사용](cli-configure-role.md) 섹션을 참조하세요.

```
$ aws configure set role_arn arn:aws:iam::123456789012:role/defaultrole
$ aws configure set source_profile default
$ aws configure set role_session_name session_user1
$ aws configure set region us-west-2
$ aws configure set output json
```

------
#### [ Amazon EC2 instance metadata credentials ]

호스팅 Amazon EC2 인스턴스 메타데이터에서 획득한 보안 인증을 사용하는 예입니다. 이 프로세스에는 마법사가 없으므로 `aws configure set` 명령을 사용하여 각 값을 설정합니다. 자세한 내용은 [AWS CLI에서 Amazon EC2 인스턴스 메타데이터의 자격 증명 사용](cli-configure-metadata.md) 섹션을 참조하세요.

```
$ aws configure set role_arn arn:aws:iam::123456789012:role/defaultrole
$ aws configure set credential_source Ec2InstanceMetadata
$ aws configure set region us-west-2
$ aws configure set output json
```

------
#### [ Long-term credentials ]

**주의**  
보안 위험을 방지하려면 목적별 소프트웨어를 개발하거나 실제 데이터로 작업할 때 IAM 사용자를 인증에 사용하지 마세요. 대신 [AWS IAM Identity Center](https://docs.aws.amazon.com/singlesignon/latest/userguide/what-is.html)과 같은 보안 인증 공급자를 통한 페더레이션을 사용하세요.

이 예는 AWS Identity and Access Management의 장기 보안 인증을 위한 것입니다. 자세한 내용은 [IAM 사용자 자격 증명을 사용한 인증](cli-authentication-user.md) 섹션을 참조하세요.

```
$ aws configure
AWS Access Key ID [None]: AKIAIOSFODNN7EXAMPLE
AWS Secret Access Key [None]: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
Default region name [None]: us-west-2
Default output format [None]: json
```

------

인증 보안 인증에 대한 자세한 내용은 [AWS CLI에 대한 인증 및 액세스 보안 인증](cli-chap-authentication.md) 단원을 참조하세요.

### 보안 인증 및 구성 파일 수동 편집
<a name="getting-started-quickstart-new-file"></a>

정보를 복사하여 붙여넣을 때는 `config` 및 `credentials` 파일을 수동으로 편집하는 것이 좋습니다. 선호하는 보안 인증 방법에 따라 파일이 다른 방식으로 설정됩니다.

파일은 홈 디렉터리의 `.aws` 폴더 아래에 저장됩니다. 홈 디렉터리 위치는 운영 체제에 따라 달라지지만 Windows에서는 `%UserProfile%` 환경 변수를, Unix 기반 시스템에서는 `$HOME` 또는 `~`(물결표) 환경 변수를 사용하여 참조됩니다. 이러한 설정이 저장되는 위치에 대한 자세한 내용은 [구성 설정이 저장되는 장소](cli-configure-files.md#cli-configure-files-where)을 참조하세요.

다음 예에서는 `default` 프로필과 `user1`라는 프로필, 샘플 값 사용을 보여줍니다. 샘플 값을 고유한 값으로 바꿉니다. `credentials` 및 `config` 파일에 대한 자세한 내용은 [AWS CLI의 구성 및 보안 인증 파일 설정](cli-configure-files.md) 섹션을 참조하세요.

------
#### [ IAM Identity Center (SSO) ]

AWS IAM Identity Center에 대한 예제입니다. 자세한 내용은 [AWS CLI를 사용하여 IAM Identity Center 인증 구성](cli-configure-sso.md) 섹션을 참조하세요.

**보안 인증 파일**

`credentials` 파일은 이 인증 방법에 사용되지 않습니다.

**Config 파일**

```
[default]
sso_session = my-sso
sso_account_id = 111122223333
sso_role_name = readOnly
region = us-west-2
output = text

[profile user1]
sso_session = my-sso
sso_account_id = 444455556666
sso_role_name = readOnly
region = us-east-1
output = json

[sso-session my-sso]
sso_region = us-east-1
sso_start_url = https://my-sso-portal.awsapps.com/start
sso_registration_scopes = sso:account:access
```

------
#### [ IAM Identity Center (Legacy SSO) ]

이 예제는 AWS IAM Identity Center의 기존 방법을 위한 것입니다. 자세한 내용은 [AWS CLI를 사용하여 IAM Identity Center 인증 구성](cli-configure-sso.md) 섹션을 참조하세요.

**보안 인증 파일**

`credentials` 파일은 이 인증 방법에 사용되지 않습니다.

**Config 파일**

```
[default]
sso_start_url = https://my-sso-portal.awsapps.com/start
sso_region = us-east-1
sso_account_id = 111122223333
sso_role_name = readOnly
region = us-west-2
output = text

[profile user1]
sso_start_url = https://my-sso-portal.awsapps.com/start
sso_region = us-east-1
sso_account_id = 444455556666
sso_role_name = readOnly
region = us-east-1
output = json
```

------
#### [ Short-term credentials ]

이 예는 AWS Identity and Access Management의 단기 보안 인증을 위한 것입니다. 자세한 내용은 [AWS CLI에 대한 단기 자격 증명으로 인증](cli-authentication-short-term.md) 섹션을 참조하세요.

**보안 인증 파일**

```
[default]
aws_access_key_id=ASIAIOSFODNN7EXAMPLE
aws_secret_access_key=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
aws_session_token = IQoJb3JpZ2luX2IQoJb3JpZ2luX2IQoJb3JpZ2luX2IQoJb3JpZ2luX2IQoJb3JpZVERYLONGSTRINGEXAMPLE

[user1]
aws_access_key_id=ASIAI44QH8DHBEXAMPLE
aws_secret_access_key=je7MtGbClwBF/2Zp9Utk/h3yCo8nvbEXAMPLEKEY
aws_session_token = fcZib3JpZ2luX2IQoJb3JpZ2luX2IQoJb3JpZ2luX2IQoJb3JpZ2luX2IQoJb3JpZVERYLONGSTRINGEXAMPLE
```

**Config 파일**

```
[default]
region=us-west-2
output=json

[profile user1]
region=us-east-1
output=text
```

------
#### [ IAM role ]

이 예는 IAM 역할을 맡기 위한 것입니다. IAM 역할을 사용하는 프로필은 다른 프로필에서 보안 인증을 가져온 다음 IAM 역할 권한을 적용합니다. 다음 예에서 `default`는 보안 인증의 소스 프로필이며 `user1`는 동일한 보안 인증을 차용한 다음 새 역할을 맡습니다. 자세한 내용은 [AWS CLI에서 IAM 역할 사용](cli-configure-role.md) 섹션을 참조하세요.

**보안 인증 파일**

`credentials` 파일은 소스 프로필에서 사용하는 인증에 따라 달라집니다. 다음 예제의 경우 소스 프로필은 단기 보안 인증을 사용합니다.

```
[default]
aws_access_key_id=ASIAIOSFODNN7EXAMPLE
aws_secret_access_key=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
aws_session_token = IQoJb3JpZ2luX2IQoJb3JpZ2luX2IQoJb3JpZ2luX2IQoJb3JpZ2luX2IQoJb3JpZVERYLONGSTRINGEXAMPLE
```

**Config 파일**

```
[default]
region=us-west-2
output=json

[profile user1]
role_arn=arn:aws:iam::777788889999:role/user1role
source_profile=default
role_session_name=session_user1
region=us-east-1
output=text
```

------
#### [ Amazon EC2 instance metadata credentials ]

이 예는 호스팅 Amazon EC2 인스턴스 메타데이터에서 가져온 보안 인증에 대한 예입니다. 자세한 내용은 [AWS CLI에서 Amazon EC2 인스턴스 메타데이터의 자격 증명 사용](cli-configure-metadata.md) 섹션을 참조하세요.

**보안 인증 파일**

`credentials` 파일은 이 인증 방법에 사용되지 않습니다.

**Config 파일**

```
[default]
role_arn=arn:aws:iam::123456789012:role/defaultrole
credential_source=Ec2InstanceMetadata
region=us-west-2
output=json

[profile user1]
role_arn=arn:aws:iam::777788889999:role/user1role
credential_source=Ec2InstanceMetadata
region=us-east-1
output=text
```

------
#### [ Long-term credentials ]

**주의**  
보안 위험을 방지하려면 목적별 소프트웨어를 개발하거나 실제 데이터로 작업할 때 IAM 사용자를 인증에 사용하지 마세요. 대신 [AWS IAM Identity Center](https://docs.aws.amazon.com/singlesignon/latest/userguide/what-is.html)과 같은 보안 인증 공급자를 통한 페더레이션을 사용하세요.

이 예는 AWS Identity and Access Management의 장기 보안 인증을 위한 것입니다. 자세한 내용은 [IAM 사용자 자격 증명을 사용한 인증](cli-authentication-user.md) 섹션을 참조하세요.

**보안 인증 파일**

```
[default]
aws_access_key_id=AKIAIOSFODNN7EXAMPLE
aws_secret_access_key=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY

[user1]
aws_access_key_id=AKIAI44QH8DHBEXAMPLE
aws_secret_access_key=je7MtGbClwBF/2Zp9Utk/h3yCo8nvbEXAMPLEKEY
```

**Config 파일**

```
[default]
region=us-west-2
output=json

[profile user1]
region=us-east-1
output=text
```

------

인증 및 보안 인증 방법에 대한 자세한 내용은 [AWS CLI에 대한 인증 및 액세스 보안 인증](cli-chap-authentication.md) 섹션을 참조하세요.

## 기존 구성 및 보안 인증 파일 사용
<a name="getting-started-quickstart-existing"></a>

기존 구성 및 보안 인증 파일이 있는 경우 해당 파일을 AWS CLI에 사용할 수 있습니다.

`config` 및 `credentials` 파일을 사용하려면 홈 디렉터리의 `.aws` 폴더로 파일을 이동합니다. 홈 디렉터리 위치는 운영 체제에 따라 달라지지만 Windows에서는 `%UserProfile%` 환경 변수를, Unix 기반 시스템에서는 `$HOME` 또는 `~`(물결표) 환경 변수를 사용하여 참조됩니다.

`AWS_CONFIG_FILE` 및 `AWS_SHARED_CREDENTIALS_FILE` 환경 변수를 다른 로컬 경로로 설정하여 `config` 및 `credentials` 파일에 대한 기본 위치가 아닌 위치를 지정할 수 있습니다. 세부 정보는 [AWS CLI에 대한 환경 변수 구성](cli-configure-envvars.md) 섹션을 참조하세요.

구성 및 보안 인증 파일에 대한 자세한 내용은 [AWS CLI의 구성 및 보안 인증 파일 설정](cli-configure-files.md) 섹션을 참조하세요.