はじめに
本記事では、AWSのRDS(Relational Database Service)を用いて、データベースをセットアップする方法を解説します。RDSはデータベース管理の手間を大幅に軽減するマネージドサービスで、スケーラビリティやバックアップ、自動復元機能が標準で備わっています。今回は、PostgreSQLデータベースを作成し、接続設定やセキュリティグループの設定方法まで詳しく見ていきましょう。
データベース作成方法の選択
作成オプション
- 標準作成: 可用性、セキュリティ、バックアップ、メンテナンス設定を行います。
- 簡単に作成: AWSの推奨設定でデータベースを作成できますが、一部のオプションは後で変更可能です。
RDSインスタンス設定の詳細
エンジンの選択
- エンジンタイプ: PostgreSQL
- エンジンバージョン: PostgreSQL 15.4 (または、必要に応じた他の互換バージョン)
- RDS延長サポート: 選択可能。長期的にサポートが必要な場合に有効化します。
テンプレート
- 本番稼働用: 高可用性やパフォーマンスを最適化する設定です。
- 開発/テスト: 開発用の軽量な設定です。
基本設定
- DBクラスター識別子: 例)
database-1
- マスターユーザー名:
postgres
- 認証情報管理:
- セルフマネージド: 独自のパスワードを設定
- AWS Secrets Manager: AWSのSecrets Managerを利用してパスワードを安全に管理可能
クラスターストレージ設定
- Aurora I/O最適化: I/Oコストが高い場合に利用。読み取り/書き込み操作に追加料金は不要です。
- Auroraスタンダード: I/Oコストが低い用途向けの費用対効果の高い設定
インスタンスの設定
- DBインスタンスクラス: メモリ最適化 (例:
db.r7g.large
, 2 vCPUs, 16GiB RAM) - マルチAZ配置: 高可用性を確保するための別AZでのAuroraレプリカを作成
セキュリティおよびネットワーク設定
VPC設定
- VPCの選択: デフォルトVPC (または必要に応じたカスタムVPC)
- DBサブネットグループ: デフォルト設定を使用(変更が必要な場合は作成)
- パブリックアクセス: 通常は「なし」に設定し、VPC内部のアクセスのみに制限
VPCセキュリティグループ設定
- 既存のセキュリティグループを選択または新規作成
- インバウンドルールの設定:
- ポート:
5432
(PostgreSQL用) - ソース: EC2の特定のIP、またはVPC内部に制限
- ポート:
認証とセキュリティ
- サーバー証明書: デフォルトの
rds-ca-rsa2048-g1
証明書を使用 - Data API: HTTP経由でSQLクエリを実行可能にするData APIの有効化 (必要に応じて)
追加の監視とパフォーマンス管理
パフォーマンスモニタリング
- Performance Insightsの有効化: クラスターレベルでパフォーマンスインサイトを有効化し、7日間の保持(無料枠)
DevOps Guruの有効化
- DevOps Guru for RDS: DBインスタンスのパフォーマンス異常を自動検出し、最適化のための推奨を提供
データベース接続設定
- RDSインスタンスのエンドポイント(接続URL)とポート番号(デフォルト5432)を使用します。
psql
コマンドを使って接続する場合、以下のように設定します。
Bash
psql --host=<エンドポイント> --port=5432 --username=<マスターユーザー名> --password --dbname=<データベース名>
低コスト設定のRDSデータベース構築手順(試しに作成する場合)
作成方法の選択
- 作成オプション: 標準作成を選び、細かい設定をカスタマイズします。
- データベースエンジン: コストを抑えるため、Auroraの代わりに直接「PostgreSQL」を選択
インスタンス設定
- DBインスタンスクラス:
db.t4g.micro
(最も安価なクラス、無料枠に適用される場合もあり) - マルチAZ配置: 無効(高可用性が不要な場合)
- ストレージタイプ: 汎用(SSD)、初期設定の20GB(後で拡張可能)
ストレージとI/O
- ストレージオートスケーリング: 必要に応じて有効化。容量を最小限にしつつ、限界まで使いたい場合に便利。
セキュリティ設定
- VPCセキュリティグループ: VPC内アクセスに制限し、パブリックアクセスを無効化
- バックアップの保持期間: デフォルトの7日間(バックアップコストを最小限に)
モニタリング設定
- Performance Insights: 無効(コスト削減のため)
- 拡張モニタリング: 無効化(必要に応じて有効)
データベース設定とタグ
- バックアップの保持期間: デフォルトの1日(コストを抑えるために短期間)
- メンテナンスウィンドウ: 任意で設定、作業時間中でないことを確認
- 削除保護: 無効化(開発用に最適)
まとめ
AWSのRDSを使うことで、インフラの管理にかかる手間を減らし、アプリケーションの開発に集中することができます。今回の内容では、データベースインスタンスの作成、スケーリング、バックアップ、セキュリティ設定までを解説しました。ぜひこの手順を参考にして、AWSでデータベース管理を効率化してください。
コメント