COLUMN誰でもわかる!お役立ちコラム

AWS活用支援コラム

AWSが扱うデータベースを広く理解する

マネージドサービスとしてのデータベースとは?

AWS(Amazon Web Services)や、GCP(Google Cloud Platform)といった、パブリッククラウドの利用におけるメリットの一つとして、マネージドサービスの存在があります。また、これらのパブリッククラウドにおけるマネージドサービスでは様々な種類のサービスがリリースされていますが、その中でも最も利用されているものとしては、データベースのマネージドサービスが存在しています。

本記事では、AWSにおけるマネージドサービスとしてのデータベースのメリットや種類について、どのようなものがあるのか、記載していきます。

マネージドサービスとは

マネージドサービスとは何なのでしょうか。マネージドサービスとは、クラウドが提供するサービス形態の一つです。クラウドが提供するサービス形態としては、
IaaS(Infrastructure as a Service)、PaaS(Platform as a Service)、SaaS(Software as a Service)、FaaS(Function as a Service)などがあります。このうち、クラウドサービス提供側(AWS等)が実際のサーバーを用意し、管理を行うPaaS、SaaS、FaaSが、『マネージドサービス』に該当します。つまり、AWSやGCPなどのクラウドサービス提供者が物理サーバを用意し、設定、運用管理を行っているため、”マネージド(運用管理された状態にある)サービス”と呼びます。

データベースの運用の難しさ

データベースの運用はほかのミドルウェアと比べて一般的に下記の面で難しいと言われています。

  •  キャパシティ予測が難しい
    データベースがどのような頻度で利用され、どのくらいのデータを保持するか、といった予測を正確に事前に立てることは非常に難しいです。また、一時的なアクセスのスパイク(急上昇)などもいつ発生するか、どのくらいのアクセスが行われるかは予測ができません。
  •  運用コストがかかる
    データベースを的確に運用するためには多大なコストがかかります。データベースは数多くのシステムにおいてコアとなる役割を果たしているため、停止時間を確保するメンテナンスが難しく、パッチ適用や設定変更などの保守作業を実施する際にも多大な工数がかかります。また、バックアップ用の容量を確保したり、サーバーを確保したりと、物理機器の確保、導入にも時間とコストがかかってしまいます。
  •  設定項目が多い
    セキュリティやパフォーマンスの設定が多岐にわたり、設定項目が非常に多く、多くのエンジニアを悩ませています。また、Oracleなどの商用データベースは、安全かつ適切に利用するためには深い知見を持った専門的なエンジニアが必要です。

マネージドサービスとしてのデータベースのメリットとは?

マネージドサービスとしてのデータベースのメリットとは、『データベースの難しい運用をAWSに所属する凄腕エンジニアに委任できる』ということにつきます。したがって、運用にかかるコストを少なくするとともに、データベースの安定稼働を実現することができます。また、運用に割いていた人的リソースやコストを他に注力させることができるので、経営を効率化することができます。

データベースの適材適所

AWSが提供するデータベースサービスには多様な選択肢があり、アプリケーションに応じて最適なサービスを選択する必要があります。どのような種類があるのか、具体的に見ていきましょう。

RDBMS(リレーショナル・データベース)とは?

RDBMSとは、Relational DataBase Management Systemの略で、属性を列、組を行とする表(テーブル)の形でデータを格納するデータベースです。SQLと呼ばれる言語を用いてデータの参照や加工をおこないます。RDBMSは不整合のあるデータの記録を拒否するなどしてデータベースの整合性を保つ機能や、権限のない利用者による不正な読み出しや改竄などからデータを保護する仕組みを持っています。

また、関連する複数の処理を一体化して矛盾なく実行する機能(トランザクション管理機能)もあり、データの正確性に強みを持っています。一方で、SQLによる読み書きに時間がかかってしまうデメリットがあり、非常に高速にデータを読み書きするようなアプリケーションには不向きな場合もあります。

NoSQLとは?

NoSQLはRDBMSではないデータベース全般を指します。キーバリューストア型データベース(Amazon DynamoDB)や、グラフ型(Amazon Neptune)など、さまざまな形式でデータを格納します。RDBMSと比較してデータの整合性には多少の弱みがありますが、データの格納形式がRDBMSよりも複雑ではないため追加処理やデータ参照が多いシステムに向いています。

マネージドデータベースを活用して運用コストを引き下げるスタイルズのAWS導入・移行サービスはこちら→

Amazonが提供する”データベース”の種類

Amazonでは、『万能のデータベースは存在しない』(出典:https://www.allthingsdistributed.com/2018/06/purpose-built-databases-in-aws.html)の思想から、様々なマネージドデータベースサービスが提供されています。下記に具体的なサービス名と、分類について記載していきます。

  • リレーショナルデータベース(RDBMS)
    Amazon RDS(MySQL、MariaDB、PostgreSQL、商用としてのOracle、SQL Server)
    Amazon Aurora(MySQL互換、PostgreSQL互換)
    ※AWS上の区分としては、AuroraもRDSに含まれるのですが、この記事では別個のものとして区分しています。
  • キーバリューストア型データベース(NoSQL)
    Amazon DynamoDB
  • ドキュメントデータベース(NoSQL)
    Amazon DocumentDB
  • インメモリデータストア(NoSQL)
    Amazon ElastiCache
  • グラフデータベース(NoSQL)
    Amazon Neptune
  • 時系列データベース(NoSQL)
    Amazon Timestream
  • 台帳データベース(NoSQL)
    Amazon QLDB

Amazon Relational Database Service(Amazon RDS)の特徴

Amazon RDSは上記の通り、RDBMSとして提供されるマネージドデータベースです。6つのデータベースエンジン MySQL、PostgreSQL、MariaDB、MicrosoftSQLServer(商用)、 Oracle(商用)から選択が可能となっており、様々な用途や要件に対応しています。Amazon RDSはPaaSの形式で提供されており、ストレージ容量の拡張と縮小が自在にできたり、自動でバックアップの取得やパッチ適用が可能となる機能があったりと、一般的なデータベースと比較して大幅に運用が楽になっています。

Amazon Auroraの特徴

Amazonがクラウド時代に向けて再設計した、高性能の商用データベースの速度や信頼性と、オープンソースデータベースのシンプルさや費用対効果を兼ね備えたリレーショナルデータベースエンジンです。選択できるデータベースエンジンはMySQL、PostgreSQLであり利用可能なバージョンも制限されますが、機能は大幅に向上しています。

大きな違いとしては、Auroraは(非Auroraの)RDSと違って、データベースが稼働しているサーバーとストレージが分離していることと、そのストレージが6箇所のストレージにコピーされる点です。したがって、1,2個のストレージでネットワーク障害、ディスク破損などの問題が起こっていたとしても、アプリケーションに影響がないように、高速な読み書きや可用性の向上が可能になっています。

マネージドデータベースを活用して運用コストを引き下げるスタイルズのAWS導入・移行サービスはこちら→

AWSのNoSQLの代表例 Amazon DynamoDB

RDSやAuroraの次にAWSのデータベースとして有名なサービスが、Amazon DynamoDBです。Amazon DynamoDBはキーバリューストア型のマネージドデータベースで、データをキーとバリューという一対一の構造で保持します。データの格納と取得に特化しており、IoTアプリケーションやゲームアプリケーションなどの、1桁ミリ秒単位の読み書きを要求する場合に適しています。

こちらも、データのバックアップやストレージの拡張などを自動実施する機能があり、運用における負荷が軽減される機能が存在しています。

まとめ

マネージドデータベースを利用すると、データベースの運用における負荷やコストを大幅に削減することが可能です。一方で、AWSにおいては多様なデータベースサービスが提供されているため、間違った選択をすると、開発上の大幅な手戻りなどのムダが発生する可能性があります。少しでも不安があれば安心できるベンダーに相談しながら選択するといいでしょう。