インターネット接続パターン#
本構成は東日本/西日本リージョン1・2向けとなります。
要求事項#
『FJcloud-Oを用いてインターネット向けのサービスを構築したい』という要求事項に対応するパターンです。
さらに、以下のような具体的な要求事項に対応します。
- FJcloud-Oで仮想サーバを作成する基本的な方法を把握したい
- インターネットから安全に仮想サーバを操作し、サービスを構築/保守したい
- 仮想サーバ上のサービスを安全にインターネットに公開したい
対応するデザインパターン概要#
FJcloud-OにはセキュリティグループというIPv4のパケットフィルタリングによるアクセス制御機能が存在し、セキュリティを考慮した仮想サーバを作成することができます。
本機能を用いた一例として、仮想サーバへのインターネットからのアクセスを必要なポートのみに制限し、安全な状態で仮想サーバを作成することが可能です。
本パターンでは、sshを例として仮想サーバで安全にサービス提供するための基本的な流れを記載します。
構造(イメージ図)#
実装サンプル#
実装サンプルでは、作成した仮想サーバに、安全に sshでログインできるまでを例として記載します。
1. ネットワークの作成#
(1) 仮想ルータの作成#
- IaaSポータルにログインします。
- 「ネットワーク」⇒「仮想ルータ」画面で、画面右上の「+」ボタンをクリックします。
- 「新規ルータ作成」画面で、以下の項目を入力し、「作成」ボタンをクリックします。
項目 | 必須 | 設定値例 | 内容 |
---|---|---|---|
AZ | 必須 | "jp-east-1b AZ" | システムを設置するアベイラビリティゾーンを設定してください。 AZ1:"jp-east-1a AZ" AZ2:"jp-east-1b AZ" |
仮想ルータ名 | 必須 | "demo_router" | 仮想ルータ名を入力してください。 |
(2) 仮想ルータにゲートウェイ設定#
- 「仮想ルータ」画面で、作成した仮想ルータの「Action」⇒「ゲートウェイ設定」メニューで、 仮想ルータを接続させる「外部仮想ネットワーク」(インターネット側のネットワーク)を選択し、 「設定」ボタンをクリックします。
項目 | 必須 | 設定値例 | 内容 |
---|---|---|---|
外部仮想ネットワーク | 必須 | 例:"inf_az2_ext-net01" | 複数の外部仮想ネットワークから1つ選択 |
Note
(3) 内部ネットワーク作成#
- 「ネットワーク」⇒「仮想ネットワーク」画面で、画面右上の「+」ボタンをクリックします。
- 「仮想ネットワーク作成」画面で、以下の項目を入力し、「作成」ボタンをクリックします。
種別 | 項目 | 必須 | 設定値例 | 内容 |
---|---|---|---|---|
仮想ネットワーク | AZ | 必須 | "jp-east-1b AZ" | システムを設置するアベイラビリティゾーンを設定してください。 AZ1:"jp-east-1a AZ" AZ2:"jp-east-1b AZ" |
仮想ネットワーク名 | 必須 | "demo_intnet" | 仮想ネットワーク名を入力してください。 | |
管理状態 | 必須 | "UP" | ここでは "UP" で設定してください。 | |
サブネット | サブネット作成 | 必須 | "あり" | ここでは "あり" で設定してください。 |
サブネット名 | 必須 | "demo_subnet" | サブネット名を入力してください。 | |
仮想ネットワークアドレス | 必須 | "192.168.0.0/24" | CIDR形式で入力してください。 | |
ゲートウェイ | 推奨 | "あり" | ここでは "あり" で設定してください。 | |
ゲートウェイIP | 推奨 | "192.168.0.1" | 必須ではありませんが、設定してください。 この後の設定で使用します。 |
|
サブネット詳細 | DHCP有効 | 推奨 | "有効" | 必須ではありませんが、設定してください。 |
IPアドレス割当プール | 任意 | 必要に応じて設定してください。 | ||
DNSサーバ | 推奨 | 必須ではありませんが、設定してください。 IaaSポータル上では、後から追加できません。 DNSサーバは1行につき1項目設定できます。 DNSサーバは以下のとおりです。 AZ1:133.162.193.10、133.162.193.9 AZ2:133.162.201.10、133.162.201.9 |
||
追加のルート設定 | 任意 | CIDR形式の宛先(Destination)と、その宛先へ接続するルータのIPアドレス(Nexthop)を設定します。*1 |
*1 この項目は、2階層ネットワーク構成 の ルータ2つ の例で使用します。
Note
DHCP と IPアドレス割当プール
FJcloud-Oでは、仮想サーバにIPアドレスを設定する手段としてDHCPを使用しています。
仮想サーバに割り当てるIPアドレスを指定しない場合、まず、FJcloud-Oの管理機能でアドレスを自動的に決定し、それをDHCPを使って対象仮想サーバに伝達します。
仮想サーバやポートに対して固定のIPアドレスを指定した場合も、伝達手段としてDHCPが使用されます。
いずれの場合も、同一の仮想サーバに対しては常に同じIPアドレスを設定します。
その他、DHCPでは、IPアドレスの他にルーティング情報の配布も行っています。
上記仕様のため、特別な理由がない限り、DHCP は有効に設定してください。
FJcloud-O が自動的にIPアドレスを割り当てる例としては、以下のようなものがあります。
FJcloud-Oが自動的に割り当てるIPアドレスは、IPアドレス割当プールの範囲内から払い出されます。
IPアドレス割当プールを指定しない場合、ルータのゲートウェイIPアドレスを除く全てのIPアドレスが、IPアドレス割当プールとして設定されます。
IPアドレス割当プール 内に ゲートウェイIPアドレス を設定した場合は、ゲートウェイIPアドレス は IPアドレス割当プール から除外されます。
(4) 仮想ルータにサブネットをアタッチ#
- 「ネットワーク」⇒「仮想ルータ」画面で、作成した仮想ルータをクリックします。
- 「仮想ルータ詳細」画面で、「インターフェース」の項の右上にある「+」ボタンをクリックします。
- 「インタフェース設定」画面で、以下の項目を入力し、「追加」ボタンをクリックします。
項目 | 必須 | 設定値例 | 内容 |
---|---|---|---|
サブネット | 必須 | "demo_subnet" | 内部ネットワーク作成の際に設定したサブネットを選択してください。 |
IPアドレス | 必須 | "192.168.0.1" | 内部ネットワーク作成の際に設定したゲートウェイIPを設定してください。 |
(5) グローバルIPアドレス確保#
- 「ネットワーク」⇒「グローバルIP」と選択した画面で、画面右上の「+」ボタンをクリックします。
- グローバルIPプールの選択を行う画面が表示されます。
グローバルIPアドレスの割当対象(仮想サーバまたは仮想ルータ)が接続するグローバルIPプール(外部ネットワーク)を選択します。
今回は、(2) 仮想ルータにゲートウェイ設定 で仮想ルータのゲートウェイに設定した外部ネットワークを選択し、「次へ」をクリックします。 - グローバルIPアドレスのポート割当を行う画面が表示されます。
グローバルIPアドレスの割当対象(仮想サーバまたは仮想ルータ)のポートを選択可能ですが、選択せずにグローバルIPアドレスの確保だけを行うことも可能です。今回は仮想サーバ作成後にグローバルIPアドレスの割当を行うため、「グローバルIPアドレス割当ポート」には何も選択せずに、「次へ」をクリックします。 - 確認画面で内容を確認し、「設定」ボタンをクリックすると、グローバルIPアドレスが確保されます。
Note
作成された仮想ルータにより、
2. セキュリティグループの設定#
(1) セキュリティグループ作成#
- 「ネットワーク」⇒「セキュリティグループ」画面で、画面右上の「+」ボタンをクリックします。
- 「セキュリティグループ作成」画面で、以下の項目を入力し、「次へ」、「作成」とボタンをクリックします。
項目 | 必須 | 設定値例 | 内容 |
---|---|---|---|
セキュリティグループ名 | 必須 | "SG_external" | セキュリティグループ名を入力してください。 |
説明 | 必須 | "SG_external" | セキュリティグループに対する説明事項を入力してください。 |
(2) ルールの編集#
-
「ネットワーク」⇒「セキュリティグループ」画面で、作成したセキュリティグループ「SG_external」の「アクション」から「ルール管理」をクリックします。
-
「ルール管理」画面で、以下の2つのルールを削除します。
各ルールの「アクション」にある「削除」ボタンで削除してください。
No | 方向 | Ethernetタイプ | IPプロトコル | ポート範囲 | 接続先 |
---|---|---|---|---|---|
1 | egress | IPv6 | - | - | - |
2 | egress | IPv4 | - | - | - |
上記の No.1,2 のルールは、セキュリティグループの新規作成時にデフォルトで設定されるルールです。
インターネットに接続する仮想サーバ用等、セキュリティを高めたい場合は削除します。
- 「セキュリティグループルール管理」画面で、「ルールの追加」ボタンをクリックします。
- 「ルールの追加」ポップアップが表示されるので、以下のルールを追加します。
No | ルール | 方向 | オープ ンポート |
ポート | 接続先 | セキュリティグループ またはCIDR |
---|---|---|---|---|---|---|
1 | カスタムTCPルール | 送信 | ポート | 80 | CIDR | 169.254.169.254/32 |
2 | カスタムTCPルール | 受信 | ポート | 22 | CIDR | xxx.xxx.xxx.xxx/32 |
上記の No.1 のルールは、仮想サーバが起動中に、仮想サーバの起動時などに利用する特別なIPアドレス "169.254.169.254/32" から必要な情報を取得する際に必要なルールです。
このサーバについての詳細は、機能説明書の "プロビジョニングスクリプト機能" のページをご覧ください。
上記の No.2 のルールには、構造図中のsshアクセス元サーバ (特定のメンテナンス用サーバ等) のように、仮想サーバに ssh接続する際のアクセス元となるサーバを設定します。
特定のサーバを指定する場合は、上記のルールのように、"xxx.xxx.xxx.xxx/32" というCIDR形式で入力します。
特定のサーバが、NATを使用して接続している場合は、NAT のアドレスを入力してください。
Note
上記のセキュリティグループの設定に加え、仮想ルータのファイアーウォール機能を併用すれば、さらにセキュリティを強化できます。
(3) セキュリティグループ利用時の注意事項#
- Red Hat Enterprise Linux では、OSの標準設定で iptables/ip6tables が有効になっています。
Red Hat Enterprise Linux を導入する仮想サーバでは、仮想サーバに作成後に iptables/ip6tables を無効化する等、 セキュリティグループとあわせて設定を実施してください。
3. キーペアの作成#
- 「コンピュート」⇒「キーペア」画面で、画面右上の「+」ボタンをクリックします。
- 「キーペア」画面で、以下の項目を入力し、「次へ」、「作成」とボタンをクリックします。
項目 | 必須 | 設定値例 | 内容 |
---|---|---|---|
キーペア名 | 必須 | "demo_keypair" | キーペア名を入力してください。 |
AZ | 必須 | "jp-east-1b" | システムを設置するアベイラビリティゾーンを設定してください。 AZ1:"jp-east-1a" AZ2:"jp-east-1b" |
- 「demo_keypair.pem」を保存しますかというメッセージが表示されますので、保存します。
このファイルは、仮想サーバにログインする際の ssh鍵になります。
取り扱いには厳重に注意してください。 - キーペアは、なくした場合に再発行できません。
キーペアをなくすと仮想サーバに sshでログインできなくなります。
4. 仮想サーバの作成#
(1) 仮想サーバの作成#
- 「コンピュート」⇒「仮想サーバ」画面で、画面右上の「+」ボタンをクリックします。
- 「仮想サーバ作成」画面で、以下の項目を入力し、「作成」ボタンをクリックします。
種別 | 項目 | 必須 | 設定値例 | 内容 |
---|---|---|---|---|
仮想サーバ | AZ | 必須 | "jp-east-1b AZ" | システムを設置するアベイラビリティゾーンを設定してください。 AZ1:"jp-east-1a AZ" AZ2:"jp-east-1b AZ" |
仮想サーバ名 | 必須 | "demo_vm01" | 仮想サーバ名を入力してください。 | |
仮想サーバタイプ | 必須 | 例:"P-1" | 仮想サーバタイプ(フレーバー)を入力してください。 | |
仮想サーバのブートソース | 必須 | "イメージから起動" | 仮想サーバを何から作成するかを示す作成元を設定してください。 "イメージから起動" の場合、OSイメージから仮想サーバを作成します。 |
|
イメージ | 必須 | 例:"CentOS 6.864bit (English) 01" | OSイメージを選択してください。 | |
デバイスサイズ(GB) | 必須 | "30" | イメージサイズと同じサイズを指定してください。 FJcloud-O標準では、Windows:80GB、Redhat Enterprise Linux:40GB、CentOS:30GB となります。 最新のイメージサイズは、機能説明書をご確認ください。 |
|
デバイス名 | 必須 | "a" | システムストレージの場合、"a"を入力してください。 "a" と入力の場合、"/dev/vd"+"a" で "/dev/vda" と扱われます。 |
|
仮想ネットワーク | 利用可能なネットワーク | 推奨 | "demo_intnet" | 作成した内部ネットワークの "demo_intnet" をクリックして、「選択」ボタンをクリックしてください。 |
アクセスとセキュリティ | キーペア | 推奨 | "demo_keypair" | 作成したキーペア を選択してください。 |
セキュリティグループ | 推奨 | "SG_external" | 作成したセキュリティグループ を選択してください。 | |
オプション | プロビジョニングスクリプト | 任意 | 下記Note参照 | 仮想サーバ作成時に実行するスクリプトを記載することが可能です。 |
- 「仮想サーバ」画面で、作成した "demo_vm01" が作成開始され、"BUILD" の状態になります。
状態が "ACTIVE" になれば、仮想サーバの作成完了です。
Note
プロビジョニングスクリプト
以下のように、仮想サーバ作成時にスクリプトを実行させることが可能です。
#!/bin/sh yum -y update
(2) グローバルIPアドレスの割り当て#
- 「ネットワーク」⇒「グローバルIP」と選択した画面で、グローバルIPアドレスを割当ていないIPアドレスの「アクション」⇒「割当」と選択します。
- 「グローバルIPアドレス割当ポート」に、グローバルIPアドレス割当対象(仮想サーバまたは仮想ルータ)のポートを選択し、「グローバルIP割当」ボタンをクリックします。
- 割当後、しばらく待つと、sshを利用してログインできるようになります。
(3) 仮想サーバにログイン#
- 作成した仮想サーバに、ユーザ名を "k5user" として、仮想サーバ作成時に使用した登録済みキーペアを使用してログインできることを確認します。
Note
セキュリティグループの設定は、実装サンプルの 2.セキュリティグループの設定 を参照してください。
メリット・効果#
インターネット接続パターンを利用した場合のメリット・効果は以下の通りです。
- インターネットから安全に仮想サーバを構築、運用、保守可能
- インターネット上に安全にサービスを公開することが可能
注意事項#
-
本パターンは2017年5月時点のFJcloud-O 東日本/西日本リージョン1・2で動作検証しています。
-
より安全性を高めるため、固定のアクセス元からの ssh接続ではなく、以下の接続方法も検討してください。
-
開発や保守中に、仮想サーバがインターネットから自由にアクセスされないように、セキュリティグループの設定に注意してください。
-
セキュリティグループに加えて、仮想ルータに設定できる ファイアーウォールの利用もあわせてご検討ください。
-
ネットワークアドレスとIPアドレス割当プールは、作成後に変更できません。
-
内部ネットワークに作成できるサブネットは1つです。
-
仮想サーバの作成時に、同一セグメントのポートを2つ以上設定しないでください。
仮想サーバの作成後に、その仮想サーバに同一セグメントのポートを追加することは問題ありません。 -
キーペアは、なくした場合に再発行できません。キーペアをなくすと仮想サーバに sshでログインできなくなります。
-
Red Hat Enterprise Linux では、OSの標準設定で iptables/ip6tables が有効になっています。
Red Hat Enterprise Linux を導入する仮想サーバでは、仮想サーバに作成後に iptables/ip6tables を無効化する等、セキュリティグループとあわせて設定を実施してください。service iptables stop
chkconfig –list iptables
chkconfig iptables off
chkconfig –list iptables
service ip6tables stop
chkconfig –list ip6tables
chkconfig ip6tables off
chkconfig –list ip6tables
Warning
仮想サーバに Windows 2012系を選択している場合、初回起動時に画面右側に以下のメッセージが出た場合は、必ず「はい」をクリックしてください。
「いいえ」をクリックすると、仮想サーバにファイアーウォールが設定されて、リモート接続できなくなります。
その他#
- 仮想サーバを作成した後のホスト名が、Linux系(CentOS/RHEL)の場合、デフォルトで以下のように設定されます。
<仮想サーバ作成時に入力した仮想サーバ名>.fcxlocal