본문 바로가기

전체 글38

[Server] NCP Server에 도메인 등록하기 여러 대의 서버에 각각 어플리케이션을 배포하고 Nginx를 통해 로드 밸런서를 띄워 각 서버에 적절하게 트래픽을 분산하는 과정까지 완료되었습니다. 이 쯤 되었을 때 당연히 도메인을 등록하고 싶은 마음이 생기기 시작해서 실행에 옮겼습니다. 도메인은 가비아, 카페24, 닷홈 등의 업체에서 도메인을 구입할 수 있습니다. 사실 무료로 도메인을 발급받을 수 있는 사이트도 찾아볼 수 있었는데 위의 업체들에서 확인하면 할인을 많이 하는 도메인을 싼 가격에 부담없이 구입할 수 있습니다. 저는 가비아에 원하는 도메인이 할인중이기 때문에 가비아를 이용했습니다. 👉 NCP Global DNS로 도메인 등록하기 기존에 NCP에서 서비스하던 DNS 서비스는 20년 말부터 deprecated 되었고, 마이그레이션된 Global .. 2021. 5. 24.
[Server] Nginx를 이용해 로드밸런싱(Load Balancing) 구현하고 HTTPS 적용하기 현재 진행중인 프로젝트 shoe-auction은 지속적인 사용자 증가를 가정하고 진행하였기 때문에 확장성의 한계가 적은 Scale-out 방식의 확장을 채택하였다. 따라서 2개 이상의 WAS를 두고 있고, Session이나 Cahce 또한 외부 스토리지로 분리해 관리하도록 배포하는 과정을 모두 마쳤다. 이제 필요한 것은 로드 밸런싱을 통해 2개 이상의 어플리케이션 서버에 트래픽을 적절히 분산시켜주는 것이다. 사실 NCP의 Load Balancer나 AWS의 Elastic Load Balancing 등의 서비스를 이용한다면 간편하게 콘솔내에서 구현할 수 있고 여러 설정 또한 가능하지만 처음 해보는 작업이기 때문에 Nginx에 직접 설정하는 방법을 통해 구현해보았다 👉 Nginx 서버에 로드밸런싱 설정 우선.. 2021. 5. 24.
[Spring] Master/Slave DataSource 동적 라우팅 설정하기 현재 로컬에서 진행중이던 프로젝트가 배포 단계로 진입함으로써 DBMS 또한 테스트용 h2에서 RDS에 MySql을 올려 사용하는 방식으로 교체하였다. 현재 진행중인 프로젝트인 shoe-auction은 사용자가 지속적으로 증가함하며 많은 양의 트래픽이 발생한다는 가정하에 진행중이기 때문에 하나의 DB 서버로 모든 쓰기/읽기 작업이 집중된다면 쉽게 부하가 발생할 수 있다고 생각했다. 따라서 Master 서버 이외에 추가적으로 Replication된 Slave 서버를 두고 모든 읽기 작업(read-only)은 slave에게 향하게 함으로써 트래픽이 분산될 수 있도록 구현하였다. 그렇다면 기존에 오직 하나의 Datasource와 통신하던 Spring boot 애플리케이션이 읽기/쓰기 작업 별로 여러 Dataso.. 2021. 5. 5.
Spring Boot 프로젝트에서 FCM을 이용한 웹 푸시 구현하기 현재 진행중인 프로젝트 Shoe-Auction에 웹 푸시를 이용하여 본인이 등록한 거래가 성사되었을 때 알림을 받을 수 있는 기능을 구현하였다. 메세지 전송 플랫폼으로는 FCM을 사용하였다. FCM에 대한 내용과 구현 예제들은 공식 문서에 꽤 친절하게 설명되어 있기 때문에 간단한 설명과 구현 과정만 가볍게 포스팅 해보고자 한다. 🤔 FCM은 무엇이고 왜 사용할까? FCM(Firebase Cloud Messaging)이란 메세지를 안정적으로 클라이언트 인스턴스에게 전송할 수 있는 교차 플랫폼 메시징 솔루션이다. 이러한 서비스는 현재 무료로 제공되고 있기 때문에 부담없이 적용해보기 좋다. 전체적인 흐름을 보면 애플리케이션 서버(또는 GUI)에서 전송된 메세지가 클라이언트에게 직접 전송되는 것이 아니라 FCM.. 2021. 5. 4.