0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Amazon Aurora PostgreSQLのエクスプレス構成を試す

0
Posted at

AWSのAurora PostgreSQLをすぐに(秒単位)起動できる「エクスプレス構成」でDBを作成し、Lambdaからアクセスする方法をまとめました。

エクスプレス構成とは

2026年3月に公開されたAurora PostgreSQLを素早く起動できる設定です。通常はVPC内にDBを配置しますが、エクスプレス構成ではVPC外に配置されるなどの違いがあります。

エクスプレス構成での起動

Aurora PostgreSQLをエクスプレス構成で素早く起動する手順を説明します。

「Aurora and RDS」を開きます。「Aurora DSQL」ではないので注意してください。
image.png

「数秒でエクスプレス設定により作成」の「作成」ボタンを押下します。
image.png

「データベースの作成」をクリックしてDBを作成します。
image.png

作成が完了したら、接続情報を確認します。

image.png

「接続とセキュリティ」タブを開き、「を使用して接続」(和訳がおかしいですが)で「エンドポイント」を選択します。
「IAM 認証トークン」の「トークンを取得」を押下します。
image.png

トークンが表示されるのでコピーしておきます。
image.png

LambdaからのDBアクセス

DBを起動できたので、Lambdaからアクセスしてみます。
エクスプレス構成で作成したDBはVPC外に配置されるので、Lambdaからも簡単にアクセスできます。

index.ts
import { Signer } from "@aws-sdk/rds-signer";
import pg from "pg";

const dbHost = process.env.DB_HOST!;
const dbPort = Number(process.env.DB_PORT ?? "5432");
const dbUser = process.env.DB_USER!;
const database = process.env.DATABASE_NAME!;
const token = process.env.DB_TOKEN;

export const handler = async () => {
  // PostgreSQL接続(IAMトークンをパスワードとして使用)
  const client = new pg.Client({
    host: dbHost,
    port: dbPort,
    user: dbUser,
    password: token,
    database,
    ssl: { rejectUnauthorized: true },
  });

  await client.connect();

  try {
    // テーブル作成(初回のみ)
    await client.query(`
      CREATE TABLE IF NOT EXISTS users (
        id SERIAL PRIMARY KEY,
        name VARCHAR(255) NOT NULL,
        created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
      )
    `);

    // データ挿入
    await client.query("INSERT INTO users (name) VALUES ($1)", ["太郎"]);

    // データ取得
    const result = await client.query(
      "SELECT * FROM users ORDER BY id DESC LIMIT 10",
    );

    console.log("取得結果:", JSON.stringify(result.rows, null, 2));

    return {
      statusCode: 200,
      body: JSON.stringify(result.rows),
    };
  } finally {
    await client.end();
  }
};

環境変数には次の値を設定してください。

key value
DB_HOST Aurora and RDS > 接続とセキュリティタブ > エンドポイントを選択 > エンドポイント
DATABASE_NAME postgres
DB_USER postgres
DB_TOKEN IAM 認証トークン

Lambdaを実行して、DBからデータを取得できれば成功です。

注意点

エクスプレス構成で起動したDBはVPC外に配置されます。複雑な設定なしでDBにアクセスできる反面、プライベートサブネットに配置する場合と比較してセキュリティ対策が必要になる場合があります。

この記事で利用したIAM 認証トークンは時間制限があります。実際に利用する際は注意してください。

まとめ

Aurora PostgreSQLのエクスプレス構成について説明しました。秒単位で起動でき、複雑な設定をせずに利用できるメリットがあります。ただし、VPC外に配置されるためセキュリティには注意が必要です。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?