

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# Snowball Edge와의 데이터 마이그레이션을 위해 Amazon S3 어댑터를 사용하여 파일 전송
<a name="using-adapter"></a>

다음은 Amazon S3 REST API 작업을 사용하여 AWS Snowball Edge 디바이스에 이미 있는 S3 버킷과 프로그래밍 방식으로 데이터를 주고받는 데 사용할 수 있는 Amazon S3 어댑터의 개요입니다. 이 Amazon S3 REST API 지원은 일부 작업으로 제한됩니다. 이 작업 하위 집합을 AWS SDKs 중 하나와 함께 사용하여 프로그래밍 방식으로 데이터를 전송할 수 있습니다. 또한 지원되는 AWS Command Line Interface (AWS CLI) 명령의 하위 집합을 Amazon S3에 사용하여 프로그래밍 방식으로 데이터를 전송할 수도 있습니다.

솔루션에서 AWS SDK for Java 버전 1.11.0 이상을 사용하는 경우 `S3ClientOptions`다음를 사용해야 합니다.
+ `disableChunkedEncoding()` - chunked 인코딩이 어댑터에서 지원되지 않음을 나타냅니다.
+ `setPathStyleAccess(true)` - 모든 요청에 대해 경로 방식 액세스를 사용하도록 어댑터를 구성합니다.

자세한 내용은 *Java용 Amazon AppStream SDK*의 [클래스 S3ClientOptions.Builder](https://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/services/s3/S3ClientOptions.Builder.html)를 참조하세요.

**중요**  
한 번에 하나의 메서드만 사용하여 AWS Snowball Edge 디바이스의 로컬 버킷에 데이터를 읽고 쓰는 것이 좋습니다. 동일한 버킷에서 NFS 인터페이스와 Amazon S3 어댑터를 동시에 사용하면 읽기/쓰기 충돌이 발생할 수 있습니다.  
[AWS Snowball Edge 할당량](limits.md)에서 한도에 대해 자세히 설명합니다.  
 AWS 서비스가 Snowball Edge에서 제대로 작동하려면 서비스의 포트를 허용해야 합니다. 자세한 내용은 [Snowball Edge의 AWS 서비스에 대한 포트 요구 사항](port-requirements.md)을 참조하세요.

**Topics**
+ [Amazon S3 어댑터와 함께 사용할 AWS CLI 버전 1.16.14 다운로드 및 설치](#aws-cli-version)
+ [Snowball Edge 디바이스에서 AWS CLI 및 API 작업 사용](#using-adapter-cli-specify-region)
+ [Snowball Edge에서 로컬 Amazon S3 자격 증명 가져오기 및 사용](#adapter-credentials)
+ [Snowball Edge의 Amazon S3 어댑터에 지원되지 않는 Amazon S3 기능](#snowball-edge-s3-unsupported-features)
+ [Snowball Edge로의 데이터 전송 성능을 개선하기 위해 작은 파일 일괄 처리](batching-small-files.md)
+ [Snowball Edge와의 데이터 전송에 지원되는 AWS CLI 명령](using-adapter-cli.md)
+ [데이터 전송을 위해 Snowball Edge에서 지원되는 Amazon S3 REST API 작업](using-adapter-supported-api.md)

## Amazon S3 어댑터와 함께 사용할 AWS CLI 버전 1.16.14 다운로드 및 설치
<a name="aws-cli-version"></a>

현재 AWS CLI 의 버전 1.16.14 및 이전 버전만 Snowball Edge 디바이스 사용이 지원됩니다. 최신 버전의 AWS CLI 는 Amazon S3 S3 어댑터와 호환되지 않습니다.

**참고**  
Snowball Edge에서 Amazon S3 호환 스토리지를 사용하는 경우 최신 버전의를 사용할 수 있습니다 AWS CLI. 최신 버전을 다운로드하여 사용하려면 [AWS Command Line Interface 사용 설명서](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html)를 참조하세요.

### Linux 운영 체제 AWS CLI 에 설치
<a name="install-cli-linux"></a>

다음 체인 명령을 실행합니다.

```
curl "https://s3.amazonaws.com/aws-cli/awscli-bundle-1.16.14.zip" -o "awscli-bundle.zip";unzip awscli-bundle.zip;sudo ./awscli-bundle/install -i /usr/local/aws -b /usr/local/bin/aws;/usr/local/bin/aws --version;
```

### Windows 운영 체제 AWS CLI 에 설치
<a name="install-cli-windows"></a>

운영 체제에 맞는 설치 프로그램 파일을 다운로드하고 실행합니다.
+ [Python 2와 번들로 제공되는 32비트 설치 관리자](https://s3.amazonaws.com/aws-cli/AWSCLI32-1.16.14.msi)
+ [Python 3과 번들로 제공되는 32비트 설치 관리자](https://s3.amazonaws.com/aws-cli/AWSCLI32PY3-1.16.14.msi)
+ [Python 2와 번들로 제공되는 64비트 설치 관리자](https://s3.amazonaws.com/aws-cli/AWSCLI64-1.16.14.msi)
+ [Python 3과 번들로 제공되는 64비트 설치 관리자](https://s3.amazonaws.com/aws-cli/AWSCLI64PY3-1.16.14.msi)
+ [올바른 버전을 자동으로 설치하는 32비트 및 64비트 설치 관리자를 포함하는 설정 파일](https://s3.amazonaws.com/aws-cli/AWSCLISetup-1.16.14.exe)

## Snowball Edge 디바이스에서 AWS CLI 및 API 작업 사용
<a name="using-adapter-cli-specify-region"></a>

 AWS CLI 또는 API 작업을 사용하여 Snowball Edge에서 IAM, Amazon S3 및 Amazon EC2 명령을 실행할 때는 리전을 ""로 지정해야 합니다`snow`. 다음 예제와 같이 명령 자체 내에서 `AWS configure` 또는를 사용하여이 작업을 수행할 수 있습니다.

```
aws configure --profile abc
AWS Access Key ID [None]: AKIAIOSFODNN7EXAMPLE
AWS Secret Access Key [None]: 1234567
Default region name [None]: snow
Default output format [None]: json
```

Or

```
aws s3 ls  --endpoint http://192.0.2.0:8080 --region snow --profile snowballEdge
```

### AWS Snowball Edge에 대한 Amazon S3 API 인터페이스를 사용한 권한 부여
<a name="auth-adapter"></a>

Amazon S3 어댑터를 사용하면 기본적으로 모든 상호 작용이 AWS 서명 버전 4 알고리즘으로 서명됩니다. 이 권한 부여는 소스에서 인터페이스로 이동하는 데이터를 확인하는 데에만 사용됩니다. 모든 암호화 및 암호화 해제는 디바이스에서 이루어집니다. 암호화되지 않은 데이터는 디바이스에 저장되지 않습니다.

인터페이스를 사용할 때는 다음 사항에 유의하세요.
+ 로컬 Amazon S3 자격 증명을 가져와 AWS Snowball Edge 디바이스에 대한 요청에 서명하려면 `snowballEdge list-access-keys` 및 `snowballEdge get-secret-access-keys` Snowball Edge 클라이언트 명령을 실행합니다. 자세한 내용은 [Snowball Edge 클라이언트 구성 및 사용](using-client-commands.md) 단원을 참조하십시오. 이러한 로컬 Amazon S3 자격 증명은 키 페어(액세스 키 및 비밀 키)를 포함합니다. 이러한 키는 작업과 연결된 디바이스에 대해서만 유효합니다. ( AWS Identity and Access Management IAM)이 없기 AWS 클라우드 때문에에서 사용할 수 없습니다.
+ 암호화 키는 사용하는 AWS 자격 증명에 따라 변경되지 않습니다. 서명 버전 4 알고리즘을 통한 서명은 소스에서 인터페이스로 이동하는 데이터를 확인하는 데에만 사용됩니다. 따라서 이러한 서명은 Snowball에서 데이터를 암호화하는 데 사용되는 암호화 키의 요소가 아닙니다.

## Snowball Edge에서 로컬 Amazon S3 자격 증명 가져오기 및 사용
<a name="adapter-credentials"></a>

Snowball Edge와의 모든 상호 작용은 AWS 서명 버전 4 알고리즘으로 서명됩니다. 알고리즘에 대한 자세한 정보는 *AWS 일반 참조*의 [서명 버전 4 서명 프로세스](https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html)를 참조하세요.

`snowballEdge list-access-keys` 및 `snowballEdge get-secret-access-key` Snowball Edge 클라이언트 정보를 실행하여 Snowball Edge 클라이언트 Edge 디바이스에 대한 요청에 서명하기 위한 로컬 Amazon S3 자격 증명을 얻을 수 있습니다([Snowball Edge에 대한 자격 증명 가져오기](using-client-commands.md#client-credentials) 참조). 이러한 로컬 Amazon S3 자격 증명은 키 페어(액세스 키 ID 및 비밀 키)를 포함합니다. 이러한 자격 증명은 작업과 연결된 디바이스에 대해서만 유효합니다. IAM이 없기 AWS 클라우드 때문에에서 사용할 수 없습니다.

이러한 자격 증명을 서버의 AWS 자격 증명 파일에 추가할 수 있습니다. 기본 자격 증명 프로필 파일은 일반적으로 `~/.aws/credentials`에 있지만, 위치는 플랫폼에 따라 다를 수 있습니다. 이 파일은 많은 AWS SDKs 및에서 공유됩니다 AWS CLI. 다음 예시와 같이 프로필 이름을 사용하여 로컬 자격 증명을 저장할 수 있습니다.

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

### Snowball Edge에서 S3 어댑터를 엔드포인트로 AWS CLI 사용하도록 구성
<a name="using-adapter-cli-endpoint"></a>

 AWS CLI 를 사용하여 AWS Snowball Edge 디바이스에 명령을 실행할 때 엔드포인트를 Amazon S3 어댑터로 지정합니다. 다음과 같이 HTTPS 엔드포인트 또는 보안되지 않은 HTTP 엔드포인트를 사용할 수 있습니다.

**HTTPS 보안 엔드포인트**

```
aws s3 ls --endpoint https://192.0.2.0:8443 --ca-bundle path/to/certificate --profile snowballEdge
```

**HTTP 보안되지 않는 엔드포인트**

```
aws s3 ls --endpoint http://192.0.2.0:8080 --profile snowballEdge
```

`8443`의 HTTPS 엔드포인트를 사용하는 경우 데이터가 서버에서 Snowball Edge로 안전하게 전송됩니다. 이 암호화는 Snowball Edge에서 새 IP 주소를 가져올 때마다 생성하는 인증서로 보장됩니다. 인증서가 생기면 이를 로컬 `ca-bundle.pem` 파일에 저장할 수 있습니다. 그런 다음 다음 설명과 같이 인증서 경로를 포함하도록 AWS CLI 프로필을 구성할 수 있습니다.

**인증서를 인터페이스 엔드포인트에 연결하려면**

1. Snowball Edge를 전원과 네트워크에 연결한 후 켭니다.

1. 디바이스가 부팅을 마치면 로컬 네트워크상의 IP 주소를 적어 둡니다.

1. 네트워크의 터미널에서 Snowball Edge를 ping할 수 있는지 확인합니다.

1. 터미널에서 `snowballEdge get-certificate` 명령을 실행합니다. 이 명령에 대한 자세한 내용은 [Snowball Edge에서 퍼블릭 키 인증서 관리](snowball-edge-certificates-cli.md) 섹션을 참조하세요.

1. `snowballEdge get-certificate` 명령의 출력을 파일(예: `ca-bundle.pem`)에 저장합니다.

1. 터미널에서 다음 명령을 실행합니다.

   ```
   aws configure set profile.snowballEdge.ca_bundle /path/to/ca-bundle.pem
   ```

절차를 완료하면 다음 예시와 같이 이러한 로컬 자격 증명, 인증서 및 지정된 엔드포인트로 CLI 명령을 실행할 수 있습니다.

```
aws s3 ls --endpoint https://192.0.2.0:8443 --profile snowballEdge
```

## Snowball Edge의 Amazon S3 어댑터에 지원되지 않는 Amazon S3 기능
<a name="snowball-edge-s3-unsupported-features"></a>

Amazon S3 어댑터를 사용하여 Amazon S3 API 작업을 통해 프로그래밍 방식으로 Snowball Edge에서 데이터를 전송하고 수신할 수 있습니다. 하지만 일부 Amazon S3 전송 기능 및 API 작업은 Amazon S3 어댑터를 사용하여 Snowball Edge 디바이스에서 사용할 수 있도록 지원되지 않습니다. 예를 들어, 다음 기능 및 작업은 Snowball Edge에서 사용할 수 있도록 지원되지 않습니다.
+ [TransferManager](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/examples-s3-transfermanager.html) - 이 유틸리티는 Java용 SDK를 사용하여 파일을 로컬 환경에서 Amazon S3로 전송합니다. 대신 지원되는 API 작업 또는 AWS CLI 명령을 인터페이스에서 사용하는 것을 고려해 보세요.
+ [GET Bucket(List Objects) 버전 2](https://docs.aws.amazon.com/AmazonS3/latest/API/v2-RESTBucketGET.html) - 이 GET 작업의 구현은 버킷 내 객체를 일부 또는 전부(최대 1,000개) 반환합니다. [GET Bucket(List Objects) 버전 1](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketGET.html) 작업 또는 [ls](https://docs.aws.amazon.com/cli/latest/reference/s3/ls.html) AWS CLI 명령을 사용하는 것을 고려해 보세요.
+ [ListBucket](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBuckets.html) - 객체 엔드포인트가 있는 ListBuckets는 지원되지 않습니다. 다음 명령은 Snowball Edge의 Amazon S3 호환 스토리지에서 작동하지 않습니다.

  ```
  aws s3 ls --endpoint https://192.0.2.0 --profile profile                    
  ```

# Snowball Edge로의 데이터 전송 성능을 개선하기 위해 작은 파일 일괄 처리
<a name="batching-small-files"></a>

암호화 때문에 각 복사 작업에는 일정한 오버헤드가 있어야 합니다. 작은 파일을 AWS Snowball Edge 디바이스로 전송하는 프로세스의 속도를 높이려면 단일 아카이브에서 함께 배치 처리할 수 있습니다. 파일을 함께 배치 처리할 때 지원되는 아카이브 형식 중 하나로 배치 처리가 된 경우 Amazon S3로 파일을 가져올 때 자동으로 압축이 풀릴 수 있습니다.

일반적으로 크기가 1MB 이하인 파일이 배치에 포함됩니다. 배치 안에 보유할 수 있는 파일의 수에 대한 하드 제한은 없습니다. 하지만 약 10,000개의 파일로 배치를 제한하는 것이 좋습니다. 배치에 100,000개 이상의 파일이 있는 경우 디바이스를 반환한 이후 파일을 Amazon S3로 가져오는 속도에 영향을 줄 수 있습니다. 각 배치의 총 크기는 100GB를 넘지 않는 것이 좋습니다.

파일 배치 처리는 직접 관리하는 수동 프로세스입니다. 파일을 일괄 처리한 후 `--metadata snowball-auto-extract=true` 옵션과 AWS CLI `cp` 함께 명령을 사용하여 Snowball Edge 디바이스로 전송합니다. `snowball-auto-extract=true`를 지정하면 배치 처리된 파일의 크기가 100GB를 넘지 않는 한, 데이터를 Amazon S3로 가져올 때 아카이브된 파일의 내용 압축이 자동으로 풀립니다.

**참고**  
100GB를 넘는 모든 배치는 Amazon S3로 가져올 때 압축이 풀리지 않습니다.

**작은 파일을 배치 처리하려면**

1. 작은 파일을 어떤 형식으로 배치 처리할지 결정합니다. 자동 압축 풀기 기능은 `TAR`, `ZIP` 및 `tar.gz` 형식을 지원합니다.

1. 함께 배치 처리하고자 하는 파일의 크기 및 전체 파일 수를 포함하여 어떤 작은 파일을 함께 배치 처리하고자 하는지 식별합니다.

1. 명령줄의 파일을 아래 예시와 같이 일괄 처리합니다.
   + Linux의 경우 디바이스로 파일을 전송하는 데 사용되는 것과 동일한 명령줄로 파일을 배치 처리합니다.

     ```
     tar -cf - /Logs/April | aws s3 cp - s3://amzn-s3-demo-bucket/batch01.tar --metadata snowball-auto-extract=true --endpoint http://192.0.2.0:8080
     ```
**참고**  
또는 원하는 아카이브 유틸리티를 사용하여 파일을 하나 이상의 큰 아카이브로 배치 처리할 수 있습니다. 그러나이 접근 방식을 사용하려면 아카이브를 Snowball Edge로 전송하기 전에 아카이브를 저장하기 위한 추가 로컬 스토리지가 필요합니다.
   + Windows의 경우 모든 파일이 명령이 실행되는 동일한 디렉터리에 있는 경우 다음 예시 명령을 사용하여 파일을 일괄 처리합니다.

     ```
     7z a -tzip -so "test" | aws s3 cp - s3://amzn-s3-demo-bucket/batch01.zip --metadata snowball-auto-extract=true --endpoint http://192.0.2.0:8080
     ```

     명령이 실행되는 다른 디렉터리의 파일을 일괄 처리하려면 다음 예시 명령을 사용합니다.

     ```
     7z a -tzip -so "test" "c:\temp" | aws s3 cp - s3://amzn-s3-demo-bucket/batch01.zip --metadata snowball-auto-extract=true --endpoint http://10.x.x.x:8080
     ```
**참고**  
Microsoft Windows 2016의 경우 tar를 사용할 수 없지만 *Windows용 Tar* 웹 사이트에서 다운로드할 수 있습니다.  
7ZIP 웹 사이트에서 7 ZIP을 다운로드할 수 있습니다.

1. Snowball Edge를 사용하여 Amazon S3로 전송하고자 하는 모든 작은 파일을 아카이브할 때까지 반복합니다.

1. 아카이브된 파일을 Snowball로 전송합니다. 데이터를 자동으로 추출하고 1단계에서 앞서 언급한 지원되는 아카이브 형식 중 하나를 사용한 경우 `--metadata snowball-auto-extract=true` 옵션과 함께 명령을 사용합니다 AWS CLI `cp`.
**참고**  
보관되지 않은 파일이 있는 경우 이 명령을 사용하면 안 됩니다.

아카이브 파일을 만들 때 추출 시 현재 데이터 구조가 유지됩니다. 즉, 파일 및 폴더가 포함된 아카이브 파일을 생성하면 Snowball Edge는 Amazon S3로의 수집 프로세스 중에 이 파일을 다시 생성합니다.

아카이브 파일은 파일이 저장되어 있는 동일한 디렉터리에 추출되며 그에 따라 폴더 구조가 구축됩니다. 아카이브 파일을 복사할 때는 `--metadata snowball-auto-extract=true` 플래그를 설정하는 것이 중요하다는 점을 명심하세요. 그렇지 않으면 Amazon S3로 데이터를 가져올 때 Snowball Edge는 데이터를 추출하지 않습니다.

3단계의 예시를 사용하여, /Logs/April/의 폴더 구조에 파일 `a.txt`, `b.txt`, `c.txt` 등이 들어 있는 경우 이 아카이브 파일을 /amzn-s3-demo-bucket/의 루트에 배치한 경우 추출 후 데이터는 다음과 같이 표시됩니다.

```
/amzn-s3-demo-bucket/Logs/April/a.txt
/amzn-s3-demo-bucket/Logs/April/b.txt
/amzn-s3-demo-bucket/Logs/April/c.txt
```



아카이브 파일을 /amzn-s3-demo-bucket/Test/에 배치한 경우 추출은 다음과 같이 표시됩니다.

```
/amzn-s3-demo-bucket/Test/Logs/April/a.txt
/amzn-s3-demo-bucket/Test/Logs/April/b.txt
/amzn-s3-demo-bucket/Test/Logs/April/c.txt
```

# Snowball Edge와의 데이터 전송에 지원되는 AWS CLI 명령
<a name="using-adapter-cli"></a>

아래에서 Snowball Edge의 Amazon S3 어댑터 또는 Amazon S3 호환 스토리지를 해당 AWS Command Line Interface (AWS CLI) 명령의 엔드포인트로 지정하는 방법에 대한 정보를 찾을 수 있습니다. 어댑터 또는 Snowball Edge의 Amazon S3 호환 스토리지를 사용하여 AWS Snowball Edge 디바이스로 데이터를 전송하는 데 지원되는 Amazon S3에 대한 AWS CLI 명령 목록을 찾을 수도 있습니다.

**참고**  
 AWS CLI 호출할 리전 지정 AWS CLI을 포함하여 설치 및 설정에 대한 자세한 내용은 [AWS Command Line Interface 사용 설명서를](https://docs.aws.amazon.com/cli/latest/userguide/) 참조하세요.

현재 Snowball Edge 디바이스는 Amazon S3 어댑터를 사용할 경우 버전 1.16.14 이하 버전만 지원합니다. [Snowball Edge 클라이언트 버전 찾기](using-adapter.md#aws-cli-version)을(를) 참조하세요. Snowball Edge에서 Amazon S3 호환 스토리지를 사용하는 경우 최신 버전의를 사용할 수 있습니다 AWS CLI. 최신 버전을 다운로드하여 사용하려면 [AWS Command Line Interface 사용 설명서](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html)를 참조하세요.

**참고**  
 AWS CLI버전 1.16.14를 설치하기 전에 Python 2.6.5\$1 또는 3.4\$1 버전을 설치해야 합니다.

## Amazon S3 및 Snowball Edge를 사용한 데이터 전송에 지원되는 AWS CLI 명령
<a name="using-adapter-cli-commands"></a>

다음은 AWS Snowball Edge 디바이스가 지원하는 Amazon S3에 대한 AWS CLI 명령 및 옵션의 하위 집합에 대한 설명입니다. 나열되지 않은 명령이나 옵션은 지원되지 않습니다. `--sse`, `--storage-class` 등과 같은 일부 지원되지 않는 옵션을 명령과 함께 선언할 수 있습니다. 하지만 이러한 옵션은 무시되며 데이터를 가져오는 방식에 영향을 미치지 않습니다.
+ [cp](https://docs.aws.amazon.com/cli/latest/reference/s3/cp.html) - AWS Snowball Edge 디바이스에서 파일 또는 객체를 복사합니다. 다음은 이 명령에 사용되는 옵션입니다.
  + `--dryrun`(부울) - 지정된 명령을 사용하여 수행될 작업이 실행되지 않고 표시됩니다.
  + `--quiet`(부울) - 지정된 명령에 의해 수행되는 작업이 표시되지 않습니다.
  + `--include`(문자열) - 지정한 패턴과 일치하는 파일 또는 객체를 명령에서 제외하지 않습니다. 자세한 내용은 *AWS CLI 명령 참조*의 [제외 및 포함 필터 사용](https://docs.aws.amazon.com/cli/latest/reference/s3/index.html#use-of-exclude-and-include-filters)을 참조하세요.
  + `--exclude`(문자열) - 지정한 패턴과 일치하는 모든 파일 또는 객체를 명령에서 제외합니다.
  + `--follow-symlinks | --no-follow-symlinks`(부울) - 로컬 파일 시스템에서 Amazon S3로 업로드하는 경우에만 심볼 링크(symlinks)를 따릅니다. Amazon S3는 심볼 링크를 지원하지 않으므로 링크 대상의 콘텐츠는 링크 이름 아래에 업로드됩니다. 두 가지 옵션을 모두 지정하지 않는 경우 기본값은 symlink를 따르는 것입니다.
  + `--only-show-errors`(부울) - 오류와 경고만 표시됩니다. 다른 모든 출력은 억제됩니다.
  + `--recursive`(부울) - 지정된 디렉터리 또는 접두사 아래의 모든 파일 또는 객체에 대해 명령이 수행됩니다.
  + `--page-size`(정수) - 나열 작업에 대한 각 응답으로 반환할 결과 수입니다. 기본값은 1,000(허용되는 최대값)입니다. 작업 시간이 초과된 경우 더 낮은 값을 사용하면 도움이 될 수 있습니다.
  + `--metadata`(맵) - Amazon S3에 객체와 함께 저장할 메타데이터 맵입니다. 이 맵은 이 요청에 속한 모든 객체에 적용됩니다. 동기화에서 이 기능은 변경되지 않은 파일은 새 메타데이터를 받지 않음을 뜻합니다. 두 Amazon S3 위치 간에 복사할 때 별도로 지정하지 않은 경우 `metadata-directive` 인수의 기본값은 `REPLACE`입니다.
+ [ls](https://docs.aws.amazon.com/cli/latest/reference/s3/ls.html) - AWS Snowball Edge 디바이스의 객체를 나열합니다. 다음은 이 명령에 사용되는 옵션입니다.
  + `--human-readable`(부울) - 파일 크기가 사람이 읽을 수 있는 형식으로 표시됩니다.
  + `--summarize`(부울) - 요약 정보가 표시됩니다. 이 정보는 객체의 수와 총 크기입니다.
  + `--recursive`(부울) - 지정된 디렉터리 또는 접두사 아래의 모든 파일 또는 객체에 대해 명령이 수행됩니다.
  + `--page-size`(정수) - 나열 작업에 대한 각 응답으로 반환할 결과 수입니다. 기본값은 1,000(허용되는 최대값)입니다. 작업 시간이 초과된 경우 더 낮은 값을 사용하면 도움이 될 수 있습니다.
+ [rm](https://docs.aws.amazon.com/cli/latest/reference/s3/rm.html) - AWS Snowball Edge 디바이스에서 객체를 삭제합니다. 다음은 이 명령에 사용되는 옵션입니다.
  + `--dryrun`(부울) - 지정된 명령을 사용하여 수행될 작업이 실행되지 않고 표시됩니다.
  + `--include`(문자열) - 지정한 패턴과 일치하는 파일 또는 객체를 명령에서 제외하지 않습니다. 자세한 내용은 *AWS CLI 명령 참조*의 [제외 및 포함 필터 사용](https://docs.aws.amazon.com/cli/latest/reference/s3/index.html#use-of-exclude-and-include-filters)을 참조하세요.
  + `--exclude`(문자열) - 지정한 패턴과 일치하는 모든 파일 또는 객체를 명령에서 제외합니다.
  + `--recursive`(부울) - 지정된 디렉터리 또는 접두사 아래의 모든 파일 또는 객체에 대해 명령이 수행됩니다.
  + `--page-size`(정수) - 나열 작업에 대한 각 응답으로 반환할 결과 수입니다. 기본값은 1,000(허용되는 최대값)입니다. 작업 시간이 초과된 경우 더 낮은 값을 사용하면 도움이 될 수 있습니다.
  + `--only-show-errors`(부울) - 오류와 경고만 표시됩니다. 다른 모든 출력은 억제됩니다.
  + `--quiet`(부울) - 지정된 명령에 의해 수행되는 작업이 표시되지 않습니다.
+ [sync](https://docs.aws.amazon.com/cli/latest/reference/s3/sync.html) - 디렉터리와 접두사를 동기화합니다. 이 명령은 소스 디렉터리의 새 파일 및 업데이트된 파일을 대상에 복사합니다. 이 명령은 하나 이상의 파일이 포함된 경우에만 대상에 디렉터리를 만듭니다.
**중요**  
동일한 Snowball Edge에 있는 디렉터리끼리 동기화하는 것은 지원되지 않습니다.  
한 AWS Snowball Edge 디바이스에서 다른 AWS Snowball Edge 디바이스로의 동기화는 지원되지 않습니다.  
이 옵션은 온프레미스 데이터 스토리지와 Snowball Edge 사이의 콘텐츠를 동기화하는 데만 사용할 수 있습니다.
  + `--dryrun`(부울) - 지정된 명령을 사용하여 수행될 작업이 실행되지 않고 표시됩니다.
  + `--quiet`(부울) - 지정된 명령에 의해 수행되는 작업이 표시되지 않습니다.
  + `--include`(문자열) - 지정한 패턴과 일치하는 파일 또는 객체를 명령에서 제외하지 않습니다. 자세한 내용은 *AWS CLI 명령 참조*의 [제외 및 포함 필터 사용](https://docs.aws.amazon.com/cli/latest/reference/s3/index.html#use-of-exclude-and-include-filters)을 참조하세요.
  + `--exclude`(문자열) - 지정한 패턴과 일치하는 모든 파일 또는 객체를 명령에서 제외합니다.
  + `--follow-symlinks` 또는 `--no-follow-symlinks`(부울) - 로컬 파일 시스템에서 Amazon S3로 업로드하는 경우에만 심볼 링크(symlinks)를 따릅니다. Amazon S3는 심볼 링크를 지원하지 않으므로 링크 대상의 콘텐츠는 링크 이름 아래에 업로드됩니다. 두 가지 옵션을 모두 지정하지 않는 경우 기본값은 symlink를 따르는 것입니다.
  + `--only-show-errors`(부울) - 오류와 경고만 표시됩니다. 다른 모든 출력은 억제됩니다.
  + `--no-progress`(부울) - 파일 전송 진행 상항이 표시되지 않습니다. 이 옵션은 `--quiet` 및 `--only-show-errors` 옵션을 입력하지 않는 경우에 한해 적용됩니다.
  + `--page-size`(정수) - 나열 작업에 대한 각 응답으로 반환할 결과 수입니다. 기본값은 1,000(허용되는 최대값)입니다. 작업 시간이 초과된 경우 더 낮은 값을 사용하면 도움이 될 수 있습니다.
  + `--metadata`(맵) - Amazon S3에 객체와 함께 저장할 메타데이터 맵입니다. 이 맵은 이 요청에 속한 모든 객체에 적용됩니다. 동기화에서 이 기능은 변경되지 않은 파일은 새 메타데이터를 받지 않음을 뜻합니다. 두 Amazon S3 위치 간에 복사할 때 별도로 지정하지 않은 경우 `metadata-directive` 인수의 기본값은 `REPLACE`입니다.
**중요**  
동일한 Snowball Edge에 있는 디렉터리끼리 동기화하는 것은 지원되지 않습니다.  
한 AWS Snowball Edge 디바이스에서 다른 AWS Snowball Edge 디바이스로의 동기화는 지원되지 않습니다.  
이 옵션은 온프레미스 데이터 스토리지와 Snowball Edge 사이의 콘텐츠를 동기화하는 데만 사용할 수 있습니다.
  + `--size-only`(부울) - 이 옵션에서 각 키의 크기는 원본에서 대상으로 동기화할지 여부를 결정하는 데 사용되는 유일한 조건입니다.
  + `--exact-timestamps`(부울) - Amazon S3에서 로컬 스토리지로 동기화할 때 타임스탬프가 정확히 일치하는 경우에만 같은 크기의 항목이 무시됩니다. 로컬 버전이 Amazon S3 버전보다 최신이 아닐 경우 기본 동작은 같은 크기의 항목을 무시하는 것입니다.
  + `--delete`(부울) - 대상에는 있지만 원본에는 없는 파일이 동기화 중에 삭제됩니다.

이름에 공백이 있는 파일 또는 폴더(예: `my photo.jpg` 또는 `My Documents`)로 작업할 수 있습니다. 그러나 AWS CLI 명령에서 공백을 올바르게 처리해야 합니다. 자세한 내용은 *AWS Command Line Interface 사용 설명서*의 [AWS CLI의 파라미터 값 지정](https://docs.aws.amazon.com/cli/latest/userguide/cli-using-param.html)을 참조하세요.

# 데이터 전송을 위해 Snowball Edge에서 지원되는 Amazon S3 REST API 작업
<a name="using-adapter-supported-api"></a>

다음에는 Amazon S3 어댑터 사용 시 지원되는 Amazon S3 REST API 작업 목록이 나와 있습니다. 목록에는 API 작업이 Amazon S3와 연동하는 방식에 대한 정보를 제공하는 링크가 포함되어 있습니다. 또한 Amazon S3 API 작업과 AWS Snowball Edge 디바이스 작업 간의 동작 차이도 다룹니다. 다음 예시와 같이 AWS Snowball Edge 에 디바이스에서 반환되는 모든 응답에서는 `Server`를 `AWSSnowball`로 선언합니다.

```
HTTP/1.1 201 OK
x-amz-id-2: JuKZqmXuiwFeDQxhD7M8KtsKobSzWA1QEjLbTMTagkKdBX2z7Il/jGhDeJ3j6s80
x-amz-request-id: 32FE2CEB32F5EE25
Date: Fri, 08 2016 21:34:56 GMT
Server: AWSSnowball
```

Amazon S3 REST API 호출에는 SigV4 서명이 필요합니다. AWS CLI 또는 AWS SDK를 사용하여 이러한 API 호출을 수행하는 경우 SigV4 서명이 처리됩니다. 그렇지 않은 경우 자체 SigV4 서명 솔루션을 구현해야 합니다. 자세한 내용은 Amazon Simple Storage Service 사용 설명서의 [요청 인증(AWS 서명 버전 4)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/sig-v4-authenticating-requests.html)을 참조하세요.
+ [GET Bucket(List Objects)버전 1](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketGET.html) - 지원됩니다. 하지만 이 GET 작업 구현에서는 다음이 지원되지 않습니다.
  + 페이지 매김
  + 마커
  + 구분 기호
  + 목록이 반환될 때 목록이 정렬되지 않습니다.

  버전 1만 지원됩니다. GET Bucket(List Objects) 버전 2는 지원되지 않습니다.
+ [GET Service](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTServiceGET.html) 
+ [HEAD Bucket](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketHEAD.html) 
+ [HEAD Object](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectHEAD.html) 
+ [GET Object](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectGET.html) - Snow 디바이스의 S3 버킷에서 객체를 다운로드하는 것입니다.
+ [PUT Object](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectPUT.html) -를 사용하여 객체를 AWS Snowball Edge 디바이스에 업로드하면 `PUT Object` ETag가 생성됩니다.

  ETag는 객체의 해시입니다. ETag는 객체의 콘텐츠에 대한 변경 사항만 반영하고 메타데이터에 대한 변경을 반영하지 않습니다. ETag는 객체 데이터의 MD5 다이제스트일 수도 아닐 수도 있습니다. 객체 복사에 대한 자세한 내용은 *Amazon Simple Storage Service API 참조*의 [공통 응답 헤더](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTCommonResponseHeaders.html)를 참조하세요.
+ [DELETE Object](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectDELETE.html) 
+ [멀티파트 업로드 시작](https://docs.aws.amazon.com/AmazonS3/latest/API/mpUploadInitiate.html) -이 구현에서는 AWS Snowball Edge 디바이스에 이미 있는 객체에 대한 멀티파트 업로드 요청을 시작하면 먼저 해당 객체가 삭제됩니다. 그런 다음 AWS Snowball Edge 디바이스에 여러 부분으로 복사합니다.
+ [멀티파트 업로드 목록 조회](https://docs.aws.amazon.com/AmazonS3/latest/API/mpUploadListMPUpload.html) 
+ [부분 업로드](https://docs.aws.amazon.com/AmazonS3/latest/API/mpUploadUploadPart.html) 
+ [멀티파트 업로드 완료](https://docs.aws.amazon.com/AmazonS3/latest/API/mpUploadComplete.html) 
+ [멀티파트 업로드 중단](https://docs.aws.amazon.com/AmazonS3/latest/API/mpUploadAbort.html) 

**참고**  
이 목록에 없는 Amazon S3 어댑터 REST API 작업은 지원되지 않습니다. 지원되지 않는 REST API 작업을 Snowball Edge에 사용하면 해당 작업이 지원되지 않는다는 오류 메시지가 반환됩니다.