ニフティクラウドComputingで「アプリ-DB」2台構成のインフラを試してみる簡易的な手順。
DB サーバー作成
- ニフティクラウド Computing にログイン
- 左メニューから「サーバー」をクリックし「+サーバー作成」ボタンをクリック
- 下記の設定でサーバーを作成
- ゾーン:east-13
- イメージ:CentOS 6.4 64bit Plain
- サーバー名:db001
- グローバルIP:固定IPアドレスを利用する
- タイプ:mini
- 料金コース:月額
- SSHキー:(あらかじめ作成しておいたものを設定)
- スクリプト:(設定しない)
- ファイアウォール設定:(あらかじめ作成しておいたもの設定)
DB サーバーへログイン
- SSH ターミナルソフトを利用しサーバーへログイン
サーバーに MySQL をインストール
- mysql-server パッケージのインストール
[root@localhost ~]# yum install -y mysql-server
(略)
Complete!
- mysqld サービスの起動
[root@localhost ~]# service mysqld start
mysqld を起動中: [ OK ]
- mysql へログイン
[root@localhost ~]# mysql -u root
(略)
mysql>
MySQL に SQL を発行
mysql> create database mydb;
Query OK, 1 row affected (0.00 sec)
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| bbs_development |
| mydb |
| mysql |
| test |
+--------------------+
5 rows in set (0.00 sec)
mysql> use mydb;
mysql> create table blog (id INTEGER PRIMARY KEY AUTO_INCREMENT, name VARCHAR(128), body TEXT);
Query OK, 0 rows affected (0.00 sec)
mysql> INSERT INTO blog (name, body) VALUES('takeuchi', 'hello, world');
Query OK, 1 row affected (0.00 sec)
mysql> INSERT INTO blog (name, body) VALUES('kato', 'hello, world 2');
Query OK, 1 row affected (0.00 sec)
mysql> select * from blog;
+----+----------+----------------+
| id | name | body |
+----+----------+----------------+
| 1 | takeuchi | hello, world |
| 2 | kato | hello, world 2 |
+----+----------+----------------+
2 rows in set (0.00 sec)
mysql> UPDATE blog SET name='yamada' where id = 1;
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0
mysql> select * from blog;
+----+--------+----------------+
| id | name | body |
+----+--------+----------------+
| 1 | yamada | hello, world |
| 2 | kato | hello, world 2 |
+----+--------+----------------+
2 rows in set (0.00 sec)
mysql> delete from blog where id = 1;
Query OK, 1 row affected (0.00 sec)
アプリサーバー作成
(「DB サーバー作成」とほぼ同じ設定だが、サーバー名だけ「ap001」としてサーバーを作成します)
アプリサーバーへログイン
- SSH ターミナルソフトを利用しサーバーへログイン
DBサーバー側でアプリサーバーからの接続を許可
[root@localhost bbs]# mysql -u root
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'ここにアプリサーバーのプライベートIPアドレスを書く' WITH GRANT OPTION;
Query OK, 0 rows affected (0.00 sec)
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.01 sec)
アプリサーバーで簡単なアプリを作成
[root@localhost ~]# yum install -y mysql-devel
[root@localhost ~]# curl -sSL https://get.rvm.io | bash -s stable
[root@localhost ~]# source /etc/profile.d/rvm.sh
[root@localhost ~]# rvm install 2.0.0
[root@localhost ~]# gem install rails --no-ri --no-rdoc
[root@localhost ~]# rails new bbs -d mysql
[root@localhost ~]# cd bbs/
[root@localhost bbs]# echo "gem 'therubyracer'" >> Gemfile
[root@localhost bbs]# bundle
[root@localhost bbs]# rails g scaffold bbs name:string
comment:text
[root@localhost bbs]# sed -i s/localhost/ここにDBサーバーのプライベートIPアドレスを書く/g config/database.yml
[root@localhost bbs]# rake db:create
[root@localhost bbs]# rake db:migrate
[root@localhost bbs]# rails server -p 80
ここまでやると http://ここにアプリサーバーのグローバルIPアドレスを書く/bbs でアプリケーションにアクセスできます。