Next.js와 AWS RDS 연동

소개

Next.js는 React 기반의 SSR(Server-Side Rendering) 웹 애플리케이션을 쉽게 구축할 수 있는 프레임워크입니다. AWS RDS(Relational Database Service)는 관계형 데이터베이스를 간편하게 구축, 운영할 수 있는 서비스입니다. 이번 블로그 포스트에서는 Next.js와 AWS RDS를 연동하는 방법에 대해 알아보겠습니다.

단계

1. AWS RDS 인스턴스 생성

먼저 AWS Management Console에 로그인하고 RDS 서비스로 이동합니다. 거기서 “DB 인스턴스 시작” 버튼을 클릭하여 새로운 RDS 인스턴스를 생성합니다. 필요한 설정을 입력하고 인스턴스를 시작합니다. 이때, RDS 인스턴스의 엔드포인트, 사용자 이름 및 비밀번호 등의 정보를 기록해둡니다.

2. Next.js 프로젝트 생성

Next.js 프로젝트를 생성하기 위해 적절한 폴더로 이동하고 다음 명령을 실행합니다:

npx create-next-app my-app

프로젝트를 생성한 후 해당 폴더로 이동합니다:

cd my-app

3. 필수 모듈 설치

Next.js와 AWS RDS를 연동하기 위해 필요한 모듈을 설치합니다. pg 모듈은 PostgreSQL 데이터베이스에 연결하기 위해 사용됩니다:

npm install pg

4. 데이터베이스 연결 설정

Next.js 프로젝트의 pages/api 폴더에 db.js 파일을 생성하고 다음 코드를 추가합니다:

import { Pool } from 'pg';

const pool = new Pool({
  user: 'your-username',
  host: 'your-rds-endpoint',
  database: 'your-database-name',
  password: 'your-password',
  port: '5432' // RDS 기본 포트
});

export async function query(text, params) {
  const client = await pool.connect();
  try {
    const result = await client.query(text, params);
    return result.rows;
  } finally {
    client.release();
  }
}

여기서 your-username, your-rds-endpoint, your-database-name, your-password 부분을 실제로 생성한 RDS 인스턴스의 정보로 바꿔줍니다.

5. API 엔드포인트 작성

데이터베이스에 액세스하기 위해 pages/api 폴더에 새로운 파일을 생성합니다. 원하는 이름으로 파일을 생성한 후 다음 코드를 작성합니다:

import { query } from '../db';

export default async function handler(req, res) {
  try {
    const results = await query('SELECT NOW() as time');
    res.status(200).json(results[0]);
  } catch (error) {
    res.status(500).json({ error });
  }
}

이 API 핸들러는 RDS에 연결하여 현재 시간을 가져오는 예제입니다.

6. 테스트

npm run dev 명령을 실행하여 Next.js 개발 서버를 시작합니다. 웹 브라우저에서 http://localhost:3000/api/your-api-endpoint에 접속하여 API를 테스트합니다. 이때, your-api-endpoint 부분은 위에서 작성한 API 엔드포인트의 이름으로 대체해야 합니다.

결론

이제 Next.js와 AWS RDS를 연동하는 방법에 대해 알아보았습니다. AWS RDS를 활용하여 데이터베이스를 구축하고 Next.js를 사용하여 데이터베이스에 액세스하는 강력한 애플리케이션을 구축할 수 있습니다. 자세한 내용은 Next.js와 AWS RDS의 공식 문서를 참조하시기 바랍니다.

#Next.js #AWSRDS