메시지 수신
Pub/Sub에서 제공하는 서브스크립션 유형에 따라 메시지 수신 방법을 설명합니다.
Object Storage 서브스크립션 유형은 kr-central-2에서만 지원됩니다. 각 리전별 지원되는 유형을 확인해 주세요.
서브스크립션 유형이 Pull
인 경우
Pub/Sub 서비스에서 서브스크립션 유형을 Pull
로 생성한 경우, 사용자는 서브스크립션을 통해 메시지를 수신한 후 확인 응답을 할 수 있습니다.
서브스크립션 생성에 대한 자세한 설명은 서브스크립션 생성을 참고하시기 바랍니다.
API를 통한 메시지 수신 요청을 위해서는 카카오클라우드 콘솔 > 사용자 프로필 > 액세스 키 탭에서 액세스 키 ID와 보안 액세스 키를 발급받아야 합니다.
주요 개념
주요 개념 | 설명 |
---|---|
서브스크립션 유형 | Pull : 사용자가 메시지 전송을 요청 |
응답 대기 시간 | 메시지 확인 응답까지 대기하는 시간 |
확인 응답 | 응답 대기 시간 안에 메시지 확인 처리(ack)를 하지 않는 경우, 메시지 재전송 |
메시지 수신하기
서브스크립션 유형이 Pull
인 경우, 콘솔 또는 API를 통해 메시지를 수신할 수 있습니다.
토픽에 게시된 메시지를 콘솔 상 수신 테스트를 통해 확인할 수 있습니다.
수신 테스트를 하기 위해서는 사전에 토픽에서 메시지를 게시해야 합니다. 자세한 내용은 메시지 게시를 참고하시기 바랍니다.
-
카카오클라우드 콘솔 > Analytics > Pub/Sub 메뉴로 이동합니다.
-
토픽 메뉴에서 수신 테스트할 서브스크립션이 있는 토픽을 선택합니다.
-
메시지 탭에서 수신 테스트 항목을 설정 후, [메시지 가져오기] 버튼을 클릭합니다.
No 구분 설명 ① 서브스크립션 선택 서브스크립션 선택 박스 ② 가져올 메시지 건수 가져올 메시지 건 수 ③ 메시지 내용 게시된 메시지 본문의 내용, 없는 경우 -으로 노출 ④ 게시 시간 메시지가 게시된 시간 ⑤ 속성 게시된 메시지의 속성값, 속성 보기를 클릭해 Key, Value 확인 가능 ⑥ 재처리 횟수 해당 메시지가 재처리된 횟수 ⑦ 확인 메시지 응답 대기 시간에 따른 확인 상태 -
수신 테스트 목록에서 메시지 내용 또는 속성 보기를 클릭해 상세한 메시지 내용을 확인할 수 있습니다.
메시지 가져오기는 서브스크립션 상세 페이지의 메시지 탭에서도 수행할 수 있습니다.
서브스크립션 유형이 Push
인 경우
서브스크립션 유형을 Push
로 선택한 경우, 메시지를 수신하는 방법은 다음과 같습니다.
주요 개념
주요 개념 | 설명 |
---|---|
서브스크립션 유형 | Push : Pub/Sub에서 사용자가 설정한 Endpoint로 메시지 전송 |
엔드포인트 URL | 토픽에 게시된 메시지를 받을 엔드포인트 서버 URL |
응답 대기 시간 | 메시지 확인 응답까지 대기하는 시간 |
확인 응답 | 응답 대기 시간 안에 사용자가 등록한 엔드포인트에서 HTTP Response가 없는 경우, 메시지 재전송 |
Push
서브스크립션 유형을 사용하는 경우, 카카오클라우드 퍼블릭 IP를 사용한 엔드포인트 URL로만 Message Push를 할 수 있습니다.
보안 그룹 설정하기
Push 유형의 서브스크립션을 사용하는 경우, 엔드포인트 서버에 메시지를 전송하기 위한 보안 그룹 설정이 필요합니다.
- 설정한 엔드포인트 URL에 연결된 리소스의 보안 그룹에 인바운드 규칙을 설정해야 합니다.
- Any로 대역을 설정해도 Push를 할 수 있지만, 보안에 취약하기 때문에 Source IP를 지정하는 것을 권장합니다.
보안을 위해 22, 1433, 1521, 3306, 3389, 6379, 27017 포트는 Push 엔드포인트로 설정할 수 없습니다.
Default-Topic의 Push 서브스크립션을 사용하기 위한 보안 그룹 오픈 Source IP 대역
kr-central-1
Source IP : 210.109.79.7 - 210.109.79.16kr-central-2
Source IP : 61.109.235.11
사용자 Topic의 Push 서브스크립션을 사용하기 위한 보안 그룹 오픈 Source IP 대역
kr-central-1
Source IP : 210.109.60.15, 210.109.60.92, 210.109.60.144, 210.109.61.176, 210.109.62.134kr-central-2
Source IP : 61.109.238.137, 61.109.238.107, 61.109.237.249, 61.109.238.114, 61.109.238.74, 61.109.236.65
보안 그룹에 대한 자세한 설명은 보안 그룹 생성 및 관리 문서를 참고하시기 바랍니다.
- 카카오클라우드 콘솔 > Beyond Networking Service > VPC 메뉴로 이동합니다.
- 보안 그룹 메뉴를 클릭한 후, 인바운드 규칙을 설정할 보안 그룹을 선택합니다.
- 엔드포인트 URL에 연결된 리소스의 보안 그룹을 선택해야 합니다.
- 인바운드 규칙 탭의 [인바운드 규칙 관리] 버튼을 클릭한 후, 보안 그룹에 인바운드 규칙을 설정합니다.
메시지 수신하기
토픽에 메시지가 게시되면 설정한 엔드포인트에 아래와 같은 포맷으로 메시지가 수신되며, Push 엔드포인트에서 메시지를 수신하려면 Pub/Sub에서 보내는 POST 요청을 처리해야 합니다.
"subscription": string
"messages": [
{
"message": {
"data": string,
"attributes": map[string][]string
"messageId": string,
"publishTime": time (RFC3339)
}
},
{
"message": {
"data": string,
"attributes": map[string][]string
"messageId": string,
"publishTime": time (RFC3339)
}
}
]
서브스크립션 유형이 Object Storage
인 경우
Pub/Sub 서비스에서 서브스크립션 유형을 Object Storage
로 생성한 경우 사용자는 서브스크립션을 통해 메시지를 Object Storage 버킷으로 전송할 수 있습니다.
사전에 Object Storage 버킷이 생성되어 있어야 하며, Pub/Sub 서비스 에이전트가 해당 버킷에 쓰기 권한을 가지고 있어야 합니다.
Pub/Sub 서비스 에이전트는 Pub/Sub 서비스 시작 시 자동으로 생성되며, 자세한 내용은 서비스 에이전트 계정 문서를 참고하시기 바랍니다.
주요 개념
항목 | 설명 |
---|---|
버킷 | 메시지가 저장 될 Object Storage의 버킷 ⚠️ 사전에 Object Storage에 버킷 생성 및 Pub/Sub 서비스 에이전트의 쓰기 권한이 부여되어 있어야 합니다. |
파일 형식 | 버킷에 저장되는 출력 파일의 형식 {버킷 이름}/{YYYY/MM/DD/HH}/{UUID} - {YYYY/MM/DD/HH} : 메시지 게시 일시 - 시간{HH} : UTC 기준 출력 파일 예시 2024/11/19/04/UUID |
파일 Prefix(선택) | 설정 시 모든 출력 파일에 Prefix를 포함 {버킷 이름}/{Prefix 경로}/{YYYY/MM/DD/HH}/{Prefix 명}{UUID} Prefix 설정 예시 - 파일명 설정 시 : pubsub_ 2024/11/19/04/pubsub_UUID - 파일 경로+파일명 설정 시 : pubsub/message_data/test_ pubsub/message_data/2024/11/19/04/test_UUID |
파일 Suffix(선택) | 설정 시 모든 출력 파일에 Suffix를 포함 {버킷 이름}/{YYYY/MM/DD/HH}/{UUID}{Suffix 명} Suffix 설정 예시 - 파일명 설정 시 : _pubsub 2024/11/19/04/UUID_pubsub - 파일명+확장자 설정 시 : _pubsub.log 2024/11/19/04/UUID_pubsub.log |
파일 배치 처리 최대 지속 시간 | 설정한 시간 주기로 파일을 버킷에 저장 |
내보내기 채널 개수 | Object Storage로 메시지를 내보내기 위한 채널 개수 |
메시지 수신하기
메시지는 멀티 파트로 버킷에 업로드됩니다.
파일 업로드의 오류 혹은 취소로 인해 콘솔에서 볼 수 없는 멀티 파트가 저장될 수 있습니다. Lifecycle 설정을 생성하여 완료되지 않은 멀티 파트 업로드를 영구적으로 삭제하는 것을 권장합니다.
Object Storage 파일 업로드 예시
Object Storage 파일 업로드 예시
Object Storage 서브스크립션 유형의 경우에는 메시지를 게시할 때 메시지 내용(data) 을 포함해야 합니다.
메시지 내용(data) 만 파일에 저장되며 메시지 속성(attribute)은 파일에 저장되지 않습니다.
내보내기 채널
Object Storage 서브스크립션 생성과 동시에 버킷으로 메시지를 전송해 주는 내보내기 채널이 자동으로 활성화 됩니다.
(*내보내기 채널 활성화/비활성화 설정은 현재 콘솔에서만 지원됩니다.)
내보내기 비활성화 정책
내보내기 채널을 비활성화 할 경우 Object Storage로의 전송이 중지됩니다. 단, 중지 시점에 남아있는 미처리 메시지의 경우 멀티 파트 업로드 방식으로 인해 Object Storage로 전송됩니다.
버킷 권한이나 버킷이 존재하지 않는 등의 문제가 발생될 경우 내보내기 채널이 자동으로 비활성화 됩니다.
아래와 같은 절차 후 다시 [내보내기 시작]을 실행해 주세요.
- Object Storage 서브스크립션 상태가
InvalidBucket
,Unauthorized
등의 경우, 내보내기 채널이 비활성화 됨
InvalidBucket
: 신규 버킷 생성 후 해당 서브스크립션 버킷 정보 수정Unauthorized
: 신규 버킷으로 변경 혹은 기존 버킷 권한 변경
- 사용자가 문제를 해결 후 서브스크립션 상태가 다시
Active
로 변경되었는 지 확인 - 서브스크립션 상세 페이지로 이동하여 [내보내기 시작] 실행을 통해 내보내기 채널을 다시 활성화