要求事項
以下のように、K5を用いてインターネット向けのサービスを構築したいといった要求事項に対応するパターンです。
- K5で仮想サーバを作成する基本的な方法を把握したい
- インターネットから安全に仮想サーバを操作し、サービスを構築/保守したい
- 仮想サーバ上のサービスを安全にインターネットに公開したい
対応するK5デザインパターン概要
K5では、セキュリティを考慮しつつ仮想サーバを簡単に作成することができます。
K5には、セキュリティグループというアクセス制御の機能があります。
セキュリティグループ機能を利用すると、インターネットからのアクセスを必要なポートだけに制限すること等が可能です。
具体的には
仮想サーバを作成する際に、そのマシンが所属するセキュリティグループを指定をするだけで、
必要なポートに関する通信だけを許可し、不要なポートに関する通信は遮断された安全な状態で
仮想サーバを作成することができます。
このパターンでは、sshを例として、仮想サーバで安全にサービス提供するための基本的な流れを記載します。
→
→
※キーペア
仮想サーバに 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ルール | 送信 | ポート | 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 のアドレスを入力してください。
※(参考)上記のセキュリティグループの設定に加え、仮想ルータのファイアーウォール機能を併用すれば、
さらにセキュリティを強化できます。
(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
関連資料
インターネット接続パターン (2018年9月検証)