はじめに
今回は、AWSのマネージドデータベースサービス「RDS」を使って、MySQLデータベースの作成から接続確認までの流れをご紹介します。
RDSは、データベースの設定、スケーリング、バックアップの管理を簡単に行え、さまざまなデータベースエンジンをサポートしているため、データベース管理の手間を大幅に軽減できます。
前回の記事では、NoSQLデータベースサービス「DynamoDB」についても詳しく解説しています。興味があればぜひ読んでみてください。
前提条件
この記事を実施するには、以下の要件を満たしている必要があります。
AWSアカウント:
AWSアカウントを持っていることが前提です。
RDSとMySQLの基本理解:
RDSとMySQLの基本的な機能や操作方法を理解していることが望ましいです。公式ドキュメントや入門書を事前に確認しておくと、スムーズに進められます。
RDSについて
Amazon Relational Database Service(RDS)は、リレーショナルデータベースをクラウド上で簡単にセットアップ、運用、スケーリングできるフルマネージドサービスです。
引用画像:https://aws.amazon.com/jp/rds/#
RDSは、データベース管理のタスク(パッチ適用、バックアップ、障害復旧など)を自動化し、運用コストの削減や高可用性の確保を実現します。
これにより、インフラ管理にかかる時間を削減し、アプリケーション開発やデータ活用に集中できるようになります。
選択できるエンジンタイプ
RDSでは、複数のデータベースエンジンを選択できます。
最新の選択できるエンジンは次の通りです。
・Amazon Aurora(MySQL互換、PostgreSQL互換)
・Oracle
・MySQL
・MariaDB
・PostgreSQL
・SQL Server
・Db2
今回は、MySQLを使ってデータベースを構築していきます。
MySQLについて
MySQLは、オープンソースのリレーショナルデータベース管理システム(RDBMS)で、データを効率的に保存し、整理するための仕組みを提供します。データの操作にはSQL(Structured Query Language)を使用します。
MySQLの詳しい説明はこちらの記事を参考にしてください。
主な特徴
リレーショナルデータベース:
データは、テーブルと呼ばれる行と列からなる構造で保存されます。異なるテーブル間で関連性を持たせることが可能です。
SQL対応:
データの検索(SELECT)、追加(INSERT)、更新(UPDATE)、削除(DELETE)など、SQLコマンドを使って操作が行われます。
オープンソース:
MySQLは無料で利用でき、ソースコードも公開されているため、カスタマイズが可能です。
高速でスケーラブル:
大量のデータを効率的に処理でき、パフォーマンスに優れています。
構築の流れ
ステップ1:DBサブネットグループの作成
RDSインスタンスをVPC内に配置する際には、どのサブネットにDBを作成するかを定義するサブネットグループが必要です。
AWS Management Consoleで「RDS」を検索し、RDSダッシュボードを開きます。左側のメニューから「サブネットグループ」をクリックし、「サブネットグループの作成」を選択します。
サブネットグループに名前を付け、使用するVPCを選択します。
2つ以上の異なるアベイラビリティゾーンに属するサブネットを追加し、「作成」をクリックします。
ここでは、インスタンスの構築と接続確認を目的として、publicサブネットにRDSインスタンスを配置しています。本番運用の場合は、RDSインスタンスをprivateサブネットに配置することが一般的です。
ステップ2:RDSインスタンスの作成
RDSダッシュボードで「データベースの作成」をクリックし、「標準作成」を選択します。
データベースエンジンは「MySQL」を選択し、最新のバージョンを選びます。
「DBインスタンスクラス」では、アプリケーションに応じたインスタンスタイプを選択します(例: db.t3.micro)。
「ストレージオプション」でストレージタイプ(汎用SSD)や容量を設定し、自動スケーリングも選択可能です。「データベース設定」では、データベース識別子、マスターユーザー名、およびパスワードを指定します。
「VPC」セクションでは、先ほど作成したDBサブネットグループを選びます。最後に、「データベースの作成」をクリックします。
データベースの作成には約20分かかる場合があります。また、インスタンスの使用には費用が発生するため、必要ない場合は削除することをお勧めします。
接続確認
RDSインスタンスが起動したら、データベースに接続してみましょう。
RDSエンドポイントの確認
RDSダッシュボードで作成したデータベースを選択し、データベースの詳細画面から「エンドポイント」を確認します。
MySQL WorkbenchやCLIからの接続
ターミナルやMySQL Workbenchを使用して、以下のコマンドで接続を試みます。ここでは、CloudShellを使って確認します。
mysql -h <エンドポイント> -P 3306 -u <マスターユーザー名> -p
上記のコマンドを実行すると、パスワードを求められるので、設定したパスワードを入力します。
接続に成功すれば、RDS上のMySQLにアクセスできていることが確認できます。
データベースに接続できない場合は、セキュリティグループなどを見直してください。
まとめ
今回のハンズオンでは、AWS RDSを使用してMySQLデータベースを作成し、接続確認までの一連の流れを説明しました。
RDSを使うことで、データベースの運用管理が簡略化され、インフラの運用負担を軽減できます。MySQLだけでなく、他のエンジンも同様の手順で構築できるので、ぜひ試してみてください。
おまけ:hondaテーブルを追加する方法
まず、新しいデータベースを作成して使用します。
CREATE DATABASE honda_db;
USE honda_db;
次に、hondaという名前のテーブルを作成します。テーブルにはID、名前、モデル、年式の情報を格納するカラムを設定します。
CREATE TABLE honda (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(50),
model VARCHAR(50),
year INT
);
作成したテーブルは次のコマンドで確認できます。
SHOW TABLES;
最後に、テーブルにデータを追加し、内容を表示します。
INSERT INTO honda (name, model, year)
VALUES ('Civic', 'Type R', 2024);
SELECT * FROM honda;
実際のSQLコマンドの実行画面
以上でhondaテーブルの追加とデータ挿入が完了です。
参考文献