クラウドでサーバを運用している場合、トラフィックや処理の負荷によってサーバを動的に増減させます。そのため、サーバ構成が複雑になり、全く覚えのないサーバがずっと稼働していたなんてケースも出たりします。

どのサーバがどのネットワーク上にあり、他のサーバとどう繋がっているのかが分かれば、運用はしやすくなります。かつてはハードウェアがあったので接続状態を確認するのが簡単でしたが、クラウドではそうもいきません。そこで使ってみたいのがさくらのクラウドで提供しているマップ機能です。

マップ機能とは?

マップ機能はサーバとスイッチ(ハブとルータ)の接続状態を可視化する機能です。さらにマウスでドラッグ&ドロップを使ってサーバのネットワーク構成をダイナミックに変更できます。

NIC(ネットワークインタフェース)がポインターとなって、ハブやルータと接続できます。そして、サーバのインタフェースにIPアドレスを割り当てることでサーバ同士の接続も可能になります。

試してみる

例えばよくある構成として、Webサーバ、アプリケーションサーバ、データベースサーバがあるといった構成で考えます。この時大事なのが、最初にスイッチを作ると便利ということです。つまりWebサーバをフロントとして備えるのであれば、ルータとハブを最初に用意します。

ルータ/ハブを作る

ルータとスイッチは同じ画面から作れますが、ルータの場合はルータ機能を有効にすればOKです。グローバルなIPアドレスが複数取得できます。

そして、まずルータとハブを用意します。そうするとこのようなマップになるかと思います。

Webサーバを作る

次にサーバを作りますが、まずフロントになるWebサーバを作ります。この時、接続先のネットワークをスイッチにし、作成したルータを選択します。IPアドレスはルータに設定されているグローバルIPアドレスの中から選択します。

IPアドレスを指定しているため、サーバは一回に一台しか作れません。

アプリケーションサーバを作る

次にアプリケーションサーバを作ります。接続先はハブで、IPアドレスは192.168.0.2などとします。同じく192.168.0.3で2台目のアプリケーションサーバ、192.168.0.4でデータベースサーバを作ります。

マップは次のようになります。

NICを追加する

次にWebサーバをシャットダウンします。これはサーバが停止していないとNICが追加できないためです。

シャットダウンが完了したら、NICを追加します。

NICを追加したら、追加されたポインタをハブに接続します。

サーバを起動する

Webサーバとハブをつないだらサーバを起動します。なお、IPアドレス編集機能もありますが、サーバの設定に反映される訳ではありません。

サーバに接続したら、ネットワークインタフェースの設定を行います。今回はUbuntuなので /etc/network/interfaces が対象です。

# cat /etc/network/interfaces
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo 
iface lo inet loopback 

# The primary network interface
auto eth0 
iface eth0 inet static
address 153.120.84.228
netmask 255.255.255.240
gateway 153.120.84.225

# 以下を追加
auto eth1
iface eth1 inet static
address 192.168.0.5
netmask 255.255.255.240
gateway 192.168.0.1

設定を完了したら ifup eth1 を実行すると設定が反映されます。

# ifconfig 
  :
eth1      Link encap:Ethernet  HWaddr 9c:a3:ba:28:b5:f7  
          inet addr:192.168.0.5  Bcast:192.168.0.15  Mask:255.255.255.240
          inet6 addr: fe80::9ea3:baff:fe28:b5f7/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:350 errors:0 dropped:0 overruns:0 frame:0
          TX packets:2 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:19600 (19.6 KB)  TX bytes:168 (168.0 B)
  :

サーバに接続する

ハブに接続されているサーバは、このWebサーバを経由しないと接続できません。Webサーバの公開鍵を作成して、その文字列を接続先サーバの ~/.ssh/authorized_keys に貼り付ければ公開鍵認証でログインできるようになります。

$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/ubuntu/.ssh/id_rsa): 
  :
$ cat ~/.ssh/id_rsa.pub 
ssh-rsa AAA...oq3 ubuntu@web

注意点

ハブに繋がっているサーバはインターネットに接続されていません。ライブラリのインストールやセキュリティアップデートの際などは注意してください。


マップ機能を使えば複雑なネットワーク構成も一目で分かるようになります。Web APIからの操作も可能なので、サーバを自動的に立ち上げてハブに追加したり、切り離すこともできます。複雑化しやすいクラウドでのサーバ管理に活かしてください。

クラウドサーバーはIaaS型のさくらのクラウド