

**이 문서는 AWS CLI의 버전 1에만 해당합니다.**

곧 AWS CLI 버전 1에 대한 지원이 종료될 예정임을 알려드립니다. AWS CLI 버전 2로 마이그레이션하는 것이 좋습니다. 마이그레이션 날짜, 추가 세부 정보 및 방법에 대한 자세한 내용은 [공지 사항](https://aws.amazon.com/blogs/developer/cli-v1-maintenance-mode-announcement/)을 참조하세요. AWS CLI의 버전 2와 관련된 문서는 [버전 2 사용 설명서](https://docs.aws.amazon.com/cli/latest/userguide/)를 참조하세요.

# AWS CLI의 페이지 매김 옵션 사용
<a name="cli-usage-pagination"></a>

이 주제에서는 AWS Command Line Interface(AWS CLI)의 출력에 페이지 번호를 매기는 다양한 방법에 대해 설명합니다.

## 서버 측 페이지 매김
<a name="cli-usage-pagination-serverside"></a>

많은 항목 목록을 반환하는 대부분의 명령의 경우, AWS CLI에는 AWS CLI에서 서비스의 API를 호출하여 목록을 채울 때 출력에 포함되는 항목의 수를 제어할 수 있는 여러 옵션이 있습니다. AWS CLI의 서버 측 페이지 매김은 AWS 서비스 API에서 활성화되므로 이러한 옵션은 서비스 API에서 활성화한 경우에만 작동합니다.

**Topics**
+ [--no-paginate](#cli-usage-pagination-nopaginate)
+ [--page-size](#cli-usage-pagination-pagesize)
+ [--max-items](#cli-usage-pagination-maxitems)
+ [--starting-token](#cli-usage-pagination-startingtoken)

기본적으로 AWS CLI는 개별 서비스에 의해 결정된 페이지 크기를 사용하고 사용 가능한 모든 항목을 검색합니다. 예를 들어 Amazon S3의 기본 페이지 크기는 1,000입니다. 3,500개 객체를 포함하는 Amazon S3 버킷에서 `aws s3api list-objects`를 실행할 경우 AWS CLI는 백그라운드에서 서비스별 페이지 매김 로직을 처리하고 최종 출력에 3,500개 객체를 모두 반환하면서 Amazon S3에 대한 4개 호출을 자동으로 작성합니다.

특정 명령에 서버 측 페이지 매김이 있는지에 대한 자세한 내용은 [AWS CLI 참조 가이드](https://docs.aws.amazon.com/cli/v1/reference/)를 참조하세요.

### --no-paginate 파라미터를 사용하는 방법
<a name="cli-usage-pagination-nopaginate"></a>

`--no-paginate` 옵션은 클라이언트 측에서 다음 페이지 매김 토큰을 사용 중지합니다. 명령을 사용할 때 기본적으로 AWS CLI는 자동으로 여러 번 호출하여 가능한 모든 결과를 반환해서 페이지 매김을 생성합니다. 각 페이지에 대해 한 번 호출합니다. 페이지 매김을 비활성화하면 AWS CLI가 명령 결과의 첫 페이지에 대해 한 번만 호출합니다.

예를 들어 3,500개의 객체가 포함된 Amazon S3 버킷에서 `aws s3api list-objects`를 실행하는 경우 AWS CLI는 Amazon S3에 대한 첫 번째 호출만 실행하여 최종 출력에서 처음 1,000개의 객체만 반환합니다.

```
$ aws s3api list-objects \
    --bucket amzn-s3-demo-bucket \
    --no-paginate
{
    "Contents": [
...
```

### --page-size 파라미터를 사용하는 방법
<a name="cli-usage-pagination-pagesize"></a>

많은 리소스에서 list 명령을 실행할 때 문제가 발생할 경우, 기본값 페이지 크기가 너무 크기 때문일 수 있습니다. 이 경우 AWS 서비스에 최대 허용 시간을 초과하는 호출이 이루어지고 "시간 초과" 오류가 발생할 수 있습니다. `--page-size` 옵션을 사용하면 AWS CLI가 각 AWS 서비스 호출로부터 더 적은 수의 항목을 요청하도록 지정할 수 있습니다. AWS CLI는 계속 전체 목록을 검색하지만, 백그라운드에서 더 많은 수의 서비스 API 호출을 수행하고 각 호출마다 더 적은 수의 항목을 검색합니다. 그러면 각각의 호출이 시간 초과 없이 성공할 확률이 높아집니다. 페이지 크기를 변경해도 출력에 영향을 주지 않습니다. 출력을 생성하는 데 필요한 API 호출 수에만 영향을 미칩니다.

```
$ aws s3api list-objects \
    --bucket amzn-s3-demo-bucket \
    --page-size 100
{
    "Contents": [
...
```

### --max-items 파라미터를 사용하는 방법
<a name="cli-usage-pagination-maxitems"></a>

AWS CLI 출력에 한 번에 더 적은 항목을 포함시키려면 `--max-items` 옵션을 사용합니다. AWS CLI는 이전에 설명한 대로 계속 서비스와 함께 페이지 매김을 처리하지만, 사용자가 지정한 항목 수만 한 번에 출력합니다.

```
$ aws s3api list-objects \
    --bucket amzn-s3-demo-bucket \
    --max-items 100
{
    "NextToken": "eyJNYXJrZXIiOiBudWxsLCAiYm90b190cnVuY2F0ZV9hbW91bnQiOiAxfQ==",
    "Contents": [
...
```

### --starting-token 파라미터를 사용하는 방법
<a name="cli-usage-pagination-startingtoken"></a>

출력 항목 수(`--max-items`)가 기본 API 호출에서 반환하는 전체 항목 수보다 적을 경우 사용자가 다음 항목 세트를 검색하기 위해 후속 명령에 전달할 수 있도록 출력에 `NextToken`이 포함됩니다. 다음 예제를 통해 앞의 예제에서 반환된 `NextToken` 값을 사용하는 방법을 배우고, 두 번째 백 개 항목을 검색할 수 있습니다.

**참고**  
`--starting-token` 파라미터는 null이거나 비어있을 수 없습니다. 이전 명령이 `NextToken` 값을 반환하지 않으면 반환할 더 이상의 항목이 없는 것이기 때문에 명령을 다시 호출할 필요가 없습니다.

```
$ aws s3api list-objects \
    --bucket amzn-s3-demo-bucket \
    --max-items 100 \
    --starting-token eyJNYXJrZXIiOiBudWxsLCAiYm90b190cnVuY2F0ZV9hbW91bnQiOiAxfQ==
{
    "Contents": [
...
```

지정된 AWS 서비스는 호출할 때마다 같은 순서로 항목이 반환되지는 않습니다. `--page-size` 및 `--max-items`에 서로 다른 값을 지정하면 누락되거나 중복된 항목을 포함해 예상치 못한 결과가 발생할 수 있습니다. 이를 방지하려면 `--page-size` 및 `--max-items`에 동일한 번호를 사용하여 AWS CLI의 페이지 매김을 기본 서비스의 페이지 매김과 동기화하세요. 또한 전체 목록을 검색하고 필요한 구문 분석 작업을 로컬에서 수행할 수 있습니다.