さくらのクラウドで以下のような構成を作っていました。
WebサーバにNIC2つ持たせてグローバルIPアドレスとプライベートIPアドレスの両方をつけます。
DBサーバはプライベートIPだけつけて、Webサーバ・DBサーバ間の通信はプライベートサブネット経由です。
VPCルータはDBサーバにパッケージ入れたりアップデートしたりする用です。
(AWSでいうところのNATインスタンスとして使っています)
WebサーバはグローバルIPアドレス持っているので直接SSHログインできるんですが
DBサーバへSSHログインするには
- Webサーバを踏み台にしてSSHログイン
- VPCルータとVPNを張る(サイト間VPNまたはリモートアクセス)
の2種類の方法がありますが、今回ハンズオン用の構成なので
1.だと参加者さん混乱するらしく
2.だとVPNの設定するだけで時間が足りなくなっちゃいます。
というわけで、DBサーバに一切ログインせずにインストールと設定をするスタートアップスクリプトを書きました。
# !/bin/sh
# @sacloud-once
# @sacloud-desc (このスクリプトは、CentOS6.8でのみ動作確認しています)
# @sacloud-password required shellarg maxlen=20 para1 "MySQLのrootユーザパスワード"
# @sacloud-password required shellarg maxlen=20 para2 "MySQLのwordpressユーザパスワード"
PARA1=@@@para1@@@
PARA2=@@@para2@@@
yum -y install mysql-server
service mysqld start
chkconfig mysqld on
echo "UPDATE mysql.user SET Password=PASSWORD('$PARA1') WHERE User='root'" | mysql -u root
echo "create database wordpress" | mysql -u root
echo "grant all privileges on wordpress.* to 'wordpress'@'10.0.0.11' identified by '$PARA2'" | mysql -u root
echo "FLUSH PRIVILEGES" | mysql -u root
やっていることは
- 最初にrootパスワードとwordpressユーザパスワードを入力する(コンパネにフォームが出ます)
- MySQLをインストールして起動させて自動起動を有効にする
- rootパスワード設定
- データベース「wordpress」を作成
- wordpressユーザを作成
です。
実運用に使うならこれではいろいろ不足でしょうが、デモなので。
「違法では無いが不適切」な点などありましたら御指摘いただけると幸いです。