이번 기술 블로그 포스트에서는 FastAPI와 AWS SNS를 연동하여 푸시 알림 서비스를 개발하는 방법에 대해 알아보겠습니다. 이를 통해 사용자에게 실시간으로 알림을 전송하는 기능을 구현할 수 있습니다.
AWS SNS란?
AWS SNS는 Amazon Simple Notification Service의 약자로, 푸시 알림이나 SMS 등 다양한 종류의 알림을 제공하는 서비스입니다. AWS SNS를 사용하여 FastAPI 애플리케이션에 푸시 알림 서비스를 연동할 수 있습니다.
1. AWS 계정 및 SNS 설정
SNS를 사용하기 위해서는 우선 AWS 계정이 필요합니다. 계정을 만들고 로그인한 후, AWS 콘솔로 이동하여 SNS 서비스를 선택합니다. SNS 대시보드에서 “Create Topic” 버튼을 클릭하여 새로운 토픽을 생성합니다. 이 토픽은 푸시 알림을 수신하는 데 사용됩니다.
2. FastAPI 프로젝트 설정
먼저 FastAPI 프로젝트를 설정해야 합니다. 필요한 패키지를 설치하기 위해 터미널에서 다음 명령을 실행하세요:
pip install fastapi boto3
3. AWS SNS 연동하기
FastAPI 애플리케이션에서 AWS SNS를 사용하려면 boto3
라이브러리를 사용해야 합니다. 다음과 같이 boto3
를 사용하여 SNS 클라이언트를 생성하세요:
import boto3
# AWS 인증 정보 설정
sns_client = boto3.client('sns',
region_name='us-west-2',
aws_access_key_id='YOUR_ACCESS_KEY',
aws_secret_access_key='YOUR_SECRET_ACCESS_KEY')
# 토픽 ARN 가져오기
topic_arn = 'YOUR_TOPIC_ARN' # SNS 토픽의 ARN을 입력하세요
4. 푸시 알림 보내기
이제 FastAPI 애플리케이션에서 푸시 알림을 보낼 수 있습니다. 예를 들어, /send_push
엔드포인트를 만들고 다음과 같은 코드를 작성하세요:
from fastapi import FastAPI
app = FastAPI()
@app.post("/send_push")
def send_push_notification(message: str):
sns_client.publish(TopicArn=topic_arn, Message=message)
return {"success": True}
위 코드에서는 /send_push
엔드포인트를 POST 요청으로 호출하면 message
파라미터를 받아와 해당 메시지를 푸시 알림으로 보냅니다. 성공적으로 알림이 전송되면 {"success": true}
를 반환합니다.
5. 푸시 알림 테스트
애플리케이션이 실행 중인지 확인하기 위해 터미널에서 다음 명령을 실행하세요:
uvicorn main:app --reload
FastAPI 서버가 실행된 후, API 클라이언트를 사용하여 /send_push
엔드포인트에 POST 요청을 보내세요. 예를 들어, {"message": "테스트 알림입니다"}
와 같은 JSON 형식의 요청을 보낼 수 있습니다. 이제 SNS 토픽이 설정된 사용자들에게 알림이 전송되어야 합니다.
마무리
이렇게하면 FastAPI와 AWS SNS를 연동하여 푸시 알림 서비스를 개발할 수 있습니다. FastAPI의 강력한 기능과 AWS SNS의 다양한 알림 기능을 조합하여 사용자에게 실시간 알림을 제공할 수 있습니다. 추가로 성능을 향상시키고 사용하기 쉽게하는 방법에 대해서는 공식 문서를 참조하세요.
#FastAPI #AWS #SNS #푸시알림