AWS RDSとは
Amazon RDS(Relational Database Service)とは、AWS(Amazon Web Services)で使用できるリレーショナルデータベースサービスのことです。セットアップ、スケーリングなど保守・運用をAWS側が機能として提供しています。データベースはシステムにおいて可用性・耐障害性・高セキュリティが求められる非常に重要な要素ですが、開発者にとってその構築や運用、管理は容易ではありません。そんなデータベースの管理に必要な機能をAWSは提供しています。
特徴・利点
RDSには以下のような特徴があります。
- 構築、管理が簡単
- 可用性・耐久性
- 高速化・パフォーマンスの向上
- スケーラビリティ
- コスト効率の高さ
- セキュリティ
構築、管理が簡単
従来のオンプレミス環境でデータベースを構築しようとすると場所や機材の選定・確保やセキュリティの構築など莫大なコストがかかります。RDSを利用することで、MySQLやOracleといったDBエンジンの選択や保存容量などの必要な設定を行うだけで数分でデータベースを起動することができます。
可用性・耐久性
マルチAZ構成を選択することでマスター(プライマリ)DBとスレーブ(セカンダリ)DBが作成されます。スレーブDBとはマスターDBのバックアップのようなもので、マスターDBの変更を即座に反映(同期レプリケーション)することができます。万が一障害が起きた時はスレーブDBがマスターDBに昇格するフェイルオーバーを自動で行ってくれる機能がRDSにはあり、データベースの稼働を継続させることができます。また、スナップショットやトランザクションログの自動バックアップ機能もあります。このようにRDSは可用性・耐久性に優れています。
高速化・パフォーマンスの向上
RDSはリードレプリカを作成できます。リードレプリカとは読み取り専用のデータベースのことです。マスターからレプリケーションされた読み取り専用DBを用意することで、大量に読み込みが行われるサービスにおいて負荷を軽減し、パフォーマンスを高めることができます。
スケーラビリティ
RDSは必要に応じてストレージを選ぶことができますが、もしも保存容量が足りなくなった際にはインスタンスタイプを変更するだけで簡単にスケールアップすることができます。また空き容量が少なくなってくると自動で増やしてくれるオートスケーリングを設定することもできます。
コスト効率の高さ
RDSの料金体系は、使用した分だけ料金が発生する従量課金制です。さらに初期費用は無料で、使わなくなったデータベースは削除することで料金は発生しません。一年または三年で契約することで大幅な割引を受けられるリザーブドインスタンスという制度もあります。またデータベースの停止・起動が可能で常にデータベースを実行する必要がないため、開発・テスト用途でのデータベース使用もより経済的に行うことができます。サービスに最適な料金体系を選択できるコスト効率の高さはRDSの特徴です。
高いセキュリティ
RDSではアクセス制御や暗号化機能により指定されたユーザーのみがDBにアクセスできるようにすることが可能で、高セキュリティを実現しています。
料金の仕組み
RDSの料金体系はインスタンスの起動時間、保存データ容量、データ転送量に応じて決まります。起動時間料金はインスタンスタイプ・DBエンジンにより異なります。オートスケーリングを設定している場合はスケールアップにより料金が上がるため注意が必要です。保存しているデータ容量にかかる料金もストレージの種類・DBエンジンにより異なります。例えばMySQLの場合は以下のようになります。(※2022/12現在)インスタンスタイプの変更、AZ配置により時間料金が変動、ストレージタイプにより1GBあたりの料金が変動、さらにDBエンジンによっても料金が異なります。
料金 | タイプ | |
---|---|---|
起動時間ごとの料金 | 1時間あたり0.208USD | db.t3.medium、マルチAZ |
保存データ容量ごとの料金 | 1ヶ月あたり0.276USD/GB | 汎用SSDストレージ、マルチAZ |
こちらの料金は定期的に変更されます。各DBエンジンの正確な料金はAmazonRDSの公式サイトにて確認してみましょう。
また、すでにOracleやSQL Serverなどの商用データベースを使用している場合はBYOL(Bring Your Own License)という自前のライセンスを持ち込むことができるプランも利用することができます。
種類
RDSで選ぶことができるデータベースエンジンは以下の通りです。
- Oracle
- MySQL
- MariaDB
- SQL Server
- PostgreSQL
- Amazon Aurora
Oracle
Oracleはフルマネージド型のDBエンジンです。セットアップから運用、スケーリングまでRDSが管理できます。ライセンス込みもしくはBYOLRDSで実行可能です。RDSでは以下のバージョンに対応しています。(2022/12現在)
- Oracle Database 21c (21.0.0.0)
- Oracle Database 19c (19.0.0.0)
- Oracle Database 12c Release 2 (12.2.0.1)(サポート終了のため非推奨)
- Oracle Database 12c Release 1 (12.1.0.2)(サポート終了のため非推奨)
MySQL
MySQLは世界で最も人気のあるオープンソースのDBエンジンです。操作がシンプルで開発規模の大小問わず幅広い場面で使用されています。RDSでは以下のバージョンに対応しています。(2022/12現在)
- MySQL 8.0
- MySQL 5.7
MariaDB
MariaDBはMySQL5.5から派生したDBエンジンです。MySQLとの互換性の高さはもちろん、MySQLにはない新機能の追加や改善が行われているという特徴があります。RDSでは以下のバージョンに対応しています。(2022/12現在)
- MariaDB 10.6
- MariaDB 10.5
- MariaDB 10.4
- MariaDB 10.3(サポート終了予定のため非推奨)
- MariaDB 10.2(サポート終了のため非推奨)
SQL Server
SQL Serverはフルマネージド型のDBエンジンです。Microsoft社開発でWindowsとの相性が良く、Windows環境でよく使われています。RDSでは以下のバージョンに対応しています(2022/12現在)
- SQL Server 2019 CU16 15.0.4236.7
- SQL Server 2017 CU30 14.0.3451.2
- SQL Server 2016 SP3 GDR 13.0.6419.1
- SQL Server 2014 SP3 CU4 12.0.6439.10
PostgreSQL
PostgreSQLはMySQLに次いで人気の高いオープンソースのDBエンジンで、オブジェクト指向が取り入れられたオブジェクトリレーショナルデータベースです。RDSでは以下のバージョンに対応しています。(2022/12現在)
- PostgreSQL 14
- PostgreSQL 13
- PostgreSQL 12
- PostgreSQL 11
- PostgreSQL 10(サポート終了予定のため非推奨)
Amazon Aurora
Amazon AuroraはAmazonが開発・提供するMySQLおよびPostgreSQLと互換性のあるRDS向け独自のDBエンジンです。標準的なMySQLに比べて5倍、標準的なPostgreSQLに比べて3倍の処理能力があります。また、リードレプリカを最大15個設置することができます。MySQLやPostgreSQLのリレーショナルデータベースとしての一貫性を持ちながら、リードレプリカ等クラウド向けに最適化された特徴があります。
無料枠
RDSには無料利用枠があります。AWSのアカウントを新規で作成した日から12ヶ月間、以下の条件で無料でRDSを利用することができます。
- MySQL、MariaDB、PostgreSQLの場合: Single-AZ db.t2.micro、db.t3.micro、db.t4g.micro インスタンスで750 時間/月
- SQL Server Express Editionの場合: Single-AZ db.t2.micro インスタンスで750 時間/月
- 20 GB の汎用 (SSD) DB ストレージ
- 20GBのスナップショットと自動バックアップ
RDS proxy
Amazon RDS Proxyとは、RDS向けの高可用性フルマネージド型データベースプロキシです。プロキシとは「代理」という意味があり、RDS proxyはアプリケーションとRDSの中間に配置されてデータベースへの接続を効率化してくれます。特徴の一つとして、コネクションプールを確立・管理することで既存の接続を利用することができ、多数の同時接続による負荷の軽減を実現しています。またフェイルオーバー高速化によりデータベース障害に対する回復力と安全性が高くなっています。RDS proxyが対応しているDBエンジンはMySQL、PostgreSQL、SQL Serverです。
まとめ
Amazon RDSはデータベースの運用負荷を軽減できるサービスです。RDSを利用することでデータベース管理の負担は大幅に減ります。データベースエンジンの種類ごとの特徴を押さえ、またサービス・目的に応じたインスタンスタイプやストレージタイプ、オプションを選択することも必要です。マルチAZ構成、リードレプリカなどによる障害対策、性能対策を講じることも重要になってきます。AWSが提供する機能の内容や仕組みをしっかり押さえて最適なアーキテクチャを検討できるといいでしょう。
【番外編】USBも知らなかった私が独学でプログラミングを勉強してGAFAに入社するまでの話
プログラミング塾に半年通えば、一人前になれると思っているあなた。それ、勘違いですよ。「なぜ間違いなの?」「正しい勉強法とは何なの?」ITを学び始める全ての人に知って欲しい。そう思って書きました。是非読んでみてください。
「フリーランスエンジニア」
近年やっと世間に浸透した言葉だ。ひと昔まえ、終身雇用は当たり前で、大企業に就職することは一種のステータスだった。しかし、そんな時代も終わり「優秀な人材は転職する」ことが当たり前の時代となる。フリーランスエンジニアに高価値が付く現在、ネットを見ると「未経験でも年収400万以上」などと書いてある。これに釣られて、多くの人がフリーランスになろうとITの世界に入ってきている。私もその中の1人だ。数年前、USBも知らない状態からITの世界に没入し、そこから約2年間、毎日勉学を行なった。他人の何十倍も努力した。そして、企業研修やIT塾で数多くの受講生の指導経験も得た。そこで私は、伸びるエンジニアとそうでないエンジニアをたくさん見てきた。そして、稼げるエンジニア、稼げないエンジニアを見てきた。
「成功する人とそうでない人の違いは何か?」
私が出した答えは、「量産型エンジニアか否か」である。今のエンジニア市場には、量産型エンジニアが溢れている!!ここでの量産型エンジニアの定義は以下の通りである。
比較的簡単に学習可能なWebフレームワーク(WordPress, Rails)やPython等の知識はあるが、ITの基本概念を理解していないため、単調な作業しかこなすことができないエンジニアのこと。
多くの人がフリーランスエンジニアを目指す時代に中途半端な知識や技術力でこの世界に飛び込むと返って過酷な労働条件で働くことになる。そこで、エンジニアを目指すあなたがどう学習していくべきかを私の経験を交えて書こうと思った。続きはこちらから、、、、
エンベーダー編集部
エンベーダーは、ITスクールRareTECHのインフラ学習教材として誕生しました。 「遊びながらインフラエンジニアへ」をコンセプトに、インフラへの学習ハードルを下げるツールとして運営されています。
関連記事
2020.02.25
完全未経験からエンジニアを目指す爆速勉強法
USBも知らなかった私が独学でプログラミングを勉強してGAFAに入社するまでの話
- キャリア・学習法
- エンジニア
2023.03.27
データベースエンジニア向けの難易度別オススメ資格
今回はデータベース資格について解説します。資格を取ろうと考えている方は、ぜひ参考にしてくださいね。
- データベース
- キャリア・学習法
2024.10.19
SQLでの左結合と右結合の基本を簡単に理解しよう
この記事では、左結合と右結合の基本的な仕組みについて、具体的な例を使いながら分かりやすく説明していきます。SQLでのデータ結合を理解することで、複雑なデータの分析や操作がより効果的に行えるようになります。
- データベース
2024.05.13
CodeCommitとCodePipelineによるCICDパイプラインの構築ハンズオン
このハンズオンでは、AWSのCodeCommit、CodePipeline、およびCodeBuildを使用して、シンプルな継続的インテグレーション/継続的デリバリー(CICD)パイプラインを構築します。
- AWS
- ハンズオン