본문으로 건너뛰기
김신건의 로그

[AWS] Amazon Pinpoint: EoS & End User Messaging 마이그레이션

· 수정 · 📖 약 3분 · 1,131자/단어 #aws #cloud #pinpoint #messaging #sms #email #push #end-of-support
Amazon Pinpoint, AWS Pinpoint, Pinpoint, AWS End User Messaging, SMS 전송, 고객 참여 서비스, customer engagement

정의

Amazon Pinpoint 는 AWS 의 고객 참여 (customer engagement) 플랫폼 이었음. 이메일, SMS, 푸시 알림, 음성 통화를 통합 채널로 발송하고 세그먼트/캠페인/저니로 조직화. 2024-11 End of Support 발표, 2026-10-30 종료 예정.

End of Support 타임라인 (핵심)

CAUTION

2026-10-30 이후 Pinpoint 콘솔 접근/주요 기능 사용 불가. 지금 마이그레이션 계획 필수.

시기이벤트
2024-11End of Support 공식 발표
2025신규 계정 접수 중단, 마이그레이션 가이드 배포
2026-10-30콘솔 접근 종료, Endpoints/Segments/Campaigns/Journeys/Analytics 종료

무엇이 종료되고 무엇이 남는가

종료되는 것 (2026-10-30)

  • Pinpoint 콘솔 UI
  • Endpoints - 사용자별 채널 프로필 관리
  • Segments - 오디언스 타겟팅
  • Campaigns - 예약 발송
  • Journeys - 다단계 워크플로 (트리거 -> 이메일 -> 대기 -> SMS 등)
  • Analytics - 발송/오픈/클릭 대시보드
  • Machine Learning 모델 - 추천, 이탈 예측

남는 것 (계속 유지)

  • SMS v2 API - AWS End User Messaging SMS 로 이관
  • Voice v2 API - AWS End User Messaging Voice
  • Push API - AWS End User Messaging Push
  • OTP API - OTP 검증
  • Phone Number 관리 - 발신 번호 (long code, short code, TFN)

즉, 로우 레벨 채널 API 는 이름만 바뀌어 유지. 상위 오케스트레이션 (segment/campaign/journey) 은 사라짐.

마이그레이션 매핑

Pinpoint 에서 하던 것마이그레이션 대상
Pinpoint SMS 발송AWS End User Messaging SMS
Pinpoint Voice 발송AWS End User Messaging Voice
Pinpoint Push 알림AWS End User Messaging Push
Pinpoint OTPAWS End User Messaging OTP
Pinpoint 이메일Amazon SES (Simple Email Service)
Endpoints/Segments 관리자체 DB (DynamoDB / RDS) + 앱 로직
Campaigns (예약 발송)EventBridge Scheduler + Lambda
Journeys (워크플로)Step Functions + End User Messaging
Analytics (open/click)Amazon SES event destinations + Kinesis + BI
Predictive MLSageMaker (자체 학습)

AWS End User Messaging

포지션: Pinpoint 의 channel API 를 계승한 새 서비스군.

End User Messaging SMS

import boto3
sms = boto3.client('pinpoint-sms-voice-v2')  # API 는 여전히 v2

response = sms.send_text_message(
    DestinationPhoneNumber='+821012345678',
    OriginationIdentity='+18005551234',   # 미리 발급받은 발신 번호
    MessageBody='주문이 배송 시작되었습니다',
    MessageType='TRANSACTIONAL',   # or PROMOTIONAL
    ConfigurationSetName='my-config-set'
)

기능:

  • 200+ 국가 SMS 발송
  • Long/Short code, 10DLC, TFN, Sender ID
  • Two-way SMS (수신)
  • MMS (일부 국가)
  • Delivery reports -> Kinesis / SNS / CloudWatch
  • Opt-out 자동 처리
  • 국가별 요금

End User Messaging Push

  • APNs (iOS), FCM (Android), ADM (Kindle), Baidu
  • 발송 API 직접 호출 (오케스트레이션은 직접)

End User Messaging Voice

  • TTS (Polly 통합) 또는 사전 녹음
  • OTP 음성 전달
  • 국제 발신

이메일: Amazon SES

Pinpoint 이메일은 SES 로 마이그레이션.

import boto3
ses = boto3.client('sesv2')

ses.send_email(
    FromEmailAddress='no-reply@example.com',
    Destination={'ToAddresses': ['user@example.com']},
    Content={
        'Simple': {
            'Subject': {'Data': '주문 확인'},
            'Body': {'Html': {'Data': '<h1>주문이 접수되었습니다</h1>'}}
        }
    },
    ConfigurationSetName='transactional'
)

SES 주요 기능:

  • Transactional / marketing 이메일
  • SPF / DKIM / DMARC
  • Reputation dashboard
  • Event destinations -> KDS / EventBridge
  • Suppression list
  • Sending quota (샌드박스 -> 프로덕션 승인)
  • Configuration sets
  • 템플릿 (SES Templates)

캠페인 / 저니 대체 아키텍처

flowchart TB
    subgraph Trigger[트리거]
        Time["EventBridge Scheduler<br/>(cron)"]
        Event["앱 이벤트<br/>(주문 완료 등)"]
    end

    Trigger --> SF["Step Functions<br/>(저니 워크플로)"]

    subgraph Journey["예: Cart Abandonment 저니"]
        S1["1. 즉시 SMS 전송"]
        S2["2. 1시간 대기"]
        S3["3. 이메일 전송"]
        S4["4. 24시간 대기"]
        S5["5. 최종 할인 이메일"]
    end

    SF -.-> S1 -.-> S2 -.-> S3 -.-> S4 -.-> S5

    S1 --> EUM["End User Messaging SMS"]
    S3 --> SES["Amazon SES"]
    S5 --> SES

    Analytics["Analytics<br/>(open/click)"] -.-> Kinesis
    SES --> Kinesis[Kinesis]
    Kinesis --> S3D[("S3 이벤트 저장")]
    S3D --> Athena[Athena SQL 대시보드]

Endpoints/Segments 대체:

  • 사용자 프로필 저장: DynamoDB 또는 RDS
  • Segment 조회: 프로필 DB 에 SQL / query
  • Personalization: 자체 로직 or SageMaker

OTP (One-Time Password)

Pinpoint OTP API 는 그대로 유지 (End User Messaging).

sms.send_destination_number_verification_code(
    DestinationPhoneNumber='+821012345678',
    DestinationCountryParameters={},
    OriginationIdentity='+18005551234',
    ConfigurationSetName='otp-config'
)

# 검증
sms.verify_destination_number(
    DestinationPhoneNumber='+821012345678',
    VerificationCode='123456'
)

Pinpoint 를 계속 쓰던 사용자를 위한 체크리스트

  • 마이그레이션 계획 수립 (2026-10-30 데드라인)
  • 채널별 대체 서비스 결정 (SMS/Voice/Push -> End User Messaging, Email -> SES)
  • Endpoints/Segments 를 자체 DB 로 이관 (DynamoDB / RDS)
  • Campaigns -> EventBridge Scheduler + Lambda
  • Journeys -> Step Functions
  • Analytics -> SES/EUM event destinations + Kinesis + BI
  • Predictive 기능 -> SageMaker 자체 학습
  • IAM 정책 재검토 (mobiletargeting:* -> sms-voice:*, ses:*)
  • 발신 번호 (long/short code) 인벤토리
  • 인증/SPF/DKIM 재구성 (SES)

신규 프로젝트라면

Pinpoint 자체는 선택하지 말 것. 처음부터:

함정

CAUTION

2026-10-30 이후 Pinpoint 콘솔/기능 종료. 지금 마이그레이션 시작. 미룰수록 위험.

WARNING

Endpoints/Segments/Campaigns/Journeys 는 자동 마이그레이션 안 됨. 자체 앱으로 재구현.

IMPORTANT

mobiletargeting:* 권한 은 없어짐. 신규 IAM 은 sms-voice:*, ses:*, push:* (End User Messaging).

CAUTION

SES 는 처음 sandbox 모드 (본인 확인된 주소만 발송). 프로덕션 발송은 승인 요청 필요.

WARNING

SMS 국가별 규제 상이 (10DLC, TFN 등록 등). 발신 번호 종류 신중 선택.

IMPORTANT

A/B 테스트, Personalization 등 고급 기능은 자체 구현하거나 서드파티 (Braze, OneSignal, Iterable) 로.

관련 위키

이 글의 용어 (10개)
[AWS] Amazon RDS (Relational Database Service)cloud
정의 Amazon RDS (Relational Database Service) 는 AWS 가 관리하는 관계형 데이터베이스 서비스 입니다. 6개 엔진 (MySQL, PostgreS…
[AWS] Athena: 서버리스 SQL on S3cloud
정의 Amazon Athena 는 S3 에 있는 데이터를 서버 없이 SQL 로 쿼리 하는 서비스. 클러스터 프로비저닝, 스키마 로딩, 인덱스 생성 없이 데이터 파일 (Parque…
[AWS] EventBridge: 이벤트 버스, 스케줄러, partner sourcescloud
정의 EventBridge = AWS 의 통합 event bus. 옛 CloudWatch Events 의 후계. AWS service 이벤트 + custom 이벤트 + SaaS …
[AWS] IAM: User, Role, Policy, STScloud
정의 IAM (Identity and Access Management) = AWS 의 권한 관리 전부. User, Group, Role, Policy 로 구성. "누가 어떤 리소…
[AWS] Kinesis Data Streams: 실시간 스트리밍 수집cloud
정의 Amazon Kinesis Data Streams (KDS) 는 실시간 스트리밍 데이터를 대규모로 수집/저장하고, 여러 소비자가 각자 실시간 처리/재처리 할 수 있는 관리형…
[AWS] Lambda: 서버리스 함수, 트리거, 동시성cloud
정의 AWS Lambda = 서버리스 함수 실행. 이벤트 트리거 → 함수 실행 → 결과 / 비동기 처리. 서버 관리 0. 사용 상황 | 상황 | Lambda 적합성 | |---|…
[AWS] S3: object storage, storage classes, lifecyclecloud
정의 S3 = AWS 의 object storage. bucket + key + object. 11 9's durability (99.999999999%), 무한 확장. 2026…
[AWS] SNS: pub-sub 알림, fan-out 패턴cloud
정의 SNS (Simple Notification Service) = pub-sub 메시징. Publisher 가 Topic 에 발행하면 모든 Subscriber 에 동시에 fa…
[AWS] Step Functions: 워크플로 오케스트레이션cloud
정의 Step Functions = 서버리스 워크플로 오케스트레이션. Amazon States Language (ASL, JSON) 으로 상태 기계 정의. 각 단계의 재시도, 에…
[DB] DynamoDB: PK + SK, single-table design, GSI / LSIdatabase-internals
정의 DynamoDB 는 AWS 의 fully managed key-value + document NoSQL. low-latency, infinite scale, schemale…

이 개념을 다룬 위키 페이지 (1)

💬 댓글

사이트 검색 / 명령어

검색

스크롤 = 확대/축소 · 드래그 = 이동 · 0 = 원래 크기 · ESC = 닫기