1편을 보고오는 게 AWS 서버 구축 시리즈의 포스팅을 이해하는 데 도움 된다.
이전에는 GCP(Google Cloud Platform) 를 사용하여 서버를 유지했었다. 그런데, 사용량이 많지 않음에도 불구하고 호출이 지연되거나 하는 등의 문제가 발생했다.
기존의 사용량으로 보아 AWS Lambda 의 무료 버전을 사용할 수 있다고 판단하였다. 이에 비용적인 측면의 부담을 줄이기 위해, 성능을 조금 포기하더라도 무료 비용인 서비스들을 연결하여 사용하는 것을 결정하였다.
일단 같은 무료 서비스이면서, GCP 의 성능보다 더 나은 것을 찾아보았다. (실제로 나은지는 모르겠음 ..)
- 데이터베이스: Neon (무료)
- 백엔드: AWS Lambda (무료)
- API 엔드포인트: Lambda 함수 URL (무료)
이미 GCP 무료버전이 성능이 별로라는 것을 경험했기에, 위와 같은 구조로 새롭게 진행할 예정이다.
Neon 의 가격 정책

서버리스의 컴퓨팅 시간 개념
기존의 RDS 와 같은 가상 서버는 우리가 사용하든 안 하든, 24시간 내내 켜져 있으면서 계속 '시간'을 소모한다. Neon 과 같은 서버리스 서비스는 사용한 만큼만 지불 하는 방식이다. 전기를 쓴 만큼만 계량기가 돌아가는 것과 같다.
사용한 컴퓨팅 시간 = (사용한 CU의 양) X (사용한 시간) 이다.
CU (Compute Unit) 은 CPU 와 RAM 을 합친 '처리 능력의 단위' 이다. CU 가 높을수록 더 강력한 성능을 낸다.
아무 요청이 없을 때, Neon 데이터베이스는 아무런 요청을 처리하지 않으므로, 스스로 '일시 정지' 상태가 된다. 이때 사용한 CU 의 양이 0이다. 따라서, 사용하지 않을 때는 컴퓨팅 시간이 차감되지 않는다.
Neon DB 환경설정하기
1. Neon DB 에 로그인하여 회원가입 한다.
Neon Serverless Postgres — Ship faster
The database you love, on a serverless platform designed to help you build reliable and scalable applications faster.
neon.com
2. 프로젝트 설정을 진행한다.
이때 Region 은 꼭 AWS 서비스 지역과 가장 가까운 지역으로 설정한다. 나의 경우 AWS 의 위치를 한국으로 설정할 예정이기 때문에, Neon 은 선택지 중 한국과 가장 가까운 Singapore 로 선택했다.

3. 이제 DB 생성이 완료되었다.
우측 상단의 Connect 버튼을 클릭하여, DB정보를 확인하자.

4. DB 정보는 Conenction String 부분에 적혀있다.
해당 정보를 Spring 의 application.properties 에 작성해야 한다. 이 내용은 남들에게 공개하면 안되는 내용이니 유의하자.

IntelliJ 에 DB 연결하기
1. 위 Connect 의 내용이 아래와 같이 나타날 것이다.
postgres://<user>:<password>@<host>:<port>/<dbname>
- Host: <host> 부분의 주소를 입력한다. (예: ep-proud-king-a1b2c3d4.ap-southeast-1.aws.neon.tech)
- Port: <port> 부분의 숫자를 입력한다. (보통 5432)
- User: <user> 부분의 사용자 이름을 입력한다.
- Password: <password> 부분의 비밀번호를 입력한다.
- Database: <dbname> 부분의 데이터베이스 이름을 입력한다.

2. SSL 설정 변경
상단의 Advanced > sslmode > Require 로 변경해준다.
