본문 바로가기
AWS/Basic Web Application 구축하기

[Basic Web Application 구축하기(4)] - 데이터 테이블 생성, DynamoDB, IAM

by 가영리 2023. 11. 16.
728x90

Amazon DynamoDB

  • key-value 데이터베이스 서비스이므로 데이터의 스키마를 생성할 필요가 없다.
  • IAM을 사용해 서비스가 서로 상호 작용하는 데 필요한 권한을 안전하게 부여한다.
  • 이전 과정에서 작성한 lambda함수가 생성된 DynamoDB 테이블에 데이터를 쓸 수 있도록 IAM 정책을 통해 허용한다.

 

DynamoDB 테이블 생성

DynamoDB 콘솔

 

테이블 생성 및 세부 정보 작성

테이블 이름과 파티션 키만 작성하고 테이블을 생성한다.

파티션 키는 테이블의 Primary Key이다.

 

추가 정보의 ARN은 나중에 필요하므로 복사해놓는다.

 

IAM 정책을 생성하여 Lambda 함수에 추가

이제 데이터를 저장할 수 있는 테이블이 생겼으니 Lambda함수를 편집하여 데이터를 쓰고 읽기를 가능하도록 해보겠다.

 

Lambda 콘솔 접속

생성한 함수를 선택한다.

 

구성 -> 권한 선택

실행 역할 상자의 역할 이름 아래 링크를 클릭하면 새 브라우저가 열린다.

 

권한 정책 상자에서 권한 추가 클릭, 인라인 정책 생성을 선택한다.

 

JSON을 선택하고 아래와 같이 정책 작성하고 아까 복사해둔 ARN은 Resource 항목에 붙여넣는다.

 

정책 생성

 

DynamoDB 테이블에서 데이터를 쓰도록 Lambda함수 수정

핸들러 정보를 수정한다.

변경 사항 테스트

테스트 버튼을 누른 후 성공이 뜨면 테스트 성공

 

DynamoDB > 항목 탐색 > 생성한 데이터베이스 선택

 

애플리케이션 아키텍처

사용자가 웹 앱에서 버튼을 선택하면 API가 직접 호출되고 Lambda 함수가 트리거된다. 

Lambda 함수는 API Gateway를 통해 데이터베이스에 데이터를 쓰고 클라이언트에 메시지를 반환한다.

또한 IAM은 모든 권한을 관리한다.