[AWS] 개인 URL Shortener 만들기
갑자기 URL Shortener 는 왜..?
이번 학기에 수강하는 수업은 거의 모두 개인 발표로만 이루어지는 방식이였습니다. Canva 로 제작한 발표 PPT 를 사용해, 빔 프로젝터에 연결된 다른 컴퓨터에서 발표해야 하는 상황이 자주 생겼는데, 이때 Canva 의 아주 긴 공개 보기 링크를 옮기기는 쉽지 않습니다.
그래서 주로 bit.ly 와 같은 URL 단축 서비스들을 사용했는데, 나만의 URL Shortener 서비스가 있으면 어떨까? 해서 만들어봤습니다.
구현 방식
원본 URL 을 특정 키와 매핑하여 특정 키에 대한 요청이 들어왔을 때, 원본 URL 로 리다이렉션 시키는 방식으로 구현했습니다.
이를 위해 2개의 Lambda Function, 키와 원본 URL 을 저장하기 위한 DynamoDB, 그리고 엔트리 포인트로 API Gateway 가 사용되었습니다.
정적 호스팅을 위해 S3 사용을 고민했으나, API Gateway 딴에서 이를 해결할 수 있다는 것을 새롭게 배울 수 있었습니다. 호스팅 해야하는 페이지는 JS 가 약간 가미된 HTML 로 구성되어 있었고, API Gateway의 Mock Integration 으로 해결하였습니다.
이는 특정 경로로 요청이 들어왔을 때, 직접 정의한 응답을 클라이언트로 전송할 수 있는 방식입니다. 이 방식을 사용해 불필요한 S3 비용을 줄이고, API Gateway 하나로 통합할 수 있다는 장점이 있습니다. 또한 HTTPS 를 통한 보안 연결도 자동으로 처리되고, 개인 도메인을 연결하는 과정에서도 이점을 가져갈 수 있었습니다.
결론
요즘 심심해서 만들어본 프로젝트들을 개인 도메인(caput.cloud) 에 연결하는 것에 재미가 붙었습니다.
URL Shortener, AWS 프로젝트 튜토리얼, 티스토리 블로그 등을 도메인에 잇고 있습니다.
하루만에 자기만의 서비스를 만들어보고 싶으신 분들께 추천하는 프로젝트입니다!
깃허브: https://github.com/caputdraconis050630/shrink.caput.cloud
댓글
이 글 공유하기
다른 글
-
[AWS IAM] 최소 권한 원칙을 지키는 IAM 사용자 생성기
[AWS IAM] 최소 권한 원칙을 지키는 IAM 사용자 생성기
2024.08.28 -
[AWS] Windows 개발 환경에서 Serverless Framework 오류 (Runtime.ImportModuleError)
[AWS] Windows 개발 환경에서 Serverless Framework 오류 (Runtime.ImportModuleError)
2024.03.10