背景
自分が真剣にクラウドと向き合ったのはAWS。ITアーキテクトとして本当によく研究したし、実際に操作した時間も長く、技術認定もSA Professionalまでは取った。
しかし今月から業務としてIBM Cloud、特にIaaS部分を触る機会というか、それが必要な仕事となり、仮想サーバー周りを触ってみたので作業メモを残しておくことにした。
Wordpress構築でお勉強
よくあるハンズオンシナリオ、Wordpress構築をやってみた。
サーバーの準備
(1) Webサーバー
- TOK2
- Ubuntu18.0.4 Minimal LTS
- C1.1x1 最小構成
- Security Group
- Public: allow_outbound , allow_http , allow_https, allow_ssh
- Private: allow_outbound , allow_ssh
- SSH Keys -- ローカルで作成しておき公開鍵を登録
(2) DB サーバー
- TOK2
- Ubuntu18.0.4 Minimal LTS
- C1.1x1 最小構成
- Security Group
- Public: allow_outbound , allow_ssh
- Private: allow_outbound , allow_all
- SSH Keys -- Webサーバーと同じものでOK
- 本当はPublic IPはなしでやるのだが、ここは第1ステップとして ....
- allow_all のallは all inboundで定義されている
サーバーを設定
(1) Webサーバー
ssh -i 鍵ファイル ubuntu@'WebサーバーのPublic IP'でログイン
# Install PHP & mysql client
sudo apt -y update
sudo apt install -y apache2
sudo apt install -y php libapache2-mod-php php-mysql php-mbstring
sudo apt install -y mysql-client
# Install Wordpress
wget https://ja.wordpress.org/latest-ja.tar.gz
tar xvf latest-ja.tar.gz
cd wordpress
sudo cp -r * /var/www/html/
sudo chown www-data:www-data /var/www/html -R
sudo mv /var/www/html/index.html /var/www/html/index.html.back
# Launch
sudo systemctl enable apache2
sudo systemctl restart apache2
(2) DBサーバー
ssh -i 鍵ファイル ubuntu@'DBサーバーのPublic IP'でログイン
( 本当はVPN&Private IPでやりたいが、まずは第1ステップとして .... )
# Install
sudo apt -y update
sudo apt -y install mysql-server mysql-client
sudo mysql_secure_installation
mysql_secure_installationは適宜設定
mysql -u root -p で以下を実行
create database wordpress default character set utf8;
grant all on wordpress.* to wordpress@"%" identified by 'xxxxxx';
flush privileges;
bind-addressを変更
sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf
bind-address= 127.0.0.1 という部分を bind-address= 0.0.0.0へ変えて保存してからmysqlを再起動
sudo systemctl restart mysql
Wordpressを設定
ブラウザから http://WebサーバーのPublic IPアドレス/index.php ヘアクセスして
wordpressからmysqlへアクセスするための情報を登録
- データベース名:wordpress
- ユーザーID: wordpress
- パスワード: "grant all on.. で設定したパスワード"
- データベースのホスト名:DBサーバーのPrivate IP
- テーブルの接頭辞:wp_
Wordpress設定成功が表示されたので、adminユーザーを設定し、ひとまず記事の一つも投稿してみて成功を確認。
気が済んだのでw、サーバーのオーダーをキャンセルし終了。(しばらく残っているけど、課金は即終了されているとのこと)
所感メモ
- security groupにallow_outbound が明示的に必要だったことに最初ハマった。Privateをなんちゃってで実行したからか、後はハマりどころは特になし。内容として IBM Cloudらしいところはなかったからかもしれないが、少し自信をつけたw。
- 今回はデフォルトのsecurity groupを使用。カスタマーポータルから自身のものも定義できる。機能としてはAWSのさほど変わらないが、security group自体を5つまで同時設定できる。 AND条件でより狭くなるようだ.
- Wordpressの初期画面で index.php 出すため、横着かもしれないがとりあえずindex.htmlを追いやっているw