[typescript] 타입스크립트와 AWS Athena를 이용한 서버리스 쿼리 실행하기

서버리스 아키텍처는 클라우드 환경에서 효율적인 방식으로 백엔드 기능을 구축할 수 있도록 해줍니다. 이제 타입스크립트와 AWS Athena를 결합하여 서버리스 환경에서 데이터베이스 쿼리를 실행하는 방법에 대해 알아보겠습니다.

1. AWS Athena 개요

AWS Athena는 표준 SQL을 사용하여 S3에 저장된 데이터를 쿼리할 수 있는 서비스입니다. 이는 즉시 쿼리 실행을 가능하게 하며 별도의 인프라 관리 없이 안전하게 데이터에 접근할 수 있습니다.

2. 타입스크립트 및 AWS SDK 사용

AWS SDK for JavaScript를 통해 AWS 서비스와 상호 작용하는 타입스크립트 애플리케이션을 만들 수 있습니다. 먼저 AWS SDK를 설치하고, AWS 인증 정보를 구성합니다.

import AWS from 'aws-sdk'

AWS.config.update({
  region: 'aws-region',
  accessKeyId: 'your-access-key',
  secretAccessKey: 'your-secret-access-key'
})

3. Athena에서 쿼리 실행하기

Athena를 사용하여 데이터베이스 쿼리를 실행하려면 AWS SDK를 사용하여 쿼리를 실행하는 함수를 작성해야 합니다.

const runAthenaQuery = async (query: string): Promise<void> => {
  const athena = new AWS.Athena()

  const params = {
    QueryString: query,
    ResultConfiguration: {
      OutputLocation: 's3://your-bucket-name',
    },
  }

  const result = await athena.startQueryExecution(params).promise()

  console.log('Query submitted:', result)
}

4. 타입스크립트를 사용한 서버리스 AWS Lambda 함수

마지막으로, AWS Lambda 함수를 사용하여 타입스크립트로 작성된 코드를 배포합니다. AWS Lambda는 비즈니스 로직을 실행하고 데이터베이스 쿼리를 트리거할 수 있는 서버리스 컴퓨팅 서비스입니다.

import { APIGatewayProxyHandler } from 'aws-lambda'

export const handler: APIGatewayProxyHandler = async (event) => {
  const query = event.queryStringParameters?.query

  if (query) {
    await runAthenaQuery(query)
    return { statusCode: 200, body: 'Query executed successfully' }
  } else {
    return { statusCode: 400, body: 'Missing query parameter' }
  }
}

요약

타입스크립트와 AWS Athena를 결합하여 서버리스 아키텍처에서 데이터베이스 쿼리를 실행하는 방법에 대해 알아보았습니다. 이를 통해 즉시 쿼리 실행과 관리의 간소화를 실현할 수 있습니다. AWS Lambda와 함께 사용하여 신속하게 타입스크립트 코드를 배포하고 실행할 수 있습니다.

AWS Athena 및 AWS Lambda에 대한 자세한 정보는 AWS 공식 문서를 참조하시기 바랍니다.

참고 자료:

이제 여러분도 타입스크립트와 AWS Athena를 이용하여 서버리스 환경에서 쿼리를 실행할 수 있습니다.