インフラ

オンプレミスからAWSへのDB移行・連携・BCP活用セミナーに参加して来ました。(株式会社クライムさま主催・Amazonさま共催)

株式会社クライムさま主催(Amazonさま共催)
オンプレミスからAWSへのDB移行・連携・BCP活用セミナーに参加してきました。

今回のセミナーの内容はAWSにおけるDB運用の入門として、
アマゾン データ サービス ジャパン株式会社の下佐粉様より、
「AWSでのDB構築・運用のノウハウ」

AWSのRDSをはじめとするDB間のデータの移行・連携の手段のご提案として、
株式会社クライムの古川様から、
「オンプレミスDBからAWSへ移行・連携するための最適手法 」

の2講演。

講演ではAWSとは何か、AWSの特色はどんなものかからご説明いただき、
AWSについてほとんど知らない方でもよく理解できたのではないかと思います。

復習がてら簡単に解説しますと、AWSはアマゾン データ サービス様が提供されているクラウドサービスです。
サーバーやデータベース(DB)、ドメイン(DNS)、ストレージなどからそれらの監視システムなど、
実に50種近いサービスを提供されています。
その種類豊富さたるや、なんとDBだけで4種類。AWSのサーバー(EC2)に好きなDBをインストールすることも可能なので実質5種類。
ほとんどのサービスはAWS上で構築が可能なのはもちろん、
AWSのサービスは基本的に「すぐに使える」状態を数分程度で用意して渡してくれるという便利さです。

もしDBを0から新規に用意する場合、サーバーの選定からOSのインストール、
OSの更新パッチのダウンロード、DBのインストール、DBの更新パッチのダウンロードと最低でも数時間。
ほとんどの人は数日かかる作業が数分で済んでしまうわけです。
知識もある慣れた人が各機能の良いところをつまんで構築していけば、
かなり複雑なシステムでも数日中に環境を構築してしまえるのではないかと思います。
しかもそれが世界中のサーバー上で自由に簡単に開設できてしまうのです。

東京のデータセンターにシステムの本体を置いて、
何かあった時のためにシンガポールに予備のサーバーを用意しておいて何かあった時に起動する、なんてことができてしまいます。

AWSは1時間単位の従量課金制なので、この予備のサーバーは何かないかぎり起動しないようにしておけばお金はほぼかかりません。
あまぞんさんつよい。

そして従量課金制ということは、必要な時だけサーバーを起動させればいいので
バッチ用のサーバーはバッチを動かす時だけ動かせばいい。通常のサーバーも、
パラレル構成なら利用者が多いときだけフル稼働させて利用者が少ないときは最低限だけ動かしておけばいい。
そういうお財布にやさしい使い方ができます。

全体の特徴をおおざっぱに要約しましたが、
サービス一つ一つにもそれぞれの利点があるため正直AWSのいいところ、というのは上げきれません。
ですがこれらの特徴が今、AWSが大いに支持される理由の一つではないかと思います。

さて本題に戻りまして、今回はAWSの中でも今回は特にDBに焦点を当てた講演で、
「AWSでのDB構築・運用のノウハウ」では特にAWS上でRDB・DWHを運用する際に代表的な手法3つの特徴と利点を解説していただきました。

先述したDBの4種のサービスとEC2にDBをインストールする方法とを含めて5つ方法があるうち、
RDBまたはDWHと呼ばれるのものを運用する方法は3つ。Amazon RDS、Amazon Redshift、EC2へのDBのインストールです。

Amazon RDSはAmazonが提供する6種類のDBエンジンから1つを選択していくつかの設定をすると、
あとはAmazonさんがすぐに使える状態にしたDBを用意してくれ、
以降のDBサーバーの保守や運用管理、障害対応もやってくれるマネージド型のサービスです。
もちろんやってくれるのはDBサーバーの保守なので、
DBの中身の運用管理は自前です。しかしそれもバックアップを自動でとってくれたりとAmazonさんが大変手厚いので、
自前でやるのは最低限で済むでしょう。

RDSは代表的なRDB(MySQL、Oracle、PostgreSQLなど)を便利に使うための機能が多く揃っていますが、
特に得意なのがあまり複雑でないSQLを多く実行することです。
RDSの機能にRDSとデータを同期させた読み取り専用のDBを用意する、というものがあるため、
アクセスの多いサービス(特にデータを書き込むより読み込むほうが多いもの)に向いていると言えます。
停電等の不測の事態が起きたとしてもサービスをほぼ止めないで済む対策やサービスも多くある(紙面が伸びるため説明は割愛します)ため、
AWSでRDBを扱っている方は多くがRDSを使用しているのではないでしょうか。

Amazon RedshiftはこちらはDWH。大規模データの蓄積・分析を得意とするこちらもマネージド型のDBサービスです。
その容量なんと数ペタバイト(1ペタバイトは1024テラバイト)。まず滅多にお目にかかることのない大容量です。
列指向型のため計算などの分析を通常のRDBよりずっと早く行えますし、
お話によればとてつもなく長いSQLでも高速で処理してくれるということです。
ただし、テーブルを複数のノードに分けているため、
通常のサイトやシステムで使用するようなSQLを大量に処理するようなことには向かないので、
本当に特化型のDBであるようです。
特化型であるため、機能が実現したい内容とマッチした場合にはたいへん頼もしいDBです。
Redshiftももちろんフルマネージド型のサービスなので、
『試しに作ってみる』が手軽にできてしまうのも頼もしい点の一つでしょう。

前者2つと反対に、DBを使い始めるまでの手間を全く省かないのがEC2へのDBのインストールです。
EC2を立ち上げた後、DBのインストールや接続、バックアップなどの設定を自力で行う必要があります。
これだけ聞くとメリットがほとんど無いような気がする方もいらっしゃるかもしれませんが、
EC2へのDBのインストールももちろん利点があります。
それは、自力で行うために細かいチューニングが可能であるという点です。
RDS、Redshiftはコンソール画面から設定できる項目以外を変更することができません。
そのため、既存のサービスをAWSに移そうとする際にRDS、Redshiftでは対応できない部分が出てしまうこともあります。
それを解決できるのが、EC2へのDBのインストールというわけです。
これからサービスを開始する場合にはあまり選択肢に挙げることはないでしょうが、
既存のものがある場合には必ず選択肢の一つとしてこの手法が上がってくる

後半の「オンプレミスDBからAWSへ移行・連携するための最適手法 」では、
株式会社クライム様の販売製品であるDBMotoを使用してのデータ移行、データ同期の実演をメインに機能の解説をしていただきました。
DBMotoはWindows環境上で動作するレプリケーションツールで、対象となるDBのOSは問わずにレプリケーションを行ってくれます。
多くのDBを扱えるツールで、OracleからMysqlのように異なるDB間でもデータ移行を行ってくれます。
テーブル構成の違いも、実行までにどのテーブルのどのカラムにどこのテーブルのどのカラムから移行するかを登録しておけば
その通りに移行してくれるなど、柔軟に対応してくれます。
運用中のシステムからデータを移行する際、どうしてもネックとなってくるのが移行のためにシステムを止めなくてはいけないという点です。
一般に、大きいシスエムであればあるほどシステムを止めるというのは影響が大きく、難しくなっていきます。
DBMotoではそれらを解決する便利な機能が多くそろっているようです。
実際のデータ移行でシステムを停止しなければならない理由はデータの不整合を防ぐためですが、
DBMotoでは内部で仮想のPKを設定してリアルタイムに近いレプリケーションが行えるため、
不整合が起こらないように作られています。
DBMotoの機能を使えば、データの移行だけならば、サービスの停止時間は本当に最小限で済ませられるのではないでしょうか。
正直、こちらも機能が大変多いツールですので利点は書ききれませんが、
これからDBの移行を行う、という方にはDBMotoは大変便利なツールであるように思われます。
これから移行やレプリケーション機能を考えていらっしゃる方は、検討して損はないと思います。

今回参加させていただいたオンプレミスからAWSへのDB移行・連携・BCP活用セミナーは
AWSへの知識があまりない人でも理解しやすく初心者にやさしい、大変良い講演でした。

主催の株式会社クライムさま、共催のAmazonさま。講演をしてくださった下佐粉様、古川様。ありがとうございました!