

# DynamoDB AWS CLI의 로컬 보조 인덱스로 작업
<a name="LCICli"></a>

AWS CLI를 사용하여 하나 이상의 로컬 보조 인덱스가 있는 Amazon DynamoDB 테이블을 생성하고, 테이블의 인덱스를 설명하고, 인덱스를 사용하여 쿼리를 수행할 수 있습니다.

**Topics**
+ [로컬 보조 인덱스가 있는 테이블 생성](#LCICli.CreateTableWithIndex)
+ [로컬 보조 인덱스가 있는 테이블 설명](#LCICli.DescribeTableWithIndex)
+ [로컬 보조 인덱스 쿼리](#LCICli.QueryAnIndex)

## 로컬 보조 인덱스가 있는 테이블 생성
<a name="LCICli.CreateTableWithIndex"></a>

로컬 보조 인덱스는 테이블을 생성할 때 동시에 생성해야 합니다. 이렇게 하려면 `create-table` 파라미터를 사용하고 하나 이상의 로컬 보조 인덱스에 대한 사양을 제공합니다. 다음 예제는 보유한 음악 파일에 있는 곡의 정보를 담은 테이블(`Music`)을 생성합니다. 파티션 키는 `Artist`이고 정렬 키는 `SongTitle`입니다. 보조 인덱스인 `AlbumTitle` 속성의 `AlbumTitleIndex`는 앨범 제목을 사용해 쿼리를 쉽게 수행하는 데 사용합니다.

```
aws dynamodb create-table \
    --table-name Music \
    --attribute-definitions AttributeName=Artist,AttributeType=S AttributeName=SongTitle,AttributeType=S \
        AttributeName=AlbumTitle,AttributeType=S  \
    --key-schema AttributeName=Artist,KeyType=HASH AttributeName=SongTitle,KeyType=RANGE \
    --provisioned-throughput \
        ReadCapacityUnits=10,WriteCapacityUnits=5 \
    --local-secondary-indexes \
        "[{\"IndexName\": \"AlbumTitleIndex\",
        \"KeySchema\":[{\"AttributeName\":\"Artist\",\"KeyType\":\"HASH\"},
                      {\"AttributeName\":\"AlbumTitle\",\"KeyType\":\"RANGE\"}],
        \"Projection\":{\"ProjectionType\":\"INCLUDE\",  \"NonKeyAttributes\":[\"Genre\", \"Year\"]}}]"
```

DynamoDB에서 테이블을 만들고 테이블 상태가 `ACTIVE`로 설정될 때까지 기다려야 합니다. 그런 다음 테이블에 데이터 항목을 입력할 수 있습니다. [describe table](https://docs.aws.amazon.com/cli/latest/reference/dynamodb/describe-table.html)을 사용하여 테이블 생성 상태를 결정할 수 있습니다.

## 로컬 보조 인덱스가 있는 테이블 설명
<a name="LCICli.DescribeTableWithIndex"></a>

테이블의 로컬 보조 인덱스에 관한 자세한 내용은 `describe-table` 파라미터를 참조하세요. 각 인덱스에 대해 인덱스의 이름, 키 스키마 및 프로젝션된 속성에 액세스할 수 있습니다.

```
aws dynamodb describe-table --table-name Music
```

## 로컬 보조 인덱스 쿼리
<a name="LCICli.QueryAnIndex"></a>

테이블을 `query`할 때와 거의 동일한 방식으로 로컬 보조 인덱스의 `query` 작업을 사용할 수 있습니다. 인덱스 이름, 인덱스 정렬 키의 쿼리 기준, 반환하려는 속성을 지정해야 합니다. 이 예제에서 인덱스는 `AlbumTitleIndex`이고 인덱스 정렬 키는 `AlbumTitle`입니다.

인덱스로 프로젝션된 속성만 반환됩니다. 키가 아닌 속성을 선택하도록 이 쿼리를 수정할 수도 있지만, 그렇게 하려면 비교적 많은 비용이 드는 테이블 가져오기 작업이 필요합니다. 테이블 가져오기에 대한 자세한 내용은 [속성 프로젝션](LSI.md#LSI.Projections) 단원을 참조하세요.

```
aws dynamodb query \
    --table-name Music \
    --index-name AlbumTitleIndex \
    --key-condition-expression "Artist = :v_artist and AlbumTitle = :v_title" \
    --expression-attribute-values  '{":v_artist":{"S":"Acme Band"},":v_title":{"S":"Songs About Life"} }'
```