さくらのクラウドニュース

さくらのクラウドの最新情報や、開発に役立つ技術情報をお届けします。

活用TIPS

【TIPS】クラウドで実現するBCP・DR~データセンター間をセキュアに繋ぐブリッジ接続~

BCP・DRは、システムが災害や不慮の事故などで、広範囲かつ甚大な被害を受けた際に、適切に業務・サービスを継続するための仕組みや体制のことです。
「さくらのクラウド」では、東京と石狩のデータセンターにリージョンを設けており、「ブリッジ接続」機能を利用することで地理的に離れたデータセンタ間をL2接続することが可能となり、各地に分散設置したシステムの組み合わせで冗長構成を行うことで災害によるシステム停止リスクを軽減することが可能です。「ブリッジ接続」を活用することで、容易にBCP・DRに対応したシステムを実現することができます。

drbcp01

ブリッジ接続のイメージ

※BCP:業務継続計画(Business Continuity Plan)
※DR:災害復旧(Disaster Recovery)

適用シナリオ

ブリッジ接続を利用することで、東京と石狩のクラウドサーバー間で、インターネットを経由せずにデータの同期が行えるようになります。ここではブリッジ接続の適用シナリオを2つ例として挙げさせていただきます。

A.Webサーバーのデータ同期

drbcp02
東京をメインサイト、石狩をバックアップサイトとして、東京から石狩に定期的にデータをコピーし、東京で稼働しているWebサイトが災害等でダウンした場合でも、石狩のWebサーバーでサービス継続することができます。

B.ファイルサーバーのデータ同期

drbcp03
東京をメインサイト、石狩をバックアップサイトとして、東京から石狩に定期的にデータをコピーし、東京で稼働しているファイルサーバーが災害等でダウンした場合でも、石狩のファイルサーバーに接続することで業務を継続することができます。東京と石狩それぞれにVPCルータを作成しておき、双方とお客様拠点とでサイト間VPN接続を行っておくことで、速やかな切り替えを実現します。注意事項として以下の通り挙げさせていただきます。

・ファイルサーバーのIPアドレスが異なるために、東京のファイルサーバから石狩のファイルサーバへ接続変更する際にエンドユーザ様側にて作業が発生します。
・VPNの接続先が同一のプライベートサブネットとなっているため、エンドユーザ様拠点のルータにて経路変更を行うよう設定変更もしくは自動経路変更等の考慮が必要となります。
・頻繁にファイルの追加/更新/削除が行われるシステムの特性上、データ同期の間隔や保護する対象のデータなど、ポリシー策定を綿密に行っておく必要があります。

今回は「A.Webサーバーのデータ同期」について、実際に環境構築する手順をご紹介致します。

環境構築の手順

本記事では、以下項目に従って環境構築を進めてまいります。
1.スイッチの作成
2.ブリッジ接続
3.サーバの作成
4.NICの追加
5.ローカルIPアドレスの設定
6.東京Webサーバーから石狩Webサーバーへのファイル同期設定

1.スイッチの作成

左上のゾーン選択で[東京第1ゾーン]を選択し、左メニューの[スイッチ]をクリックします。
switch01

スイッチの名前は[スイッチ東京]とし、右下の[作成]をクリックします。
switch02n

続いて左上のゾーン選択で[石狩第2ゾーン]を選択し、左メニューの[スイッチ]をクリックします。
switch03

スイッチの名前は[スイッチ石狩]とし、右下の[作成]をクリックします。
switch04

ここまでの手順で、それぞれのゾーンにスイッチを作成しました。
switch05

2.ブリッジ接続

左メニューの[ブリッジ]をクリックします。(ゾーンはどちらになっていても構いません)
bridge01

ブリッジの名前は[ブリッジ]とし、右下の[作成]をクリックします。
bridge02

[ブリッジ一覧]で、作成したブリッジをダブルクリックします。
bridge03

[スイッチ]タブをクリックし、[接続]ボタンをクリックします。
bridge05

この作業は東京第1ゾーン・石狩第2ゾーンそれぞれで行う必要があります。
東京第1ゾーンでは「スイッチ東京」を、石狩第2ゾーンでは「スイッチ石狩」を選択します。

・東京第1ゾーン
bridge06n

・石狩第2ゾーン
bridge07

ここまでの手順で、それぞれのゾーンのスイッチをブリッジで接続しました。
bridge08

3.サーバの作成

コントロールパネルより、東京第1ゾーン・石狩第2ゾーンそれぞれにサーバを作成します。

東京第1ゾーン

左メニューの[サーバ]をクリックし、[追加]をクリックします。
server01

今回は最小構成のサーバを作成します。
server03

ディスクの構成は以下の通りとします。
server04

[インターネットに接続]を選択します。
server05

管理者のパスワードとホスト名を入力します。
server06

「サーバの情報」にて[名前]を入力します。
server10

サーバ作成後NICを追加するため、[作成後すぐに起動]のチェックを外し、右下の[作成]をクリックします。
server07

石狩第2ゾーン

左メニューの[サーバ]をクリックし、[追加]をクリックします。
server08

今回は最小構成のサーバを作成します。
server03

ディスクの構成は以下の通りとします。
server04

[インターネットに接続]を選択します。
server05

管理者のパスワードとホスト名を入力します。
server09

「サーバの情報」にて[名前]を入力します。
server11

サーバ作成後NICを追加するため、[作成後すぐに起動]のチェックを外し、右下の[作成]をクリックします。
server07

ここまでの手順で、それぞれのゾーンにサーバを作成しました。
server12

4.NICの追加

続いてゾーン間通信のためのNICを追加し、スイッチに接続します。
東京第1ゾーンと石狩第2ゾーンの両方のサーバに追加していきます。

サーバの詳細画面で[NIC]タブをクリックし、[追加]をクリックします。
nic01

追加したNIC右端の▼をクリックし、[接続を編集]をクリックします。
nic02

東京第1ゾーンのサーバでは[スイッチ東京]と接続します。
nic03n

石狩第2ゾーンのサーバでは[スイッチ石狩]と接続します。
nic04

NICの追加およびスイッチとの接続が完了したら、各サーバを起動します。
nic05

ここまでの手順で、それぞれのゾーンのサーバとスイッチが接続されました。
nic06

5.ローカルIPアドレスの設定

ブリッジ接続経由でのデータ同期のために、スイッチに接続したNICに対してプライベートIPアドレスを付与します。本記事ではIPアドレスは以下の通りとします。

東京Webサーバー 10.0.0.11
石狩Webサーバー 10.0.0.12

それぞれのサーバにSSHログインし、以下コマンドを実行します。

・東京第1ゾーン

# echo "DEVICE=eth1" > /etc/sysconfig/network-scripts/ifcfg-eth1
# echo "NETMASK=255.255.255.0" >> /etc/sysconfig/network-scripts/ifcfg-eth1
# echo "IPADDR=10.0.0.11" >> /etc/sysconfig/network-scripts/ifcfg-eth1
# service network restart

・石狩第2ゾーン

# echo "DEVICE=eth1" > /etc/sysconfig/network-scripts/ifcfg-eth1
# echo "NETMASK=255.255.255.0" >> /etc/sysconfig/network-scripts/ifcfg-eth1
# echo "IPADDR=10.0.0.12" >> /etc/sysconfig/network-scripts/ifcfg-eth1
# service network restart

eth1に指定したプライベートIPアドレスが付与されているか確認します。

# ip a

ここまでの作業で、「A.Webサーバーのデータ同期」にて示した構成が完成しました。
drbcp02

6.東京Webサーバーから石狩Webサーバーへのファイル同期設定

Apacheのインストールを行います。それぞれのサーバにSSHログインし、以下コマンドを実行します。

# yum -y install httpd httpd-devel
# service httpd start
# chkconfig httpd on
# chown -R apache:apache /var/www/html

東京Webサーバーから石狩Webサーバーへファイル同期を行うにあたり、証明書を使用したSSHログインができるように設定します。東京Webサーバーで以下コマンドを入力し、鍵を生成します。

# ssh-keygen -t rsa

鍵ファイルの保存場所の入力要求がありますので、Enterキーを押下し先へ進みます。

Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):

パスフレーズの入力を求められますが、ここではパスフレーズを設定せずにEnterキーを押下し先へ進みます。

Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:

以下のように出力されれば、鍵ファイルの生成は完了です。

Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
<後略>

続いて東京Webサーバーの公開鍵を石狩Webサーバーにコピーします。

# ssh-copy-id -i .ssh/id_rsa.pub root@10.0.0.12

初回のSSHログイン時は接続時に(yes/no)を問う文言が出てきますので、yesと入力し、次へ進みます。また、パスワードの入力を求められるので、石狩Webサーバーのrootパスワードを入力します。

The authenticity of host '10.0.0.12 (10.0.0.12)' can't be established.
RSA key fingerprint is bd:ef:0a:da:76:33:03:fd:f2:25:83:a6:53:e6:a8:54.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '10.0.0.12' (RSA) to the list of known hosts.
root@10.0.0.12's password:

以下のように出力されれば、次回以降のSSH接続はパスワードの代わりに証明書を使用して認証を行うようになります。こうすることで、rsyncコマンドでのデータ同期をcronで定期実行させることができます。

Now try logging into the machine, with "ssh 'root@10.0.0.12'", and check in:
.ssh/authorized_keys
to make sure we haven't added extra keys that you weren't expecting.

東京Webサーバーの/var/www/htmlにあるコンテンツを石狩Webサーバーに定期的に同期する設定を行います。cronの実行タイミングは本記事では毎時10分としていますが、Webサーバーの運用ポリシーに合わせて適宜変更するようにしてください。

# crontab -e
10 * * * * rsync -avz --delete /var/www/html/ root@10.0.0.12:/var/www/html/

以下に例を示します。以下のような画像サイトがあると仮定します。左側は東京、右側が石狩です。東京側には15枚の画像が公開されているのに対し、石狩側は10枚の画像しか公開されていません。
rsync01

先ほど設定したcronが実行されることで、rsyncによって東京から石狩にデータ同期が行われ、サイトのコンテンツも同じになります。
rsync02

いかがでしたでしょうか。このようにクラウドを活用することで、遠隔地間のデータ同期を簡単に行うことができます。今回はWebサーバー間のデータの同期を例として取り上げましたが、その他にも応用可能な機能ですので、ぜひご活用いただければと思います。

次回はGSLB(広域負荷分散)を利用して、遠隔地間の2台のWebサーバへのアクセスを分散し、また障害時には正常稼動しているサーバにのみリクエストを転送する構成についてご説明いたします。

ブリッジ接続機能に関する詳しい情報はブリッジ接続のページを参照ください。