CRM 이벤트 내보내기 (S3)
플레어레인에서 발생한 메시지 발송·전달·클릭 등의 crm 이벤트를 매일 고객사의 amazon s3 버킷으로 자동 내보내는 기능입니다 내보낸 데이터는 parquet 형식으로 저장되므로, 사내 데이터 웨어하우스나 bi 도구로 적재하여 캠페인 성과를 정밀하게 분석할 수 있습니다 설정은 최초 한 번만 진행하면 됩니다 고객사 aws 계정에서 iam role을 생성하여 플레어레인에 쓰기 권한을 위임한 뒤, 플레어레인 콘솔에서 대상 버킷과 권한 정보를 입력하면 다음 날부터 자동으로 데이터가 적재됩니다 본 가이드는 이 한 번의 설정 절차를 순서대로 안내합니다 동작 방식 항목 내용 실행 주기 매일 kst 03 00 자동 실행 (수동 실행은 지원하지 않습니다) 대상 기간 프로젝트 timezone 기준 직전일 00 00 24 00 (기본값 asia/seoul ) 대상 스토리지 amazon s3 (현재 gcs, azure blob 등 타 클라우드는 지원하지 않습니다) 파일 형식 parquet (snappy 압축) 인증 방식 aws sts cross account assumerole externalid 로 프로젝트 id를 검증하여 confused deputy 공격을 방지합니다 내보낸 파일은 아래 경로 규칙으로 저장됩니다 s3 //\<bucket>/\<prefix>/\<yyyy mm dd>/\<yyyymmddhhmmss> part \<nnn> parquet // e g s3 //my flarelane export/crm/2026 05 14/20260515030412 part 001 parquet 연동 가능한 이벤트 타입 각 이벤트 스키마에 대한 정확한 정의는 crm 이벤트 스키마 docid\ z wdogoifrvj qoybnc4p 를 참고하세요 설정 시 아래 목록 중 내보낼 이벤트를 자유롭게 선택하실 수 있습니다(최소 1개 이상 필수) 선택하지 않은 타입의 이벤트는 내보내기 대상에서 제외됩니다 카테고리 이벤트 타입 푸시 (push) push sent , push failed , push clicked 문자 (sms) sms sent , sms failed , sms delivered , sms undelivered 카카오 알림톡 kakaoalimtalk sent , kakaoalimtalk failed , kakaoalimtalk delivered , kakaoalimtalk undelivered 카카오 브랜드메세지 kakaofriendtalk sent , kakaofriendtalk failed , kakaofriendtalk delivered , kakaofriendtalk undelivered 이메일 (email) email sent , email failed , email delivered , email opened , email clicked , email complaint 인앱 메시지 (in app message) iam displayed , iam clicked , iam closed 사전 준비 사항 설정을 시작하기 전에 아래 항목을 준비해 주세요 항목 설명 amazon s3 버킷 내보낸 데이터를 적재할 버킷입니다 crm 이벤트 전용으로 별도 버킷을 사용하시는 것을 권장합니다 cloudformation 스택 / iam role 생성 권한 고객사 aws 계정에서 2단계를 수행하기 위해 필요합니다 프로젝트 id 콘솔 프로젝트 설정 화면에서 확인하실 수 있습니다 iam role trust policy의 externalid 조건값으로 사용됩니다 flarelane glue role arn flarelane에서 별도로 전달해 드리는 값입니다 iam role trust policy의 principal 로 사용됩니다 kms 키 arn (선택) 대상 버킷이 sse kms(고객 관리형 키)로 암호화된 경우에만 필요합니다 sse s3 기본 암호화라면 불필요합니다 설정 절차 1단계 s3 버킷 준비 고객사의 aws 계정에서 내보내기 대상 s3 버킷을 준비합니다 기존 버킷을 재사용하셔도 무방하지만, crm 이벤트 전용으로 별도 버킷을 사용하시는 것을 권장합니다 2단계 iam role · policy 생성 flarelane의 glue job이 고객사 s3 버킷에 데이터를 쓰고, 적재 후 임시 파일을 정리(rename·cleanup)할 수 있도록 iam role과 권한을 생성합니다 아래 두 방법 중 하나를 선택하세요 방법 a — cloudformation 템플릿 (권장) 위의 iam role yaml 템플릿을 다운로드합니다 aws 콘솔의 cloudformation → create stack → with new resources (standard) 로 이동하여 upload a template file 로 iam role yaml 을 업로드합니다 아래 파라미터를 입력합니다 파라미터 설명 projectid flarelane 프로젝트 id trust policy의 externalid 로 사용됩니다 destinationbucketname 1단계에서 준비한 s3 버킷 이름 flarelanegluerolearn flarelane에서 전달해 드리는 glue role arn kmskeyarn (선택) 버킷이 sse kms로 암호화된 경우에만 입력합니다 sse s3 이면 비워 둡니다 마지막 검토 단계에서 "i acknowledge that aws cloudformation might create iam resources with custom names" 체크박스를 선택한 뒤 스택을 생성합니다 스택 생성이 완료되면 outputs 탭에서 rolearn 값을 복사합니다 3단계 콘솔 입력에 사용합니다 (sse kms 버킷만 해당) outputs 탭의 kmskeypolicystatement json을 복사하여, 해당 kms 키의 key policy 에 statement로 추가합니다(kms 콘솔 → 고객 관리형 키 → 키 선택 → 키 정책 편집) 교차 계정 kms 접근은 iam 권한만으로는 부족하며, 키 정책에서도 이 role을 principal 로 허용해야 합니다 템플릿이 생성하는 role 이름은 flarelane crm export \<projectid> 이며, s3 권한( s3\ putobject / s3\ getobject / s3\ deleteobject / s3\ listbucket )과 kmskeyarn 입력 시 kms 권한( kms\ generatedatakey / kms\ decrypt )을 포함합니다 방법 b — 수동 설정 cloudformation을 사용하지 않고 콘솔에서 직접 구성하는 경우 아래 순서를 따릅니다 (1) iam role 생성 aws 콘솔의 iam → roles → create role 로 이동합니다 trusted entity type 으로 custom trust policy 를 선택하고, 아래 json을 그대로 붙여 넣습니다 두 군데의 플레이스홀더를 실제 값으로 치환해 주세요 \<flarelane glue role arn> flarelane에서 전달해 드리는 값 \<flarelane project id> flarelane 프로젝트 id { "version" "2012 10 17", "statement" \[ { "effect" "allow", "principal" { "aws" "\<flarelane glue role arn>" }, "action" "sts\ assumerole", "condition" { "stringequals" { "sts\ externalid" "\<flarelane project id>" } } } ] } role 이름을 자유롭게 입력하고(예 flarelane crm export role ) 생성합니다 (2) s3 인라인 정책 부여 생성한 role의 상세 화면에서 add permissions → create inline policy 를 선택합니다 정책 편집기를 json 모드로 전환하고 아래 json을 붙여 넣습니다 \<destination bucket> 을 1단계에서 준비한 버킷 이름으로 치환해 주세요 { "version" "2012 10 17", "statement" \[ { "effect" "allow", "action" \[ "s3\ putobject", "s3\ getobject", "s3\ deleteobject", "s3\ listbucket" ], "resource" \[ "arn\ aws\ s3 \<destination bucket>", "arn\ aws\ s3 \<destination bucket>/ " ] } ] } 정책 이름을 자유롭게 입력하고(예 flarelane crm export policy ) 저장합니다 (3) kms 권한 부여 — sse kms 버킷만 해당 대상 버킷이 kms 고객 관리형 키로 암호화되어 있다면, 위 정책 외에 아래 두 가지를 추가로 설정해야 합니다 role에 kms 권한( kms\ generatedatakey , kms\ decrypt )을 부여하고 resource 를 해당 키 arn으로 지정합니다 해당 kms 키의 key policy 에도 이 role을 principal 로 허용하는 statement를 추가합니다 교차 계정 kms 접근은 iam 권한만으로는 부족하며 키 정책 허용이 반드시 함께 필요합니다 중요 trust policy의 sts\ externalid 조건은 반드시 본인 프로젝트 id와 정확히 일치해야 합니다 조건이 없거나 값이 다르면 flarelane의 assumerole 호출이 거부되어 내보내기가 실패합니다 3단계 flarelane 콘솔에서 설정 입력 flarelane 콘솔의 프로젝트 설정 → crm 이벤트 내보내기 화면에서 아래 값을 입력합니다 필드 설명 활성화 여부 내보내기 동작 켜기/끄기 s3 버킷 이름 1단계에서 준비한 버킷 이름 s3 경로 prefix 버킷 내 경로 prefix (선택) iam role arn 2단계에서 생성한 role의 arn (방법 a는 스택 outputs의 rolearn ) 내보낼 이벤트 타입 위 연동 가능한 이벤트 타입 중 선택 저장 후 활성화 토글을 켜면 다음 kst 03 00부터 자동으로 내보내기가 시작됩니다 4단계 동작 확인 활성화한 다음 날 kst 03 00 03 30 사이에 첫 실행이 이루어집니다 같은 날 오전 중에 아래를 확인해 주세요 대상 s3 버킷 안에 \<prefix>/<어제 날짜>/ 디렉터리가 생성되었는지 확인합니다 디렉터리 안에 \<yyyymmddhhmmss> part 001 parquet 형식의 파일이 존재하는지 확인합니다 parquet 파일을 열어 직전일 발생 이벤트가 정상적으로 적재되었는지 점검합니다 디렉터리가 생성되지 않았다면 아래 항목을 확인해 주세요 직전일에 발생한 해당 이벤트가 실제로 존재하는지 (없다면 빈 디렉터리도 생성되지 않습니다) 선택한 내보낼 이벤트 타입 필터에 해당 이벤트가 포함되어 있는지 iam role trust policy의 sts\ externalid 값이 본인 프로젝트 id와 일치하는지 iam policy의 resource arn이 실제 버킷 이름과 일치하는지 (sse kms 버킷인 경우) kms 키의 key policy에 export role이 principal 로 허용되어 있는지 위 항목이 모두 정상임에도 데이터가 적재되지 않는다면 flarelane 고객 지원팀으로 문의해 주세요 자주 묻는 질문 q 기능 활성화 전의 과거 데이터를 한 번에 받을 수 있나요? 지원하지 않습니다 활성화 시점 이후의 "직전일" 데이터부터 일일 단위로 적재됩니다 과거 기간의 데이터가 필요하시면 flarelane 고객 지원팀으로 문의해 주세요 q 어제 데이터가 비어 있어요 다음 두 가지 중 하나일 가능성이 높습니다 해당 일자에 발생한 crm 이벤트가 없는 경우 (이 경우 s3 디렉터리 자체가 생성되지 않습니다) 발생한 이벤트의 타입이 내보낼 이벤트 타입 필터에 포함되지 않은 경우 q s3 경로 prefix를 도중에 변경하면 어떻게 되나요? 변경한 시점 이후의 데이터부터 새 prefix 경로에 적재됩니다 기존 prefix 경로에 저장된 파일은 그대로 유지되며, flarelane이 자동으로 이동시키지 않습니다 q iam role arn을 잘못 입력했어요 그 일자의 데이터가 자동으로 다시 적재되나요? 자동 복구되지 않습니다 arn을 올바른 값으로 수정해 저장하시면 다음 날부터 정상적으로 적재됩니다 누락된 일자의 데이터가 필요하시면 flarelane 고객 지원팀으로 문의해 주세요 q 한 프로젝트에서 여러 개의 s3 버킷으로 동시에 내보낼 수 있나요? 현재는 프로젝트당 1개의 대상 버킷만 설정 가능합니다