InfraAcademy

InfraAcademy Blog

【AWS】RDSの概要や作成方法を解説!AWSにデータベースを作成してみよう

| #aws #DB #RDS
Linuxをブラウザで試してみる

Linux・ネットワーク・AWSを、環境構築なしで実践学習できます

こんにちは、フルスタックエンジニアのryuです。

今回の記事では、AWSのAmazon RDSについて解説します。

Webアプリケーションを作るとき、ユーザー情報や商品情報などを保存するためにデータベースが必要になります。

AWSではEC2へDBを自分で構築することもできますが、管理をAWSに任せやすくするサービスとしてRDSがあります。

この記事では、RDSとは何か、どのようなメリットがあるのか、作成時に何を設定するのか、EC2からどのように接続するのかまで初心者向けに解説します。

【AWS】RDSの概要や作成方法を解説!

今回の記事では、RDSの作成方法を解説します。AWS上でデータベースを構築する際に利用できるマネージドサービスです。

まずRDSの仕組みを理解してから、作成時に確認するポイントを見ていきましょう。

RDSとは?

RDSとは、AWS上でリレーショナルデータベースを構築・運用できるサービスです。

正式名称はAmazon Relational Database Serviceです。

EC2へDBを構築する場合はOSやバックアップまで自分で管理しますが、RDSでは運用の一部をAWS側に任せられます。

現在、Amazon RDSではMySQL、PostgreSQL、MariaDB、Oracle Database、Microsoft SQL Server、Db2などのDBエンジンを利用できます。また、RDSのコンソールからAmazon Auroraを作成することもできます。

RDSを使うメリット

RDSの大きなメリットは、単にデータベースを簡単に作れることではありません。

データベースサーバーの運用負荷を減らしやすいことが重要です。

主な特徴を整理すると次のようになります。

特徴 内容
DB構築 DBインスタンスをAWS上に作成できる
バックアップ 自動バックアップや手動スナップショットを利用できる
可用性 Multi-AZ構成を利用できる
監視 CloudWatchなどと組み合わせて監視できる
セキュリティ VPCやセキュリティグループで通信を制御できる
拡張 インスタンスクラスやストレージを変更できる

バックアップを管理しやすい

RDSでは、自動バックアップを設定できます。

バックアップ保持期間を設定すると、指定したバックアップウィンドウに自動バックアップが作成されます。

また、必要なタイミングでDBスナップショットを手動作成することもできます。

障害や操作ミスが発生した場合に備えるためにも、データベースではバックアップが重要です。

Multi-AZで可用性を高められる

RDSではMulti-AZ構成を利用し、複数のAvailability Zoneを使った高可用性構成を作れます。

Multi-AZ DBインスタンス配置では、プライマリとは別のAZにスタンバイを用意し、障害時にはフェイルオーバーできます。

ただし、Multi-AZを有効にすれば料金も同じというわけではありません。

可用性とコストのバランスを考えて構成を選びます。

RDSは必ず安いわけではない

元の記事では、RDSはコストが安い、Auroraを使えばコストを抑えられると紹介していました。

しかし、これは構成によって変わります。

DBインスタンスのサイズ、ストレージ、バックアップ、Multi-AZ、データ転送などによって料金は変わるため、RDSだから必ず安い、Auroraだから必ず安いとは言えません。

料金を重視する場合は、実際の構成でAWS Pricing Calculatorなどを使って確認しましょう。

RDSを作成してみよう

先ほどまではRDS概要について解説しました。ここからはRDSの作成方法について解説します。AWSのコンソール画面に移動しましょう。

※AWSマネジメントコンソールは更新されるため、現在の画面は以下の画像と表示や項目名が異なる場合があります。

データベースの作成

では、早速RDSの作成を行います。AWSのコンソールより、「RDS」と検索し、RDSのコンソール画面に移動します。

画面左側の「データベース」を選択します。

そして、「データベースの作成」をクリックします。

現在のRDSコンソールでは、作成方法やDBエンジン、テンプレート、可用性などを選択しながらDBを作成します。

学習目的であれば、設定項目を確認しながら進めてみてください。

データベースエンジンを選択する

MySQLやPostgreSQLなどから選ぶ

次に、データベースを作成する際の設定です。

最初に考えたいのが、どのデータベースエンジンを利用するかです。

たとえば、WebアプリケーションでMySQLを利用したいのであればRDS for MySQL、PostgreSQLを利用したいのであればRDS for PostgreSQLを選択できます。

元の記事ではAmazon Aurora with MySQL compatibilityを選択していました。

AuroraにはMySQL互換とPostgreSQL互換があり、既存のMySQL・PostgreSQL向けツールやアプリケーションを利用しやすい特徴があります。

ただし、MySQLを使いたいから必ずAuroraを選ぶというわけではありません。

RDS for MySQLとAurora MySQLではアーキテクチャや料金、利用できる機能などが異なります。

DBインスタンスの設定をする

DBインスタンス識別子や認証情報を設定する

DBエンジンを選んだら、DBインスタンスの名前、マスターユーザー名、認証方法などを設定します。

インスタンスサイズや、管理者のユーザー名などは自分の環境に合わせて設定して下さい。

DBインスタンスクラスは、データベースに割り当てるCPUやメモリなどの性能に関係します。

性能と料金のバランスを考え、用途に合わせて選びましょう。

パスワードは安全に管理する

RDSでは認証情報を安全に管理する必要があります。

パスワードをソースコードへ直接書いたり、GitHubへコミットしたりするのは避けましょう。

AWS Secrets Managerなどを利用して認証情報を管理する方法もあります。

最後に設定内容を確認して、「データベースの作成」をクリックします。

ステータスが利用可能になれば、接続できる状態になります。

RDSではネットワーク設定が重要

RDSへ接続できない場合は、ネットワーク設定も確認します。

RDSのDBインスタンスはVPC内に作成され、セキュリティグループで接続元やポートを制御します。

たとえばMySQLでは通常TCPの3306番ポート、PostgreSQLでは5432番ポートを利用します。

DB 一般的なポート
MySQL / MariaDB 3306
PostgreSQL 5432
Microsoft SQL Server 1433

Webアプリケーションを動かすEC2からRDSへ接続するのであれば、RDSのセキュリティグループでEC2側のセキュリティグループを接続元として許可する構成があります。

RDSをインターネット全体へ公開し、0.0.0.0/0からデータベースポートへの通信を許可するような設定は避けましょう。

【関連記事】VPCの仕組みから確認したい方は、VPCとは?初心者でも理解できるように概要を1から解説!も参考にしてください。

EC2からRDSへ接続してみる

RDSを作成したら、接続先となるエンドポイントを確認します。

MySQLを利用している場合、MySQLクライアントが入ったEC2などから次のように接続できます。

mysql -h <RDSのエンドポイント> \
  -P 3306 \
  -u <ユーザー名> \
  -p

パスワード入力後に接続できれば、RDS上のMySQLを操作できます。

PostgreSQLであればpsqlを使います。

psql -h <RDSのエンドポイント> \
  -p 5432 \
  -U <ユーザー名> \
  -d <データベース名>

接続できない場合は、次のポイントを順番に確認しましょう。

確認すること 内容
RDSの状態 Availableになっているか
エンドポイント 接続先を間違えていないか
ポート MySQLなら3306など
セキュリティグループ EC2からの通信を許可しているか
VPC 通信可能なネットワーク構成か
ユーザー情報 ユーザー名・パスワードが正しいか

【関連記事】EC2からRDSへ接続できないときの考え方は、FargateからRDSへ接続できない場合の対処方法もネットワークの切り分けとして参考になります。

RDSとEC2にDBを入れる方法は何が違う?

EC2へMySQLをインストールしてデータベースサーバーを作ることもできます。

その場合はOSからデータベースまで自分で管理します。

一方、RDSではOSへSSH接続して自由に設定するような使い方ではなく、AWSが管理するマネージドなDBサービスとして利用します。

違いを簡単に整理すると次の通りです。

項目 RDS EC2にDBを構築
OS管理 AWS側が管理 自分で管理
DBの自由度 制約がある 高い
バックアップ RDS機能を利用できる 自分で設計する
高可用性 Multi-AZなどを利用可能 自分で構成する
運用負荷 抑えやすい 大きくなりやすい

特殊なOS設定が必要なら、EC2上にDBを構築する選択肢もあります。

InfraAcademyでAWSを実際に学習する

RDSを理解するためには、データベースだけではなくVPCやサブネット、セキュリティグループ、EC2などの知識も必要です。

InfraAcademyでは、AWSの基本をシミュレーターや教材を使いながら学習できます。

AWSを基礎から学びたい方は、AWS講座をご覧ください。

EC2へ接続した後のLinux操作に不安がある方は、Linux入門講座から学習できます。

VPCやサブネット、ルーティングが分からない方は、ネットワーク講座もおすすめです。

AWSはサービス名を個別に暗記するより、EC2からRDSへ接続するような構成を実際に考えると、それぞれの役割が理解しやすくなります。

RDSの作成方法まとめ

今回の記事では、Amazon RDSの概要と作成時に確認するポイントについて解説しました。

RDSは、AWS上でリレーショナルデータベースを構築・運用できるマネージドサービスです。

MySQLやPostgreSQLなど複数のDBエンジンを利用でき、自動バックアップやMulti-AZなど、データベース運用に役立つ機能が用意されています。

一方で、RDSを使えば必ず安くなるわけではありません。

DBインスタンスの性能、ストレージ、可用性などによって料金は変わるため、用途に合わせて構成を選ぶことが大切です。

RDSを作成するときは、DBエンジンだけではなく、VPC、セキュリティグループ、認証情報も一緒に確認しましょう。

そして作成後は、EC2などから実際に接続してみてください。

RDS単体ではなく、EC2・VPC・セキュリティグループ・RDSを一つの構成として理解することが、AWSを学ぶうえで重要です。

Next Action

記事で読んだ内容を、講座で実装してみましょう

InfraAcademyでは、ブラウザ上でLinuxやネットワークの実践環境を使いながら学習できます。無料で始められる講座から、学習の流れを試せます。

この記事を書いた人

ryu

InfraAcademy運営 / エンジニア

エンジニア歴10年。Linux、ネットワーク、クラウドを中心に、実務で役立つインフラ技術を初心者にもわかりやすく解説しています。

X: @ryu63614894

Related

関連記事

ブログ一覧へ

Roadmap

まずはこの4講座から

ログインすれば無料で始められる講座です。気になったテーマから手を動かして学べます。

講座一覧を見る