Database Support Blog

  • AWS
2024.01.11

Amazon RDSとは?仕組み、特徴、メリット、DBの種類や使い方をわかりやすく解説

本記事では、AWSのリレーショナルデータベースサービスであるAmazon RDSについて解説します。


構築・移行支援サービスが必要な方はこちら

 アシストの「Amazon RDS 導入・移行支援」とは?

Amazon Relational Database Service (Amazon RDS)とは?

Amazon Relational Database Service (Amazon RDS)は、AWSが提供するマネージドのリレーショナルデータベースサービスです。

Amazon RDSを利用することで、DBの運用負荷の削減や可用性向上等、様々なメリットを得られます。本記事ではAmazon RDSの特徴やメリットについて具体的に解説します。


Amazon RDSの特徴

Amazon RDSの特徴として以下があります。

マネージドサービス

Amazon RDSは、AWSマネージドのリレーショナルデータベース(RDB)サービスです。RDBを利用するまでに必要なタスク(OS、ストレージ、ネットワーク等の物理インフラの管理、ミドルウェアの導入、パッチ適用等)は、全てAWSによって管理、実行されます。つまり、利用者はデータベースの運用管理に手間をかけることなく、RDBを利用できます。


マルチAZ機能

Amazon RDSでは、アベイラビリティゾーン(*)レベルでのDBインスタンスの冗長化を行えます。この機能をマルチAZ機能と呼びます。マルチAZ機能を有効化すると、プライマリインスタンスが稼働するメインのAZに加え、同一リージョンの別AZにスタンバイインスタンスを展開できます。

そして、プライマリインスタンスに障害が発生した際は、スタンバイインスタンスに迅速にフェイルオーバーします。フェイルオーバーの所要時間は通常60~120秒です。

また、スタンバイインスタンスにフェイルオーバーしても、DBを参照する側でアクセス先指定を変更する必要はありません。フェイルオーバーの際、DBのアクセスポイントとなるDNS名は、AWSによって自動更新されるためです。

(*)アベイラビリティゾーンは、一つ以上のデータセンターで構成されます。つまり、マルチAZ機能の利用により、DBインスタンスはデータセンターレベルの災害に耐えられるようになります。

参考:
https://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/Concepts.MultiAZSingleStandby.html#Concepts.MultiAZ.Failover


リードレプリカ機能

Amazon RDSでは、リードレプリカという、読み取り専用のレプリカインスタンス機能を利用を利用できます。リードレプリカを利用することで、DBの読み取り性能を向上させることができます。

リードレプリカは以下のような特徴を備えています。

  • プライマリインスタンスから非同期でデータがコピーされる
  • プライマリインスタンス1つにつき最大5つ作成可能
  • リードレプリカのインスタンスタイプは、プライマリと異なるものにすることも可能

なお、リードレプリカを利用してもDBの書き込み性能は強化されません。書き込み性能を許可するには、プライマリインスタンス自体のスケールアップを検討する必要があります。


他サービスとの連携

Amazon RDSでは、他のAWSサービスとの連携が可能です。連携により、Amazon RDSの機能のみではカバーできない様々な要件に対応できるようになります。
連携可能なAWSサービスとできることの一部をご紹介します。


AWS Secrets Manager

システムの認証情報をセキュアに保管、管理することができるAWSサービスです。Amazon RDSのDBパスワードを保管し、必要なタイミングで取り出すことができます。それにより、プログラムへのDBパスワードの埋め込みや、パスワードを開発者のローカル環境にメモする運用等を避けることができます。結果、DB認証情報のセキュリティを向上することができます。
また、認証情報のローテーション機能も備えています。そのため、万が一、気が付かない間に認証情報が流出してしまった場合でも、長期間悪用されることはありません。


Amazon CloudWatch

AWSの高機能な監視サービスです。CloudWatch メトリクスという機能の中で、様々なAmazon RDSのメトリクスが用意されています。CloudWatchメトリクスを利用することで、Amazon RDSの稼働状況に基づいてアラート発出および通知設定を行うことができます。それにより、DBの高負荷状態やストレージ容量の逼迫をリアルタイムで把握することができます。


AWS Key Management Service (AWS KMS)

AWSの保管データの暗号化管理サービスです。KMSを利用することで、データ保管時の暗号化を行うことができます。DBに機密性の高いデータを格納する場合は、本サービス機能を利用し暗号化を行うことを推奨します。


完全な従量課金制

Amazon RDSは使った分だけ課金される完全な従量課金制です。利用するDBインスタンスのスペックに応じた時間単位の課金、および確保したストレージサイズの分の月単位の課金が発生します。

なお、課金が発生するのはDBインスタンスを利用中の期間のみです。DBインスタンスを削除した場合、それ以降一切課金は行われません。


Amazon RDSのメリット

データベース運用の手間を削減

Amazon RDSを利用することで、データベースインフラの運用管理の手間を削減できます。
データベースの運用管理においては、一般的に次のようなインフラタスクに対応する必要があります。

  • OS、ミドルウェアの脆弱性対応
  • OS、ミドルウェアの正常性管理
  • データベースへのパッチ適用
  • バックアップ管理

Amazon RDSを利用する場合、上記は全てAWSによって実施されます。
それによって、利用者はビジネス価値に直接つながらないインフラ管理タスクではなく、データ設計、アプリケーション設計など、ビジネスにおいてより重要度の高いタスクに時間を割けるようになります。


要件への対応が容易

Amazon RDSを利用することで、一般的にデータベースに求められる要件への対応が、オンプレミスにDBサーバーを構築する場合に比べ容易になります。

具体的なものとしては、可用性、性能/拡張性、セキュリティ性などが挙げられます。
例えば、オンプレミスでDBサーバーを構成する場合、可用性の強化は非常に手間のかかるタスクです。機器の冗長化、データセンターレベルでの冗長化等を行いたい場合、設計、機器の調達、構築には多くの手間と時間がかかります。

Amazon RDSの場合、機器レベルでの冗長化はデフォルトで行われています。加えて、データセンターレベルでの冗長化はマルチAZ設定を有効にするだけで簡単に行うことができます。

その他にも、CloudWatchを利用して監視設定を充実させたり、Secrets Manager、KMSを用いてセキュリティ性を向上させる等の対応ができます。


コスト最適化

Amazon RDSを利用することで、イニシャルコストとランニングコストを最適化することができます。

まず、イニシャルコストです。オンプレミスDBサーバーを構築する場合、サーバーを用意する必要があります。スペック不足とならないよう高スペックなサーバーを調達すると、その分高額なイニシャルコストが発生します。

一方、Amazon RDSは使った分だけの従量課金制です。そのため、高額なイニシャルコストを支払う必要はありません。また、データベース作成後も柔軟にスペック変更できる(*)ため、必要以上に高スペックにする必要はありません。

次に、ランニングコストです。ここで意識すべきコストは、データベース運用にかかる人件費です。オンプレミスDBサーバーを運用する場合、サーバー、ミドルウェア等の定常運用タスクに多くの時間を費やす必要があります。

Amazon RDSは、一般的なデータベースの運用タスクの多くはAWSが実施します。そのため、データベースの運用期間中でも、データベース運用に費やす人件費を抑えることができます。

(*)変更するには、データベースを停止する必要があります。


構築・移行支援サービスが必要な方はこちら

 アシストの「Amazon RDS 導入・移行支援」とは?

Amazon RDSのデメリット

Amazon RDS利用のデメリットとして、「利用者側はOSにログイン不可」という点があります。Amazon RDSでは、OSレイヤはAWSによって管理されます。
そのため、Amazon RDSではOS上でのコマンド実行や、監視アプリのエージェントのインストール等は実施できません。

回避策として「Amazon RDS Custom」という利用形態が用意されています。Amazon RDS Customを利用すると、OSへの特権アクセスが可能な状態でAmazon RDSを利用することができます。なお、2023年11月時点では、Amazon RDS Customが対応しているエンジンはOracleデータベースおよびSQL Serverのみです。

参考:https://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/rds-custom.html


Amazon RDSのDBエンジンの種類

Amazon RDSでは、様々な種類のDBエンジンが用意されています。以下のDBエンジンを選択可能です。

  • Oracle
  • MySQL
  • MariaDB
  • PostgreSQL
  • SQL Server
  • Db2
  • Amazon Aurora(*)

(*)Amazon Auroraは、AWSが独自に開発したDBエンジンです。MySQL および PostgreSQLとの互換性を持ちます。その他のAmazon RDSエンジンと大きく異なる特徴およびメリットを持つため、本記事では詳細は割愛します。詳しくは、弊社の以下記事にて解説しております。よろしければ合わせて参照ください。

Amazon Auroraとは?特徴、RDSとの違い、料金計算方法を解説【Amazon Aurora入門】
https://www.ashisuto.co.jp/cloud/aws/pr/aurora-column-part1.html


Amazon RDSの使い方とDB構築手順

基本的なAmazon RDSの設定手順を解説します。ここでは、Amazon RDS for OracleをマルチAZで構成する手順をご案内します。

1.マネジメントコンソールの検索窓にて、Amazon RDSと入力します。表示されたAmazon RDSをクリックします。


2.データベースの一覧画面から、「データベースの作成」をクリックします。


3.「標準作成」を選択します。


4.「エンジンのタイプ」を選択します。ここではOracleを選択します。

5.データベース管理タイプ、エディション、ライセンス、エンジンバージョンを指定します。
ここでは、以下前提で指定します。

  • データベース管理タイプ:Amazon RDS
  • エディション:SE2
  • ライセンス:ライセンス込み
  • エンジンバージョン:19c


6.テンプレートを選択します。テンプレートを指定すると、ユースケースに沿ったデフォルト値が自動で設定されます。


7.DBインスタンスの識別子、認証情報の設定を行います。ここでは以下の通り設定します。

  • DBインスタンス識別子:database-1
  • 認証情報の設定 マスターユーザー名:admin
  • 認証情報の設定 パスワードの自動生成:有効


8.インスタンスクラスを選択します。

ここでは、標準クラスのdb.m5.xlargeを選択します。


9.ここではストレージ設定全般、具体的にはストレージタイプ、ストレージ割り当て、ストレージの自動スケーリング設定を行います。以下の通り選択します。

  • ストレージタイプ:gp3
  • ストレージ割り当て:200
  • ストレージの自動スケーリング設定:有効

10.可用性と耐久性として、マルチAZ配置有無を選択します。

ここでは、マルチAZ配置を有効にします。


11.接続設定、具体的にはコンピューティングリソースへの接続設定、ネットワークタイプ、VPCの選定を行います。以下の通り選択します。

  • コンピューティングリソース:EC2コンピューティングリソースに接続しない
  • ネットワークタイプ:IPv4
  • VPC:general-01-vpc

続いて、DBサブネットグループ、パブリックアクセス、VPCセキュリティグループ を選択します。以下の通り設定します。

  • DBサブネットグループ:新規作成
  • パブリックアクセス:なし
  • VPCセキュリティグループ:新規作成

※DBサブネットグループ、VPCセキュリティグループは事前に作成することもできますが、ここではインスタンス作成と同じ画面で新規作成の設定をします。


12.データベース認証を選択します。ここでは、パスワード認証を選択します。


13.モニタリング設定として、Performance Insightsおよび拡張モニタリングの有効化有無を選択します。ここでは、どちらも無効にします。
なお、本番利用を想定したインスタンスでは、どちらも有効化することをおすすめします。



14.入力が完了したら、「データベースの作成」をクリックします。


15.インスタンスの作成が開始されたことを確認します。


16.しばらく待って、ステータスが利用可能となることを確認します。

17.同一ネットワーク上のEC2インスタンスから、DBに接続できることを確認します。

# sqlplus 'admin@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=XXXXXXXXXX.ap-northeast-1.rds.amazonaws.com)(PORT=1521))(CONNECT_DATA=(SID=database-1)))'
SQL*Plus: Release 19.0.0.0.0 - Production on Thu Nov 22 23:18:32 2023
Version 19.12.0.0.0
 
Copyright (c) 1982, 2023, Oracle.  All rights reserved.
 
Enter password: 
 
Connected to:
Oracle Database 19c Standard Edition 2 Release 19.0.0.0.0 - Production
Version 19.12.0.0.0
 
 
SQL> select instance_name from v$instance;
 
INSTANCE_NAME
----------------
TESTDB
 


構築・移行支援サービスが必要な方はこちら

 アシストの「Amazon RDS 導入・移行支援」とは?

Amazon RDSの価格・料金体系

基本的な料金体系について

Amazon RDSの料金はインスタンス料金、ストレージ料金、ライセンスを含むか否か、マルチAZ有効化有無によって決まります。以下に、Amazon RDS for Oracleを例に料金例を解説します。

※以降の日本円表記の金額は、は1USD=150円で計算しています。
※以下の表は東京リージョン、マルチAZ、ライセンス込みの料金です。


Amazon RDS for Oracleのインスタンス料金

インスタンス
タイプ
vCPU メモリ
(GiB)
ネットワーク
パフォーマンス
時間あたりの
料金(USD)
時間あたりの
料金(円)
一か月あたりの
料金(円)
db.t3.small 2 2 低~中 $0.176 26.4 19,272
db.t3.medium 2 4 低~中 $0.352 52.8 38,544
db.t3.large 2 8 低~中 $0.704 105.6 77,088
db.t3.xlarge 4 16 $1.408 211.2 154,176
db.t3.2xlarge 8 32 $2.816 422.4 308,352
db.m5.large 2 8 最大10ギガビット $1.028 154.2 112,566
db.m5.xlarge 4 16 最大10ギガビット $2.056 308.4 225,132
db.m5.2xlarge 8 32 最大10ギガビット $4.112 616.8 450,264
db.m5.4xlarge 16 64 最大10ギガビット $8.224 1233.6 900,528

Amazon RDS for Oracleのストレージ料金

タイプ 容量課金(USD/月当たりGB) 容量課金(円/月当たりGB)
汎用 gp2 $0.138 20.7
汎用 gp3 $0.138 20.7
プロビジョンド IOPS $0.142 21.3
マグネティック $0.12 18

試算の例

以下にAmazon RDS料金の試算例をご案内します。

東京リージョン、DBエンジンはOracle Database、マルチAZ、ライセンス込み、db.r6i.xlargeタイプ、ストレージタイプgp3、ストレージ容量200GBの前提で試算します。


月額料金合計:251,808円

以下が内訳です。

  • インスタンス料金:2.224USD/時間
  • 使用時間:730時間
  • ストレージ料金:0.276 USD/GB
  • ストレージ容量:200GB/月
計算式:
インスタンス料金×使用時間+ストレージ料金×ストレージ容量=1,678.72USD

1,678.72USD×150円=251,808円

コストを抑えるポイント


コストを抑えたい場合、割引プランを利用することができます。
まず、従量課金の課金形態のことをオンデマンドインスタンスと呼びます。それに対し、一定期間の利用を確約することで、利用料金の合計を抑えられる課金体系をリザーブドインスタンスと呼びます。プラン次第で最大で6割程度の割引を受けることができます。


リザーブドインスタンスの選択肢

リザーブドインスタンスの料金は以下の要素で決まります。長期の利用、なるべく多い金額の前払いを選択することで、割引率を高めることができます。

項目 内容
デプロイオプション シングルAZ or マルチAZ
ライセンスモデル ライセンス込み or BYOL
期間 1年 or 3年
支払いオプション 前払いなし or 一部前払い or 全額前払い
インスタンスタイプ インスタンスファミリーによって割引率が異なる

各項目の選択によって結果は変動するため、費用の詳細は割愛いたします。詳細は以下公式ドキュメントのリザーブドインスタンスの項目をご確認ください。

参考:Amazon RDS for Oracle の料金

https://aws.amazon.com/jp/rds/oracle/pricing/


リザーブドインスタンスの利用例

リザーブドインスタンスによる割引シミュレーションの一例を紹介します。
東京リージョン、マルチAZ、ライセンス込み、db.r6i.xlargeタイプのインスタンスについてリザーブドインスタンスを購入する場合、以下のようなパターンがあります。

No. 期間 支払い
オプション
オンデマンドインスタンス リザーブドインスタンス リザーブドインスタンス
利用時の料金削減率
初期費用 時間単位の費用 初期費用 実質的な時間単位の費用(*)
1 1年 前払いなし 333.6 240.15 28%
2 1年 一部前払い 333.6 1,022,850 233.55 30%
3 1年 全額前払い 333.6 1,987,200 226.8 32%
4 3年 一部前払い 333.6 2,191,800 166.8 50%
5 3年 全額前払い 333.6 4,208,100 160.2 52%

(*)利用を確約する期間内において発生する支払額合計を、期間内の総時間で割った数値です。時間単位の費用をプラン同士で比較しやすいよう記載をしております。


まとめ

今回はAmazon RDSの基本的な情報をご紹介してきました。Amazon RDSは、多くの利用メリットを提供するマネージドデータベースサービスであるため、既存のDBサーバーに課題を抱えている方にとって、Amazon RDSは魅力的な選択肢となるでしょう。

ただし、DBサーバーをAmazon RDSに移行する際には、考慮すべき多くの要素があります。この移行プロセスに不安を感じる方もいらっしゃるかもしれません。弊社では、Amazon RDSの導入・移行に関する技術支援を提供しています。AWS上でのDB構築や運用を検討されている方は、ぜひ弊社までご相談ください。



構築・移行支援サービスが必要な方はこちら

 アシストの「Amazon RDS 導入・移行支援」とは?

執筆者情報

さかもと ゆういち プロフィール画像

2017年入社。DWH製品のサポート業務に従事し、2020年頃からクラウド分野を担当。AWS関連の提案活動から技術支援、セミナー登壇等幅広く対応。それらの活動が認められ、 2021年にアシストで初めて「APN AWS Top Engineers」 に選出される。週末は「雰囲気がいいから」という理由で購入したレコードプレーヤーで音楽を聞くが、音質の違いは一切わからない。...show more


■本記事の内容について
 本記事に示した定義及び条件は変更される場合があります。あらかじめご了承ください。

■商標に関して
 ・Oracle®、Java、MySQL及びNetSuiteは、Oracle、その子会社及び関連会社の米国及びその他の国における登録商標です。
 ・Amazon Web Services、AWS、Powered by AWS ロゴ、[およびかかる資料で使用されるその他の AWS 商標] は、Amazon.com, Inc. またはその関連会社の商標です。
  文中の社名、商品名等は各社の商標または登録商標である場合があります。

関連している記事

  • AWS
2024.02.19

「お金をかけてわざわざ現地に行く必要があるのか?」に対する答え AWS re:Invent 2023参加レポート#3

本ブログではre:Invent 2023参加レポートとしての現地交流の様子や最新のサービスアップデートの情報を取り上げてきました。今回は趣向を変えて海外出張あるあるとも言えるテーマに管理職の立場で(怒られない程度に)踏み込んでみたいと思います。

  • AWS
2024.01.22

現地でしか味わえない交流について語る!AWS re:Invent 2023参加レポート#2

~しまえりの雲を向いて歩こう!シリーズ:第6回目~ 今回のブログ記事ではラスベガスで開催されたAWS re:Invent 2023に私しまえりも参戦しました!本記事では、現地で得られたことに関して特に人との交流に焦点を当ててお伝えします!

  • AWS
2023.12.18

コンタクトセンター向けクラウドプラットフォームAmazon Connectとは?特徴や料金を解説

Amazon Connectはローコードでクラウド型コンタクトセンターの構築を実現するサービスです。AWSの様々なサービスとの柔軟な連携により、顧客ニーズに合わせた最適なコンタクトセンターを支援します。本記事では特徴やメリット、よくある質問などを解説します。

ページの先頭へ戻る