SST에서 DynamoDB 테이블 생성하기

이제 SST로 인프라를 구축하기 시작할 차례입니다. 먼저 DynamoDB부터 시작하겠습니다.

테이블 생성하기

Change indicator infra/storage.ts에 다음 내용을 추가합니다.

// DynamoDB 테이블 생성
export const table = new sst.aws.Dynamo("Notes", {
  fields: {
    userId: "string",
    noteId: "string",
  },
  primaryIndex: { hashKey: "userId", rangeKey: "noteId" },
});

여기서 무엇을 하는지 살펴보겠습니다.

Dynamo 컴포넌트를 사용해 DynamoDB 테이블을 생성합니다.

두 개의 필드가 있습니다:

  1. userId: 노트가 속한 사용자의 ID
  2. noteId: 노트의 ID

그런 다음 테이블에 대한 인덱스를 생성합니다.

각 DynamoDB 테이블은 기본 키를 가집니다. 이 키는 한 번 설정되면 변경할 수 없습니다. 기본 키는 테이블의 각 항목을 고유하게 식별하므로 두 항목이 동일한 키를 가질 수 없습니다. DynamoDB는 두 가지 유형의 기본 키를 지원합니다:

  • 파티션 키
  • 파티션 키와 정렬 키 (복합 키)

우리는 복합 기본 키를 사용할 것입니다 (위 코드 블록에서 primaryIndex로 참조됨). 이는 데이터를 쿼리할 때 추가적인 유연성을 제공합니다. 예를 들어, userId 값만 제공하면 DynamoDB는 해당 사용자의 모든 노트를 검색합니다. 또는 userIdnoteId 값을 모두 제공하여 특정 노트를 검색할 수 있습니다.

변경 사항 배포

변경 사항을 적용한 후, SST가 자동으로 테이블을 생성합니다. 배포 과정이 끝나면 다음과 같은 내용이 표시됩니다.

|  Created     Notes sst:aws:Dynamo

이제 데이터베이스가 생성되었으니, 파일 업로드를 처리할 S3 버킷을 만들어 보겠습니다.