さくらのクラウドで以下のような構成を作っていました。
WebサーバにNIC2つ持たせてグローバルIPアドレスとプライベートIPアドレスの両方をつけます。
DBサーバはプライベートIPだけつけて、Webサーバ・DBサーバ間の通信はプライベートサブネット経由です。
VPCルータはDBサーバにパッケージ入れたりアップデートしたりする用です。
(AWSでいうところのNATインスタンスとして使っています)
WebサーバはグローバルIPアドレス持っているので直接SSHログインできるんですが
DBサーバへSSHログインするには
1. Webサーバを踏み台にしてSSHログイン
2. 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
やっていることは
1. 最初にrootパスワードとwordpressユーザパスワードを入力する(コンパネにフォームが出ます)
2. MySQLをインストールして起動させて自動起動を有効にする
3. rootパスワード設定
4. データベース「wordpress」を作成
5. wordpressユーザを作成
です。
実運用に使うならこれではいろいろ不足でしょうが、デモなので。
「違法では無いが不適切」な点などありましたら御指摘いただけると幸いです。