FUJITSU Cloud Service K5
IaaS 設計・構築ガイド(デザインパターン・実装サンプル集)

インターネット接続パターン


要求事項

以下のように、K5を用いてインターネット向けのサービスを構築したいといった要求事項に対応するパターンです。

  • K5で仮想サーバを作成する基本的な方法を把握したい
  • インターネットから安全に仮想サーバを操作し、サービスを構築/保守したい
  • 仮想サーバ上のサービスを安全にインターネットに公開したい



対応するK5デザインパターン概要

K5では、セキュリティを考慮しつつ仮想サーバを簡単に作成することができます。

K5には、セキュリティグループというアクセス制御の機能があります。
セキュリティグループ機能を利用すると、インターネットからのアクセスを必要なポートだけに制限すること等が可能です。
具体的には 仮想サーバを作成する際に、そのマシンが所属するセキュリティグループを指定をするだけで、
必要なポートに関する通信だけを許可し、不要なポートに関する通信は遮断された安全な状態で
仮想サーバを作成することができます。

このパターンでは、sshを例として、仮想サーバで安全にサービス提供するための基本的な流れを記載します。



構造 (イメージ図)



実装サンプル

実装サンプルでは、作成した仮想サーバに、安全に sshでログインできるまでを例として記載します。


1.ネットワークの作成

 (1) 仮想ルータの作成

  • ポータルにログインします。
  • 「ネットワーク」⇒「仮想ルータ」画面で、画面右上の「+」ボタンをクリックします。
  • 「新規ルータ作成」画面で、以下の項目を入力し、「作成」ボタンをクリックします。
項目
必須
設定値内容
AZ必須"jp-east-1b AZ"システムを設置するアベイラビリティゾーンを設定してください。
AZ1:"jp-east-1a AZ"
AZ2:"jp-east-1b AZ"
東日本リージョン3、西日本リージョン3ではAZの設定なし
仮想ルータ名必須"demo_router"仮想ルータ名を入力してください。

 (2) 仮想ルータにゲートウェイ設定

  • 「仮想ルータ」画面で、作成した仮想ルータの「Action」⇒「ゲートウェイ設定」メニューで、
    仮想ルータを接続させる「外部仮想ネットワーク」(インターネット側のネットワーク)を選択し、
    「設定」ボタンをクリックします。
項目
必須
設定値内容
外部仮想ネットワーク必須"inf_az2_ext-net01"複数の外部仮想ネットワークから1つ選択

※外部仮想ネットワーク は、K5であらかじめ用意されています。
※外部仮想ネットワーク は、外部ネットワークとも呼称されます。


 (3) 内部ネットワーク作成

  • 「ネットワーク」⇒「仮想ネットワーク」画面で、画面右上の「+」ボタンをクリックします。
  • 「仮想ネットワーク作成」画面で、以下の項目を入力し、「作成」ボタンをクリックします。
種別項目
必須
設定値内容
仮想
ネット
ワーク
AZ必須"jp-east-1b AZ"システムを設置するアベイラビリティゾーンを設定してください。
AZ1:"jp-east-1a AZ"
AZ2:"jp-east-1b AZ"
東日本リージョン3、西日本リージョン3ではAZの設定なし
仮想
ネットワーク名
必須"demo_intnet"仮想ネットワーク名を入力してください。
管理状態必須"UP"ここでは "UP" で設定してください。
サブ
ネット
サブネット作成必須"あり"ここでは "あり" で設定してください。
サブネット名必須"demo_subnet"サブネット名を入力してください。
仮想ネットワーク
アドレス
必須"192.168.0.0/24"CIDR形式で入力してください。
ゲートウェイ推奨"あり"ここでは "あり" で設定してください。
ゲートウェイIP推奨"192.168.0.1"必須ではありませんが、設定してください。※この後の設定で使用します。
サブ
ネット
詳細
DHCP有効推奨"有効"必須ではありませんが、設定してください。
IPアドレス
割当プール
任意必要に応じて設定してください。
DNSサーバ推奨必須ではありませんが、設定してください。
ポータル上では、後から追加できません。
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)を設定します。
※この項目は、2階層ネットワーク構成 の ルータ2つ の例で使用します。

※DHCP と IPアドレス割当プール
  • K5では、仮想サーバにIPアドレスを設定する手段として、DHCPを使います。
    仮想サーバに割り当てるIPアドレスを指定しない場合、まず、K5の管理機能でアドレスを自動的に決定し、
    それをDHCPを使って仮想サーバに伝達します。
    仮想サーバやポートに対して固定のIPアドレスを指定した場合も、伝達手段としてDHCPが使用されます。
    いずれの場合も、同一の仮想サーバに対しては常に同じIPアドレスを設定します。
    その他、DHCPでは、IPアドレスの他にルーティング情報の配布も行っています。
    上記仕様のため、特別な理由がない限り、DHCP は有効に設定してください。
  • K5 が自動的にIPアドレスを割り当てる例としては、以下のようなものがあります。
    - DHCPサーバ自体
    - ルータ (作成時にIPアドレスを指定しない場合)
    - ポート (作成時にIPアドレスを指定しない場合)
    - オートスケール (仮想サーバ、ロードバランサー)
    - ロードバランサー (オートスケールではなく手動で作成する場合もIPアドレスは自動的に割り当てられる)
  • K5が自動的に割り当てる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プール(外部ネットワーク)を選択します。
    今回は、1-(2)で仮想ルータのゲートウェイに設定した外部ネットワークを選択し、「次へ」をクリックします。
  • グローバルIPアドレスのポート割当を行う画面が表示されます。
    グローバルIPアドレスの割当対象(仮想サーバまたは仮想ルータ)のポートを選択可能ですが、
    選択せずにグローバルIPアドレスの確保だけを行うことも可能です。
    今回は仮想サーバ作成後にグローバルIPアドレスの割当を行うため、「グローバルIPアドレス割当ポート」には
    何も選択せずに、「次へ」をクリックします。
  • 確認画面で内容を確認し、「設定」ボタンをクリックすると、グローバルIPアドレスが確保されます。

※作成された仮想ルータにより、
  • 内部ネットワークから外部ネットワークに向けての通信はSNAT機能が働きます。
  • 外部ネットワークから、内部ネットワークのグローバルIPアドレスを割り当てた仮想サーバ等への通信は、
    DNAT機能が働きます。
  • 仮想サーバにグローバルIPアドレスを割り当てた場合は、そのグローバルIPアドレスと、
    仮想サーバ作成時に割り当てられるプライベートIPアドレスが相互にアドレス変換されます。



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ルール送信ポート80CIDR169.254.169.254/32
2カスタムTCPルール受信ポート22CIDRxxx.xxx.xxx.xxx/32

※上記の No.1 のルールは、仮想サーバが起動中に、仮想サーバの起動時などに利用する
特別なIPアドレス "169.254.169.254/32" から必要な情報を取得する際に必要なルールです。
このサーバについての詳細は、機能説明書の "プロビジョニングスクリプト機能" のページをご覧ください。

※上記の No.2 のルールには、構造図中のsshアクセス元サーバ (特定のメンテナンス用サーバ等) のように、
仮想サーバに ssh接続する際のアクセス元となるサーバを設定します。

※特定のサーバを指定する場合は、上記のルールのように、"xxx.xxx.xxx.xxx/32" というCIDR形式で入力します。
特定のサーバが、NATを使用して接続している場合は、NAT のアドレスを入力してください。

※(参考)上記のセキュリティグループの設定に加え、仮想ルータのファイアーウォール機能を併用すれば、
さらにセキュリティを強化できます。


 (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"
東日本リージョン3、西日本リージョン3ではAZの設定なし
  • 「demo_keypair.pem」を保存しますかというメッセージが表示されますので、保存します。
    このファイルは、仮想サーバにログインする際の ssh鍵になります。
    取り扱いには厳重に注意してください。
  • キーペアは、なくした場合に再発行できません。
    キーペアをなくすと仮想サーバに sshでログインできなくなります。



4.仮想サーバの作成

 (1) 仮想サーバの作成

  • 「コンピュート」⇒「仮想サーバ」画面で、画面右上の「+」ボタンをクリックします。
  • 「仮想サーバ作成」画面で、以下の項目を入力し、「作成」ボタンをクリックします。
種別項目
必須
設定値内容
仮想サーバAZ必須"jp-east-1b AZ"システムを設置するアベイラビリティゾーンを設定してください。
AZ1:"jp-east-1a AZ"
AZ2:"jp-east-1b AZ"
東日本リージョン3、西日本リージョン3ではAZの設定なし
仮想サーバ名
必須"demo_vm01"仮想サーバ名を入力してください。
仮想サーバ
タイプ
必須"P-1"仮想サーバタイプ(フレーバー)を入力してください。
仮想サーバの
ブートソース
必須"イメージから起動"仮想サーバを何から作成するかを示す作成元を設定してください。
"イメージから起動" の場合、OSイメージから仮想サーバを作成します。
イメージ必須"CentOS 6.8
64bit (English) 01"
OSイメージを選択してください。
デバイス
サイズ(GB)
必須"30"イメージサイズと同じサイズを指定してください。
※K5標準では、
  Windows:80GB、
  Redhat Enterprise Linux:40GB、
  CentOS:30GB となります。
※最新のイメージサイズは、機能説明書をご確認ください。
デバイス名必須"a"システムストレージの場合、"a"を入力してください。
※"a" と入力の場合、"/dev/vd"+"a" で "/dev/vda" と扱われます。
仮想
ネットワーク
利用可能な
ネットワーク
推奨"demo_intnet"作成した内部ネットワークの "demo_intnet" をクリックして、
「選択」ボタンをクリックしてください。
アクセスと
セキュリティ
キーペア推奨"demo_keypair"作成したキーペア を選択してください。
セキュリティ
グループ
推奨"SG_external"作成したセキュリティグループ を選択してください。
オプション
プロビジョニング
スクリプト
任意下記※参照仮想サーバ作成時に実行するスクリプトを記載することが可能です。
  • 「仮想サーバ」画面で、作成した "demo_vm01" が作成開始され、"BUILD" の状態になります。
    状態が "ACTIVE" になれば、仮想サーバの作成完了です。

※プロビジョニングスクリプト
  • 以下のように、仮想サーバ作成時にスクリプトを実行させることが可能です。
    - Linux系で、仮想サーバ作成時に全パッケージをアップデートする例
     #!/bin/sh
     yum -y update



 (2) グローバルIPアドレスの割り当て

  • 「ネットワーク」⇒「グローバルIP」と選択した画面で、
    グローバルIPアドレスを割当ていないIPアドレスの「アクション」⇒「割当」と選択します。
  • 「グローバルIPアドレス割当ポート」に、
    グローバルIPアドレス割当対象(仮想サーバまたは仮想ルータ)のポートを選択し、
    「グローバルIP割当」ボタンをクリックします。
  • 割当後、しばらく待つと、sshを利用してログインできるようになります。



 (3) 仮想サーバにログイン

  • 作成した仮想サーバに、ユーザ名を "k5user" として、
    仮想サーバ作成時に使用した登録済みキーペアを使用してログインできることを確認します。

  • ここまでの流れで、特定のサーバから sshでログインできる仮想サーバが作成できます。
  • この後に、Webサービス等必要なサービスを導入してください。
  • サービスの導入後、セキュリティグループのルールを設定して、サービスを公開することが可能です。
    セキュリティグループの設定は、実装サンプルの 2.セキュリティグループの設定 を参照してください。
  • セキュリティグループに加えて、仮想ルータに設定できる ファイアーウォールの利用もあわせてご検討ください。



メリット・効果

インターネット接続パターンを利用した場合のメリット・効果は以下の通りです。

  • インターネットから安全に仮想サーバを構築、運用、保守可能
  • インターネット上に安全にサービスを公開することが可能



注意事項

  • 本パターンは2017年5月時点のK5(IaaS)東日本リージョン1 で動作検証しています。
    また、2018 年9月時点のK5(IaaS)西日本リージョン3で動作検証をしています。

  • より安全性を高めるため、固定のアクセス元からの ssh接続ではなく、以下の接続方法も検討してください。
  • 開発や保守中に、仮想サーバがインターネットから自由にアクセスされないように、
    セキュリティグループの設定に注意してください。

  • セキュリティグループに加えて、仮想ルータに設定できる ファイアーウォールの利用もあわせてご検討ください。

  • ネットワークアドレスとIPアドレス割当プールは、作成後に変更できません。

  • 内部ネットワークに作成できるサブネットは1つです。

  • 仮想サーバの作成時に、同一セグメントのポートを2つ以上設定しないでください。
    仮想サーバの作成後に、その仮想サーバに同一セグメントのポートを追加することは問題ありません。(制限事項・注意事項2-59)

  • キーペアは、なくした場合に再発行できません。キーペアをなくすと仮想サーバに 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

  • 仮想サーバに Windows 2012系を選択している場合、以下のメッセージに注意してください。
    以下のメッセージが出た場合は、必ず「はい」をクリックしてください。
    「いいえ」をクリックすると、仮想サーバにファイアーウォールが設定されて、リモート接続できなくなります。

 ネットワーク
 このネットワーク上のPC、デバイス、コンテンツを探し、プリンターやTVなどのデバイスに自動的に接続しますか?
 ホームネットワークと社内ネットワークではこの操作を行うことをお勧めします。



その他

  • 仮想サーバを作成した後のホスト名が、Linux系(CentOS/RHEL)の場合、デフォルトで以下のように設定されます。
    <仮想サーバ作成時に入力した仮想サーバ名>.fcxlocal



関連資料

  • FUJITSU Cloud Service K5 マニュアル
    http://jp.fujitsu.com/solutions/cloud/k5/document/
    • サービスご紹介資料
    • IaaS 機能説明書
    • IaaS サービスポータルユーザーズガイド
    • IaaS APIユーザーズガイド
    • IaaS APIリファレンスマニュアル
    • IaaS HEATテンプレート解説書

インターネット接続パターン (2018年9月検証)