Lovable한국어 문서

Amazon S3에 저장된 데이터를 서버리스 SQL 쿼리 서비스인 AWS Athena로 조회해 대시보드, 보고서, 분석 도구를 구축합니다.

AWS Athena에 앱 연결하기

Amazon S3의 데이터를 대상으로 SQL 쿼리를 실행하는 서버리스 쿼리 서비스 AWS Athena에 앱을 연결해 데이터 레이크 기반 대시보드를 구동하세요.

Amazon Athena는 Amazon S3에 저장된 데이터에 SQL을 직접 실행하는 서버리스 쿼리 서비스입니다. AWS Athena connector를 사용하면 Lovable 앱이 쿼리를 제출하고 결과를 읽을 수 있어, 데이터베이스 서버를 관리하지 않고도 데이터 레이크 위에 대시보드, 보고서, 내부 도구를 구축할 수 있습니다.

AWS Athena를 연결하면 앱은 다음 작업이 가능합니다.

  • S3에 저장된 데이터에 SQL 쿼리 실행
  • 데이터 카탈로그, 데이터베이스, 테이블 스키마 탐색
  • 페이지 단위로 쿼리 결과 가져오기
  • 데이터 레이크 쿼리로 대시보드·보고서 구동
  • 기존 Athena workgroup과 결과 위치 재사용

Athena 쿼리는 비동기로 처리됩니다. 앱이 쿼리를 시작하면 Athena가 처리하고, 완료 후(보통 수 초 이내) 앱이 결과를 가져옵니다. Lovable이 이 흐름을 자동으로 생성합니다.

주요 활용 사례 및 예시 앱

예시 앱프롬프트 예시설명
분석 대시보드AWS Athena를 사용해 events 테이블에서 일별 매출과 활성 사용자를 보여주는 대시보드를 만들어줘.데이터 레이크 테이블을 실시간 대시보드로 전환합니다.
앱이 S3 데이터에 집계 쿼리를 실행하고 결과를 차트로 렌더링합니다.
로그 탐색기AWS Athena를 사용해 status code와 날짜 범위로 access log를 필터링하는 검색 도구를 만들어줘.SQL로 대용량 로그 아카이브를 검색합니다.
앱이 S3의 파티셔닝된 로그 테이블을 쿼리하고 일치하는 행을 필터링 가능한 표로 보여줍니다.
SQL 쿼리 콘솔AWS Athena를 사용해 팀원들이 쿼리를 실행하고 결과를 CSV로 다운로드할 수 있는 내부 도구를 만들어줘.팀에게 경량 쿼리 콘솔을 제공합니다.
앱이 쿼리를 제출하고 완료를 폴링하며 결과를 CSV 내보내기와 함께 렌더링합니다.
데이터 카탈로그 브라우저AWS Athena를 사용해 우리 데이터베이스, 테이블, 컬럼 스키마를 나열하는 브라우저를 만들어줘.데이터 카탈로그를 탐색 가능하게 만듭니다.
앱이 데이터베이스와 테이블 메타데이터를 나열해 어떤 데이터가 어떤 구조로 있는지 파악할 수 있게 합니다.
KPI 보고서AWS Athena를 사용해 이번 주와 지난 주의 가입자 수·주문을 비교하는 주간 보고서 페이지를 만들어줘.데이터 레이크 쿼리로 반복 보고서를 게시합니다.
앱이 비교 쿼리를 온디맨드로 실행하고 결과를 읽기 쉬운 보고서로 제공합니다.
고객 사용량 포털AWS Athena를 사용해 각 고객이 청구 내보내기에서 월별 사용량을 볼 수 있는 페이지를 만들어줘.S3 내보내기에서 고객별 분석을 제공합니다.
앱이 쿼리 결과를 고객별로 필터링하고 사용량 요약을 렌더링합니다.

AWS Athena 연결 방식

각 AWS Athena 연결은 단일 AWS 리전에 묶이며 선택적으로 workgroup과 쿼리 결과 위치를 지정합니다. AWS Athena를 연결하면 IAM 자격증명을 제공하고, Lovable의 connector gateway가 모든 요청에 서명합니다. 자격증명은 서버에 보관되며 게시된 앱에 노출되지 않습니다.

Lovable workspace 내에서는 다음이 가능합니다.

  • AWS Athena 연결을 여러 개 생성 가능
  • 각 연결은 특정 리전을 대상으로 하며 선택적으로 workgroup과 결과 위치를 지정
  • 각 연결마다 고유한 IAM 자격증명 사용
  • 단일 workspace 내 여러 프로젝트가 동일한 연결 공유 가능

이를 통해 환경(예: 프로덕션·스테이징 workgroup)을 분리하거나 팀별로 접근을 제한하기 쉽습니다.

AWS Athena는 안전한 자격증명 처리와 자동 요청 서명을 위해 Lovable의 gateway 아키텍처를 사용합니다. 인증 및 사용 제한 상세 내용은 Gateway-based connectors를 참고하세요.

AWS Athena 연결하기

Workspace adminsowners가 AWS Athena를 연결할 수 있습니다.

연결이 생성되면 workspace 내 모든 프로젝트에서 AWS Athena를 사용할 수 있습니다. 프로젝트에서 작업하는 누구든 Lovable 채팅에서 프로젝트를 연결해달라고 요청할 수 있습니다.

사전 준비

AWS Athena를 연결하기 전에 다음을 준비하세요.

  • S3에 데이터가 있고 Glue Data Catalog에 테이블이 정의된 AWS 계정
  • 아래에 나열된 Athena, Glue, S3 권한을 가진 IAM 사용자
  • Lovable workspace owner 또는 admin 역할

이 connector를 통해 실행되는 모든 쿼리는 AWS 계정에서 동작합니다. Athena는 각 쿼리가 스캔한 데이터 양에 따라 요금을 부과하며, AWS가 Lovable이 아닌 사용자에게 직접 청구합니다.

Step 1: Athena 접근 권한을 가진 IAM 사용자 생성하기

Lovable에서 연결을 설정하기 전에 AWS에서 필요한 최소 권한을 가진 IAM 사용자를 생성합니다. Athena에는 세 가지 접근 권한이 필요합니다. Athena API 자체, 테이블 정의가 있는 Glue Data Catalog, 데이터와 쿼리 결과를 보관하는 S3 버킷입니다.

AWS IAM 콘솔 열기

AWS IAM 콘솔로 이동해 Lovable에서 사용할 새 IAM 사용자를 생성하거나 기존 사용자를 사용합니다.

Athena 정책 연결하기

아래 권한으로 인라인 정책 또는 managed 정책을 생성해 연결합니다. YOUR-REGION, YOUR-ACCOUNT-ID, YOUR-WORKGROUP, YOUR-DATABASE, YOUR-DATA-BUCKET, YOUR-RESULTS-BUCKET을 실제 값으로 교체하세요.

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "AthenaQueries",
      "Effect": "Allow",
      "Action": [
        "athena:StartQueryExecution",
        "athena:StopQueryExecution",
        "athena:GetQueryExecution",
        "athena:GetQueryResults",
        "athena:GetWorkGroup",
        "athena:ListDatabases",
        "athena:ListTableMetadata"
      ],
      "Resource": [
        "arn:aws:athena:YOUR-REGION:YOUR-ACCOUNT-ID:workgroup/YOUR-WORKGROUP",
        "arn:aws:athena:YOUR-REGION:YOUR-ACCOUNT-ID:datacatalog/AwsDataCatalog"
      ]
    },
    {
      "Sid": "GlueCatalog",
      "Effect": "Allow",
      "Action": [
        "glue:GetDatabase",
        "glue:GetDatabases",
        "glue:GetTable",
        "glue:GetTables",
        "glue:GetPartition",
        "glue:GetPartitions"
      ],
      "Resource": [
        "arn:aws:glue:YOUR-REGION:YOUR-ACCOUNT-ID:catalog",
        "arn:aws:glue:YOUR-REGION:YOUR-ACCOUNT-ID:database/YOUR-DATABASE",
        "arn:aws:glue:YOUR-REGION:YOUR-ACCOUNT-ID:table/YOUR-DATABASE/*"
      ]
    },
    {
      "Sid": "ReadData",
      "Effect": "Allow",
      "Action": ["s3:GetObject", "s3:ListBucket"],
      "Resource": [
        "arn:aws:s3:::YOUR-DATA-BUCKET",
        "arn:aws:s3:::YOUR-DATA-BUCKET/*"
      ]
    },
    {
      "Sid": "ResultLocation",
      "Effect": "Allow",
      "Action": [
        "s3:GetObject",
        "s3:PutObject",
        "s3:GetBucketLocation",
        "s3:ListBucket"
      ],
      "Resource": [
        "arn:aws:s3:::YOUR-RESULTS-BUCKET",
        "arn:aws:s3:::YOUR-RESULTS-BUCKET/*"
      ]
    }
  ]
}

정책을 앱이 실제로 사용하는 workgroup, 데이터베이스, 버킷으로 범위를 제한하세요. 위에 표시된 테이블·객체 경로 이외에는 와일드카드(*) 리소스를 사용하지 마세요.

Athena는 Glue Data Catalog를 통해 테이블 정의를 확인하므로 Glue 권한이 필수입니다. 연결 자체는 성공하더라도 Glue 권한이 누락되면 쿼리가 실패하는 가장 흔한 원인이 됩니다.

이 정책은 Glue 접근을 단일 데이터베이스로 제한하며, 해당 데이터베이스에 쿼리를 실행하기에 충분합니다. 카탈로그의 모든 데이터베이스를 나열해야 한다면 arn:aws:glue:YOUR-REGION:YOUR-ACCOUNT-ID:database/*glue:GetDatabaseglue:GetDatabases를 부여하세요.

액세스 키 생성하기

IAM 사용자의 Security credentials 탭에서 액세스 키를 생성합니다. Access key IDSecret access key 모두 저장하세요. 다음 단계에서 필요합니다.

Secret access key는 한 번만 표시되며 비밀번호처럼 기능합니다. 안전하게 보관하고 저장소에 커밋하거나 공개적으로 공유하지 마세요. 분실 시 새 액세스 키 쌍을 생성해야 합니다.

자세한 내용은 AWS 문서의 Identity and access management in Athena를 참고하세요.

Step 2: AWS Athena를 Lovable에 연결하기

다른 IAM 자격증명을 사용해 여러 연결을 생성할 수 있습니다.

Connectors에서 AWS Athena 열기

Connectors → App connectors로 이동해 AWS Athena를 선택합니다.

연결 추가하기

Add connection을 클릭합니다.

연결 구성하기

  1. Display name: 예를 들어 Athena Prod처럼 연결 이름을 지정합니다. 이 이름은 Lovable 내부에서만 사용됩니다.
  2. AWS region: Athena workgroup이 있는 리전을 선택합니다. 기본값은 **US East (N. Virginia)**입니다.
  3. Access key ID: 이전 단계의 IAM access key ID를 붙여넣습니다.
  4. Secret access key: access key ID와 쌍을 이루는 IAM secret access key를 붙여넣습니다.
  5. Workgroup (선택): 쿼리가 실행될 Athena workgroup입니다. 기본값은 primary입니다.
  6. Query result location (선택): Athena가 쿼리 결과를 저장할 S3 경로입니다. 예: s3://my-bucket/athena-results/. workgroup에서 자체 결과 위치를 강제하는 경우 비워두세요.

이 연결에 접근할 수 있는 사람 선택하기

Who can access this connection 아래에서 workspace 내 누가 이 연결을 사용할 수 있는지 결정합니다.

  • Only you (기본): 연결을 생성한 사람만 사용할 수 있습니다.
  • Invite specific people: 명시적으로 추가된 workspace 멤버만 사용할 수 있습니다.
  • Invite entire workspace: Invite entire workspace를 클릭해 Lovable workspace 전체에 공개합니다.

자세한 내용은 Who can manage connections을 참고하세요.

연결하기

Connect를 클릭합니다. Lovable이 해당 리전의 workgroup을 조회해 자격증명을 검증합니다. 검증에 실패하면 키가 올바른지, IAM 정책에 workgroup에 대한 athena:GetWorkGroup이 포함되어 있는지 확인하세요.

연결이 완료되면 프로젝트에서 작업하는 누구든 Lovable 채팅에서 프로젝트를 AWS Athena에 연결해달라고 요청할 수 있습니다(구성된 connection-level access 기준). Lovable 앱은 S3의 데이터에 SQL 쿼리를 실행하고 결과를 활용할 수 있습니다.

제한사항

AWS Athena connector는 다음 작업을 지원하지 않습니다.

  • Athena 이외의 AWS 서비스 호출. gateway는 Athena API 작업만 전달하므로 이 연결을 통해 S3 객체를 직접 읽거나 Glue 리소스를 관리할 수 없습니다.
  • 연결한 IAM 정책의 권한 초과. 자격증명에 데이터, Glue Data Catalog, 결과 위치에 대한 접근 권한이 없으면 쿼리가 실패합니다.
  • 쿼리 동기 실행. Athena가 쿼리 처리를 완료한 후에만 결과를 사용할 수 있습니다.
  • 액세스 키 자동 교체. 교체하려면 IAM에서 새 액세스 키를 생성하고 Lovable 연결을 업데이트하세요.
  • 최종 사용자별 AWS 로그인. 각 연결은 연결된 모든 프로젝트가 공유하는 단일 IAM 자격증명을 나타냅니다.

AWS Athena 연결에서 프로젝트 연결 해제하기

Editors 이상은 연결 자체를 삭제하지 않고 특정 프로젝트만 연결에서 제거할 수 있습니다. 연결은 다른 프로젝트에서 계속 사용할 수 있습니다.

프로젝트 연결을 해제하려면 다음 단계를 따르세요.

Connectors 열기

Connectors를 열고 App connectors로 이동한 후 **AWS Athena**를 선택합니다.

연결 열기

관리할 연결을 엽니다.

프로젝트 선택하기

Linked projects 아래에서 연결을 해제할 프로젝트를 체크합니다.

확인하기

Unlink projects를 클릭하고 확인합니다.

연결 해제 후 해당 프로젝트는 이 연결을 통해 AWS Athena에 접근할 수 없습니다. 다시 AWS Athena가 필요하면 사용 가능한 연결에 프로젝트를 연결하면 됩니다.

AWS Athena 연결 삭제하기

Workspace admins와 owners가 AWS Athena 연결을 삭제할 수 있습니다. 다른 멤버는 본인이 생성했거나 명시적으로 접근 권한을 부여받은 연결만 삭제할 수 있습니다.

연결 삭제는 영구적이며 취소할 수 없습니다. 연결된 모든 프로젝트에서 자격증명이 제거되고, 이 연결을 사용하는 앱은 새 연결이 추가될 때까지 작동을 멈춥니다.

삭제 전에 Linked projects 섹션에서 현재 이 연결을 사용하는 프로젝트를 확인하세요.

연결을 삭제하려면 다음 단계를 따르세요.

Connectors 열기

Connectors를 열고 App connectors로 이동한 후 **AWS Athena**를 선택합니다.

연결 열기

제거할 연결을 엽니다.

연결된 프로젝트 검토하기

Linked projects 섹션을 검토합니다.

삭제하기

Delete this connection 아래에서 Delete를 클릭하고 확인합니다.

On this page