AWS CLI 사용 - Amazon Keyspaces(Apache Cassandra용)

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

AWS CLI 사용

AWS Command Line Interface(AWS CLI)를 사용하면 명령줄에서 여러 AWS 서비스를 관리하고 스크립트를 통해 자동화할 수 있습니다. Amazon Keyspaces를 통해 AWS CLI를 데이터 언어 정의(DDL) 작업(예: 테이블 생성)에 사용할 수 있습니다. 또한 코드형 인프라(IaC) 서비스 및 AWS CloudFormation, Terraform 같은 도구를 사용할 수 있습니다.

Amazon Keyspaces에서 AWS CLI를 사용하려면 액세스 키 ID와 비밀 액세스 키를 얻어야 합니다. 자세한 내용은 Amazon Keyspace에 AWS 자격 증명을 생성하고 구성하는 방법 섹션을 참조하세요.

AWS CLI의 Amazon Keyspaces에 사용할 수 있는 모든 명령의 전체 목록을 보려면 AWS CLI 명령 레퍼런스를 참조하십시오.

AWS CLI 다운로드 및 구성

AWS CLI는 https://aws.amazon.com/cli에 사용할 수 있습니다. Windows, macOS 또는 Linux에서 실행됩니다. AWS CLI 다운로드 후 다음 단계에 따라 설치 및 구성합니다.

  1. AWS Command Line Interface 사용 설명서로 이동합니다.

  2. AWS CLI 설치AWS CLI 구성 지침을 따릅니다.

Amazon Keyspaces와 함께 AWS CLI 사용

명령줄 형식은 Amazon Keyspaces 작업 이름과 해당 작업에 대한 파라미터 순으로 구성됩니다. AWS CLI는 파라미터 값의 간편 구문과 JSON을 지원합니다. 다음 Amazon Keyspaces 예제는 AWS CLI 간편 구문을 사용합니다. 자세한 내용은 AWS CLI를 통한 간편 구문 사용을 참조하십시오.

다음 명령은 이름 카탈로그와 함께 키스페이스를 생성합니다.

aws keyspaces create-keyspace --keyspace-name 'catalog'

이 명령은 출력에 리소스 Amazon 리소스 이름(ARN)을 반환합니다.

{ "resourceArn": "arn:aws:cassandra:us-east-1:111222333444:/keyspace/catalog/" }

다음 명령을 사용하여 키스페이스 카탈로그가 존재하는지 확인할 수 있습니다.

aws keyspaces get-keyspace --keyspace-name 'catalog'

명령의 출력은 다음 값을 반환합니다.

{ "keyspaceName": "catalog", "resourceArn": "arn:aws:cassandra:us-east-1:111222333444:/keyspace/catalog/" }

다음 명령은 book_awards라는 이름의 테이블을 생성합니다. 테이블의 파티션 키는 year 열과 award 열로 구성되며 클러스터링 키는 category 열과 rank 열로 구성되고, 두 클러스터링 열 모두 오름차순 정렬 순서를 사용합니다. (읽기 쉽도록 이 섹션에서는 긴 명령이 여러 줄로 나누어져 있습니다.)

aws keyspaces create-table --keyspace-name 'catalog' --table-name 'book_awards' --schema-definition 'allColumns=[{name=year,type=int},{name=award,type=text},{name=rank,type=int}, {name=category,type=text}, {name=author,type=text},{name=book_title,type=text},{name=publisher,type=text}], partitionKeys=[{name=year},{name=award}],clusteringKeys=[{name=category,orderBy=ASC},{name=rank,orderBy=ASC}]'

이 명령은 다음 출력을 반환합니다.

{ "resourceArn": "arn:aws:cassandra:us-east-1:111222333444:/keyspace/catalog/table/book_awards" }

다음 명령을 사용하여 테이블의 메타데이터 속성을 확인할 수 있습니다.

aws keyspaces get-table --keyspace-name 'catalog' --table-name 'book_awards'

이 명령은 다음 출력을 반환합니다.

{ "keyspaceName": "catalog", "tableName": "book_awards", "resourceArn": "arn:aws:cassandra:us-east-1:111222333444:/keyspace/catalog/table/book_awards", "creationTimestamp": 1645564368.628, "status": "ACTIVE", "schemaDefinition": { "allColumns": [ { "name": "year", "type": "int" }, { "name": "award", "type": "text" }, { "name": "category", "type": "text" }, { "name": "rank", "type": "int" }, { "name": "author", "type": "text" }, { "name": "book_title", "type": "text" }, { "name": "publisher", "type": "text" } ], "partitionKeys": [ { "name": "year" }, { "name": "award" } ], "clusteringKeys": [ { "name": "category", "orderBy": "ASC" }, { "name": "rank", "orderBy": "ASC" } ], "staticColumns": [] }, "capacitySpecification": { "throughputMode": "PAY_PER_REQUEST", "lastUpdateToPayPerRequestTimestamp": 1645564368.628 }, "encryptionSpecification": { "type": "AWS_OWNED_KMS_KEY" }, "pointInTimeRecovery": { "status": "DISABLED" }, "ttl": { "status": "ENABLED" }, "defaultTimeToLive": 0, "comment": { "message": "" } }

복잡한 스키마가 포함된 테이블을 만들 때는 JSON 파일에서 테이블의 스키마 정의를 로드하는 것이 유용할 수 있습니다. 다음은 그 예시입니다. schema_definition.zip의 스키마 정의 예제 JSON 파일을 다운로드하고 schema_definition.json의 압축을 푼 다음 파일 경로를 기록해 둡니다. 이 예제에서는 스키마 정의 JSON 파일이 현재 디렉터리에 위치합니다. 다양한 파일 경로 옵션에 대해서는 파일에서 매개변수를 로드하는 방법을 참조하세요.

aws keyspaces create-table --keyspace-name 'catalog' --table-name 'book_awards' --schema-definition 'file://schema_definition.json'

다음 예제는 추가 옵션을 사용하여 myTable이라는 이름의 간단한 테이블을 만드는 방법을 보여줍니다. 참고로 가독성을 높이기 위해 명령이 별도의 행으로 구분되어 있습니다. 이 명령은 테이블을 만드는 방법을 보여줍니다.

  • 테이블의 용량 모드 설정

  • 테이블 시점 복구 활성화

  • 테이블의 기본 Time to Live(TTL) 값을 1년으로 설정

  • 테이블에 태그 두 개 추가

aws keyspaces create-table --keyspace-name 'catalog' --table-name 'myTable' --schema-definition 'allColumns=[{name=id,type=int},{name=name,type=text},{name=date,type=timestamp}],partitionKeys=[{name=id}]' --capacity-specification 'throughputMode=PROVISIONED,readCapacityUnits=5,writeCapacityUnits=5' --point-in-time-recovery 'status=ENABLED' --default-time-to-live '31536000' --tags 'key=env,value=test' 'key=dpt,value=sec'

이 예제에서는 암호화에 고객 관리형 키를 사용하고 열과 행의 만료 날짜를 설정할 수 있도록 TTL을 활성화한 새 테이블을 생성하는 방법을 보여줍니다. 이 샘플을 실행하려면 고객 관리형 AWS KMS 키의 리소스 ARN을 자체 키로 바꾸고 Amazon Keyspaces가 해당 키에 액세스할 수 있도록 해야 합니다.

aws keyspaces create-table --keyspace-name 'catalog' --table-name 'myTable' --schema-definition 'allColumns=[{name=id,type=int},{name=name,type=text},{name=date,type=timestamp}],partitionKeys=[{name=id}]' --encryption-specification 'type=CUSTOMER_MANAGED_KMS_KEY,kmsKeyIdentifier=arn:aws:kms:us-east-1:111222333444:key/11111111-2222-3333-4444-555555555555' --ttl 'status=ENABLED'