오늘 AWS AppSync Events [https://aws.amazon.com/appsync/product-details/#AWS_AppSync_Events]가 이제 채널 네임스페이스에 대한 데이터 소스 통합을 지원하게 되었다는 소식을 알려드립니다. 이로써 개발자 여러분은 앞으로 더 정교한 실시간 애플리케이션을 제작할 수 있게 됩니다. 이 새 기능을 통해 AWS Lambda [https://aws.amazon.com/lambda/] 함수, Amazon DynamoDB [https://aws.amazon.com/dynamodb/] 테이블, Amazon Aurora [https://aws.amazon.com/rds/aurora/] 데이터베이스 및 기타 데이터 소스를 채널 네임스페이스 핸들러와 연결할 수 있습니다. AWS AppSync Events를 사용하면 데이터 검증, 이벤트 변환 및 이벤트 영구 스토리지와 같은 기능을 포함해 강력한 실시간 애플리케이션을 구축할 수 있습니다.
이러한 새로운 기능을 통해 정교한 이벤트 처리 워크플로를 만들려면 Lambda 함수를 사용하여 이벤트를 변환 및 필터링하거나, 새로운 AppSync_JS [https://docs.aws.amazon.com/appsync/latest/eventapi/runtime-reference.html] 배치 유틸리티를 사용하여 여러 배치의 이벤트를 DynamoDB에 저장하면 됩니다. 이러한 통합은 복잡한 대화형 흐름을 지원하는 동시에 개발 시간과 운영 오버헤드는 줄일 수 있습니다. 예를 들어 이제는 복잡한 통합 코드를 쓰지 않아도 이벤트를 자동으로 데이터베이스에 유지할 수 있습니다.
데이터 소스 통합 소개
AWS Management Console [https://aws.amazon.com/console/]을 사용하여 데이터 소스 통합을 설정하는 방법을 살펴보겠습니다. 우선 콘솔에서 AWS AppSync로 이동한 후 Event API를 선택합니다(또는 새로 만듭니다).
AWS Console 스크린샷 [https://d2908q01vomqb2.cloudfront.net/da4b9237bacccdf19c0760cab7aec4a8359010b0/2025/04/16/appsync-events-namespaces-01-1-1024x613.png]
이벤트 데이터를 DynamoDB에 직접 유지
다양한 종류의 데이터 소스 통합이 있으며, 그중에서 선택하면 됩니다. 첫 번째 예시에서는 DynamoDB 테이블을 데이터 소스로 만들어 보겠습니다. 그러려면 우선 DynamoDB 테이블이 하나 필요하므로, 콘솔에서 DynamoDB로 이동하여 event-messages라는 새 테이블을 만듭니다. 이 예시에서는 id라는 파티션 키로 테이블을 만들기만 하면 됩니다. 그런 다음, 테이블 만들기를 클릭하고 기본 테이블 구성을 수락한 후 콘솔에서 AppSync로 돌아갑니다.
DynamoDB의 AWS Console 스크린샷 [https://d2908q01vomqb2.cloudfront.net/da4b9237bacccdf19c0760cab7aec4a8359010b0/2025/04/16/appsync-events-namespaces-02-1024x533.png]
AppSync 콘솔 [https://aws.amazon.com/console/]로 돌아온 후 앞서 설정한 Event API로 돌아가 탭이 있는 탐색 패널에서 데이터 소스를 선택하고 데이터 소스 만들기 버튼을 클릭합니다.
AWS Console 스크린샷 [https://d2908q01vomqb2.cloudfront.net/da4b9237bacccdf19c0760cab7aec4a8359010b0/2025/04/16/appsync-events-namespaces-03-1024x380.png]
데이터 소스에 이름을 지정한 후 데이터 소스 드롭다운 메뉴에서 Amazon DynamoDB를 선택합니다. 이렇게 하면 DynamoDB의 구성 옵션이 표시됩니다.
AWS Console 스크린샷 [https://d2908q01vomqb2.cloudfront.net/da4b9237bacccdf19c0760cab7aec4a8359010b0/2025/04/16/appsync-events-namespaces-04-2-1024x701.png]
데이터 소스가 구성되면 핸들러 로직을 구현할 수 있습니다. 아래는 이벤트를 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 }))
},
}
핸들러 코드를 추가하려면 네임스페이스의 탭이 있는 탐색 패널로 이동합니다. 여기에 새 기본 네임스페이스가 이미 만들어져 있습니다. 기본 네임스페이스를 클릭하여 열면, 구성 세부 정보 바로 아래에 이벤트 핸들러를 추가할 수 있는 버튼이 있습니다.
AWS Console 스크린샷 [https://d2908q01vomqb2.cloudfront.net/da4b9237bacccdf19c0760cab7aec4a8359010b0/2025/04/16/appsync-events-namespaces-05-1024x376.png]
이벤트 핸들러 만들기를 클릭하면 새 대화 상자가 표시됩니다. 이때 구성으로 데이터 소스를 포함한 코드를 선택하고 게시 구성으로 DynamoDB 데이터 소스를 선택하면 됩니다.
AWS Console 스크린샷 [https://d2908q01vomqb2.cloudfront.net/da4b9237bacccdf19c0760cab7aec4a8359010b0/2025/04/16/appsync-events-namespaces-06-1024x593.png]
핸들러를 저장하고 나면 콘솔에서 기본 제공 테스트 도구로 통합을 테스트할 수 있습니다. 여기에 주어진 기본값을 사용하면 되고, 아래에 보시는 것처럼 이벤트 두 개를 DynamoDB 테이블에 성공적으로 작성했습니다.
AWS Console 스크린샷 [https://d2908q01vomqb2.cloudfront.net/da4b9237bacccdf19c0760cab7aec4a8359010b0/2025/04/16/appsync-events-namespaces-07-1024x735.png]
아래는 DynamoDB에 캡처된 모든 메시지입니다.
AWS Console 스크린샷 [https://d2908q01vomqb2.cloudfront.net/da4b9237bacccdf19c0760cab7aec4a8359010b0/2025/04/16/appsync-events-namespaces-08-1024x456.png]
오류 처리 및 보안
새 데이터 소스 통합에는 포괄적인 오류 처리 기능이 포함되어 있습니다. 동기식 작업의 경우, Amazon CloudWatch [https://aws.amazon.com/cloudwatch/]에 로깅될 특정 오류 메시지를 반환할 수 있습니다. 또한, 클라이언트에게 민감한 백엔드 정보를 노출하지 않으므로 보안이 유지됩니다. 권한 부여의 경우, Lambda 함수로 사용자 지정 검증 로직을 구현하여 특정 채널이나 메시지 유형에 대한 액세스 권한을 제어할 수 있습니다.
지금 이용 가능
이제 AWS AppSync Events 데이터 소스 통합은 AWS AppSync가 제공되는 모든 AWS 리전에서 사용할 수 있습니다. 이러한 새 기능은 AWS AppSync 콘솔, AWS 명령줄 인터페이스 [https://aws.amazon.com/cli/](CLI) 또는 AWS SDK [https://aws.amazon.com/developer/tools/]를 통해 사용 가능합니다. 데이터 소스 통합 사용에 대한 추가 비용이 없으며, 사용 중인 기본 리소스(예: Lambda 간접 호출 또는 DynamoDB 작업) 및 기존 AppSync Events 사용량에 대해서만 요금을 지불하면 됩니다.
AWS AppSync Events 설명서 [https://docs.aws.amazon.com/appsync/latest/eventapi/event-api-welcome.html]를 참조하여 AWS AppSync Events와 데이터 소스 통합에 대해 자세히 알아보고, 오늘부터 더 강력한 실시간 애플리케이션을 구축해 보세요.
— Micah; [https://linktr.ee/micahwalter]
뉴스 블로그를 어떻게 생각하시나요? 이 1분짜리 설문조사 [https://amazonmr.au1.qualtrics.com/jfe/form/SV_eyD5tC5xNGCdCmi]에 참여해 주세요!
(이 설문조사 [https://amazonmr.au1.qualtrics.com/jfe/form/SV_eyD5tC5xNGCdCmi]는 외부 기업에서 호스트합니다. AWS는 AWS 개인정보 처리방침 [https://aws.amazon.com/privacy/?trk=4b29643c-e00f-4ab6-ab9c-b1fb47aa1708&sc_channel=blog]에 설명한 대로 사용자 정보를 처리합니다. AWS는 이 설문 조사를 통해 수집된 데이터를 소유하며 수집된 정보를 설문 응답자와 공유하지 않습니다)