Amazon Web Services 한국 블로그
AWS AppSync Events 데이터 소스 통합을 통해 실시간 애플리케이션 강화
오늘 AWS AppSync Events가 이제 채널 네임스페이스에 대한 데이터 소스 통합을 지원하게 되었다는 소식을 알려드립니다. 이로써 개발자 여러분은 앞으로 더 정교한 실시간 애플리케이션을 제작할 수 있게 됩니다. 이 새 기능을 통해 AWS Lambda 함수, Amazon DynamoDB 테이블, Amazon Aurora 데이터베이스 및 기타 데이터 소스를 채널 네임스페이스 핸들러와 연결할 수 있습니다. AWS AppSync Events를 사용하면 데이터 검증, 이벤트 변환 및 이벤트 영구 스토리지와 같은 기능을 포함해 강력한 실시간 애플리케이션을 구축할 수 있습니다.
이러한 새로운 기능을 통해 정교한 이벤트 처리 워크플로를 만들려면 Lambda 함수를 사용하여 이벤트를 변환 및 필터링하거나, 새로운 AppSync_JS 배치 유틸리티를 사용하여 여러 배치의 이벤트를 DynamoDB에 저장하면 됩니다. 이러한 통합은 복잡한 대화형 흐름을 지원하는 동시에 개발 시간과 운영 오버헤드는 줄일 수 있습니다. 예를 들어 이제는 복잡한 통합 코드를 쓰지 않아도 이벤트를 자동으로 데이터베이스에 유지할 수 있습니다.
데이터 소스 통합 소개
AWS Management Console을 사용하여 데이터 소스 통합을 설정하는 방법을 살펴보겠습니다. 우선 콘솔에서 AWS AppSync로 이동한 후 Event API를 선택합니다(또는 새로 만듭니다).
이벤트 데이터를 DynamoDB에 직접 유지
다양한 종류의 데이터 소스 통합이 있으며, 그중에서 선택하면 됩니다. 첫 번째 예시에서는 DynamoDB 테이블을 데이터 소스로 만들어 보겠습니다. 그러려면 우선 DynamoDB 테이블이 하나 필요하므로, 콘솔에서 DynamoDB로 이동하여 event-messages
라는 새 테이블을 만듭니다. 이 예시에서는 id
라는 파티션 키로 테이블을 만들기만 하면 됩니다. 그런 다음, 테이블 만들기를 클릭하고 기본 테이블 구성을 수락한 후 콘솔에서 AppSync로 돌아갑니다.
AppSync 콘솔로 돌아온 후 앞서 설정한 Event API로 돌아가 탭이 있는 탐색 패널에서 데이터 소스를 선택하고 데이터 소스 만들기 버튼을 클릭합니다.
데이터 소스에 이름을 지정한 후 데이터 소스 드롭다운 메뉴에서 Amazon DynamoDB를 선택합니다. 이렇게 하면 DynamoDB의 구성 옵션이 표시됩니다.
데이터 소스가 구성되면 핸들러 로직을 구현할 수 있습니다. 아래는 이벤트를 DynamoDB에 유지하는 Publish 핸들러의 예시입니다.
import * as ddb from '@aws-appsync/utils/dynamodb'
import { util } from '@aws-appsync/utils'
const TABLE = 'events-messages'
export const onPublish = {
request(ctx) {
const channel = ctx.info.channel.path
const timestamp = util.time.nowISO8601()
return ddb.batchPut({
tables: {
[TABLE]: ctx.events.map(({id, payload}) => ({
channel, id, timestamp, ...payload,
})),
},
})
},
response(ctx) {
return ctx.result.data[TABLE].map(({ id, ...payload }) => ({ id, payload }))
},
}
핸들러 코드를 추가하려면 네임스페이스의 탭이 있는 탐색 패널로 이동합니다. 여기에 새 기본 네임스페이스가 이미 만들어져 있습니다. 기본 네임스페이스를 클릭하여 열면, 구성 세부 정보 바로 아래에 이벤트 핸들러를 추가할 수 있는 버튼이 있습니다.
이벤트 핸들러 만들기를 클릭하면 새 대화 상자가 표시됩니다. 이때 구성으로 데이터 소스를 포함한 코드를 선택하고 게시 구성으로 DynamoDB 데이터 소스를 선택하면 됩니다.
핸들러를 저장하고 나면 콘솔에서 기본 제공 테스트 도구로 통합을 테스트할 수 있습니다. 여기에 주어진 기본값을 사용하면 되고, 아래에 보시는 것처럼 이벤트 두 개를 DynamoDB 테이블에 성공적으로 작성했습니다.
아래는 DynamoDB에 캡처된 모든 메시지입니다.
오류 처리 및 보안
새 데이터 소스 통합에는 포괄적인 오류 처리 기능이 포함되어 있습니다. 동기식 작업의 경우, Amazon CloudWatch에 로깅될 특정 오류 메시지를 반환할 수 있습니다. 또한, 클라이언트에게 민감한 백엔드 정보를 노출하지 않으므로 보안이 유지됩니다. 권한 부여의 경우, Lambda 함수로 사용자 지정 검증 로직을 구현하여 특정 채널이나 메시지 유형에 대한 액세스 권한을 제어할 수 있습니다.
지금 이용 가능
이제 AWS AppSync Events 데이터 소스 통합은 AWS AppSync가 제공되는 모든 AWS 리전에서 사용할 수 있습니다. 이러한 새 기능은 AWS AppSync 콘솔, AWS 명령줄 인터페이스(CLI) 또는 AWS SDK를 통해 사용 가능합니다. 데이터 소스 통합 사용에 대한 추가 비용이 없으며, 사용 중인 기본 리소스(예: Lambda 간접 호출 또는 DynamoDB 작업) 및 기존 AppSync Events 사용량에 대해서만 요금을 지불하면 됩니다.
AWS AppSync Events 설명서를 참조하여 AWS AppSync Events와 데이터 소스 통합에 대해 자세히 알아보고, 오늘부터 더 강력한 실시간 애플리케이션을 구축해 보세요.
뉴스 블로그를 어떻게 생각하시나요? 이 1분짜리 설문조사에 참여해 주세요!
(이 설문조사는 외부 기업에서 호스트합니다. AWS는 AWS 개인정보 처리방침에 설명한 대로 사용자 정보를 처리합니다. AWS는 이 설문 조사를 통해 수집된 데이터를 소유하며 수집된 정보를 설문 응답자와 공유하지 않습니다)