連載:Azure で学ぶインフラ入門3(DBサーバー構築編)

こんにちは、第3回まで引っ張った続いた本連載もこれで最後です。

本記事では、DBサーバーを構築し、いよいよブログシステムを完成させます。

1. DBサーバの構築

これまでの振り返りも含め、以下の構成図にてこれから作るものを確認しましょう。

DBサーバを構築したのち、Webサーバの方に WordPressをインストールして、ブログシステムを完成させます。

1.1 インターネットから隔離したDBサーバを立てる

DBサーバ用の VM を作成していきます、というと Azure などのクラウドサービスの利用経験がある方は疑問に思うかもしれません。

DB を立てるなら本来は、「Azure SQL データベース」や ほかの DBMS を使いたい場合は専用の Azure サービスがありますので、そちらを利用するのが正しいからです。Azure のDBサービスであれば、これから設定していく DB の初期設定など導入の手間が省ける上、フェイルオーバーなどの設定もコンソール上から簡単に設定できます。

しかし今回は、ネットワークやサーバの気持ちを理解するために、あえて1から作成します。VM の構築方法の詳細は、前回の記事を参考にして下さい。ここでは、前回の基本設定と異なる点に注力して解説します。

まずは基本設定をしていきます。

名前は「DB-Server」、ディスクは「HDD」、ユーザ名は「centos」、SSH公開鍵の登録ですが、練習なので Webサーバーに登録した鍵と同じもの良いでしょう。それ以外の設定は Webサーバと一緒です。

続いてサイズ設定です。

ここも Webサーバと同じ、練習なので「A1 Basic」で良いでしょう。

最後にその他オプション設定です。

サブネットには、DBサーバですので「private-subnet」を選びましょう。

このサーバはインターネットからアクセスできないようにしたいので、パブリックIPアドレスは「無し」を選択して下さい。ネットワークセキュリティグループは、デフォルトで新規作成されるものをそのまま選択してください。

次のページで各種設定を確認したら VMを作成して下さい。

1-2. 踏み台サーバを経由してSSHでDBサーバへ接続する

前節で作成した VMは「DB-Server」という名前になっているものの、まだ DBサーバソフトをインストールしていません。ここから SSHでログインして MySQLという DBサーバソフトをインストールしてきます。

ここで一つ疑問があります。DBサーバはパブリックIPアドレスを持たず、インターネットから SSHで接続することができないのに、どうやってこの VMにアクセスすれば良いのでしょうか。

その解決方法の一つが「踏み台サーバ」です。

ここまでの操作で、Webサーバにはインターネットから SSHでアクセス可能になりました。Webサーバは DBサーバと同じネットワーク内部のVMです。そこで、① Webサーバに SSHでアクセス、②  Webサーバから DBサーバに SSHでアクセス、というように Webサーバを踏み台とすれば、ローカル環境から DBサーバへとアクセスできます。

以下のネットワーク構成図で上記の話をまとめます。

 

秘密鍵のアップロード

踏み台サーバを介してSSH接続をする場合、踏み台からDBサーバからSSH接続する際にも秘密鍵の情報が必要です。しかし、秘密鍵は手元のローカルPCにだけある状態です。

このような場合、単純にローカルPCにある秘密鍵ファイルをWebサーバに転送できれば、同じように SSHコマンドで鍵ファイルを指定することで同じように接続できます。このようなサーバ間でのファイルの受け渡しは、「SCP(Secure Copy)」プロトコルで実現できます。

・Windows の Tera Termの場合

Tera Term では「ファイル」メニューから「SSH SCP」をクリックすると 、ファイルを転送できます。

・Mac の場合

Macの場合は、ターミナルから scp コマンドを用いてファイルの転送が可能です。

コマンド例は以下となります。

「-i 」の後には、転送先へのSSH接続で使う秘密鍵ファイルのパスを指定します。

scp  -i ” 接続のための秘密鍵のパス”  “転送したいファイルのパス”  “リモートホストのユーザ名”@”リモートホストのIPアドレス”:”転送するファイルを置くリモートホスト上のパス”

という書式で記述します。

 

秘密鍵のパーミッション変更

Webサーバへ転送ができたら、そのファイルの権限や所有ユーザを変更します。Webサーバへログインして以下のコマンドを実行してください。

 

Webサーバから DBサーバへSSHで接続する

これまで SSHで接続するときは リモートサーバのパブリックIPアドレスを指定していましたが、DBサーバはパブリックIPアドレスを持ちません。ただし、同じネットワーク内部からアクセスするのであれば「プライベートIPアドレス」を指定することでSSHでの接続が可能です。

プライベートIPアドレスは、前節で作成した「DB-Server」の「ネットワーク」の項目から確認できます。

プライベートIPアドレスが確認できたら、以下のコマンド例でDBサーバへ接続します。

ターミナルの入力待ちのラインが  [centos@db-server ~]$ となれば、接続成功です。接続先のサーバから接続もとのサーバに戻りたいときは exit と打つことで戻ることができます。

2.  DBサーバへ MySQL をインストールする

前章までで、DBサーバに踏み台サーバを介してアクセスすることができるようになりました。この章では DBサーバに MySQL をインストールし、ブログ記事を格納する DB を作成していきます。

2-1. MySQLのインストール

MySQL は yum コマンドでインストールしていきます。インストール方法は下記の記事を参考にしています。

DBサーバにログインした状態で以下のコマンドを実行してください。

2-2. MySQL の起動と初期設定

インストール以降の初期設定については以下を参考にしております。

次に、 MySQL を起動しましょう。次のコマンドを実行してください。

続いて、MySQLの管理者パスワードを設定しましょう。

2-3. WordPress 用のデータベースを作成する

WordPressで使用するデータベースを作成していきます。まずは先ほど設定したパスワードでmysqlに接続します。

接続に成功したら、mysql> のプロンプトが現れます。ここでSQLを実行することで、データベースの各種操作ができます。

まずはデータベースを作成するために、次のように入力します。ここではデータベース名を「wordpress」としました。

上のような Query OK が出たら実行に成功です。

続いてユーザを作成します。ここではユーザ名を「wordpress」、パスワードは「WordPressPasswd0:」で設定します。

wordpress ユーザには、先ほど作成した wordpress データベースに対して、全ての権限を与えます。

最後のSELECT 文で wordpress ユーザが出力されたら、データベースの作成は完了です。

DBサーバのMySQLの設定は以上ですので、exit と入力して mysql コマンドを終了させてください。

3. WordPressの導入〜ブログシステムの仕上げ〜

以上でDBサーバの設定が完了したので、続いてWebサーバに WordPressをインストールしていきます。

3-1. PHP や 関連ライブラリのインストール

WordPressを使うには、PHPやその他ライブラリが必要です。以下のコマンドでインストールしていきます。

3-2. Webサーバから MySQLにアクセス

次に、Webサーバ上からDBサーバの MySQL にアクセスへの疎通確認をするため、mysqlコマンドもインストールします。

 ただし、DBサーバのポートは22ポート以外閉じたままのデフォルト設定のままです。MySQLのポート番号は3306なので、このままではアクセスできません。DBサーバ の セキュリティグループから 3306ポートを開けましょう。

リソースグループから、「blog-system」を選択し、グループ内リソースの「DB-Server-nsg」をクリックします。

「DB-Server-nsg」のパネルが開いたら、左端の「受信セキュリティ設定」を開きます。

受信セキュリティルールの一覧が表示されたら、画面上部の「追加」をクリックします。

DBサーバの MySQL には パブリックサブネットのみからのアクセスに制限したいので、ソースの設定はこれまでと異なります。

ソースは、「IP Address」を選択、ソース IP アドレス範囲/ CIDR範囲には、パブリックサブネットの「10.0.0.0/24」を指定します。ここにWebサーバのIPアドレスを指定すれば、Webサーバのみからアクセスできるようになります。宛先ポート番号には「3306」で、プロトコルは「TCP」、名前は「MySQL-default」としました。

ポートが開けたので、Webサーバ上から DBサーバの MySQL に接続してみましょう。Webサーバにログインし、以下のmysqlコマンドを実行してください。

「-h」の後には、DBサーバのプライベートIPアドレスを入力してください。「wordpress」ユーザのパスワードは先ほど「WordpressPasswd0:」と設定したので、これを入力してください。接続に成功したら、疎通確認は終了です。exit コマンドでmysqlを終了してください。

3-4. WordPressのインストール

PHPやMySQLの準備ができたので、WebサーバにWordPressをインストールしていきます。

以上でWordPressのインストールは完了です。

3-5. WordPressの設定

WordPressの各種設定をしていきます。

Apache  の起動

まずは Webサーバ上の Apacheを再起動させます。再起動しないとインストールしたPHPが有効になりません。

これでWebブラウザから Webサーバにアクセスすれば、WordPressの画面が表示されるようになります。

WordPress を初期設定する

Web サーバのパブリックIPアドレス or DNS 名を Web ブラウザに入力しましょう。以下の画面が表示されるはずです。

 「さあ、始めましょう!」とクリックして設定をすすめてください。

先ほどMySQLで設定した情報を入力していきます。

データベース名は「wordpress」、ユーザ名は「wordpress」、パスワードは「WordpressPasswd0:」、データベースのホスト名には、DBサーバのプライベートIPアドレスを入力してください。テーブル接頭辞はデフォルトのままで大丈夫です。

「送信」ボタンをクリックしたら、データベースとの接続確認を行います。

インストールを実行する

データベースとの接続に成功したら、「インストールを実行する」をクリックします。

サイトのタイトルや管理者情報を入力する

最後に、サイトのタイトルや管理者のユーザ名、パスワードなどを入力します。初期設定が完了し、WordPressの管理ページが表示されれば成功です。

まとめ

以上で、WordPress を用いたブログシステムの構築は完了です。本連載で構成したシステムをまとめると以下の図のようになります。

 

ここまでのシステム構築を通じて、ネットワークの構成の仕方、基本的なコンセプト、Azureの利用方法など一通り学んで頂けましたら幸いです。

弊社では Azureを利用した分析基盤構築サービスも提供しております。分析環境の整備でお困りの場合は、ぜひ DATUM STUDIO にお声がけください。

最後までお読み頂きありがとうございました。

このページをシェアする: