XenAppをAmazon Web Services上に構築!(設定編) 前編

XenApp on Amazon Web Services Step by Step Guide

アプリケーションの仮想化を実現するXenAppはバージョン 7.5よりAmazon Web ServicesなどのパブリッククラウドやCitrix CloudPlatform上に構築できるようになりました。最新のバージョン7.6では、オーディオとビデオグラフィックス性能の向上、Lync Server 2013のサポート、USB3.0の周辺機器のリダイレクションサポートや、バグの修正とパフォーマンスの向上が行なわれています。

クラウドをサポートしたXenAppではありますが、もちろんこれまでのようにオンプレ環境に構築することもできます。クラウド上のXenAppとオンプレ上のXenAppを、リージョンを意識することなく同じコンソールを使って環境の展開、構成、管理が可能になっています。

XenAppをクラウド上に構築するメリットとしては、アクセス要求に応じたスケールアウトが容易であるという点です。オンプレ環境で利用者数が増え、サーバーの増強が必要になったとき、オンプレ環境ではまず機器の選定を行い、サーバーを発注し、使い始めるのに1ヶ月以上かかることもあります。クラウドなら新たなインスタンスを立ち上げるだけで即時新たなリソースを追加できる点がメリットであると思います。

XenAppをAmazon Web Servicesに展開するまえに

早速XenAppをAmazon Web Servicesに展開するまえに、Amazon Web Servicesを使う上で最低限、知っておくべき項目について解説します。

AWSアカウント

Amazon Web Services(以降AWS)を利用するには、AWSアカウントというものが必要です。USのAmazon.comアカウントをお持ちであればそれを使うことが出来ます。お持ちでなければ新規作成します。なお、AWSアカウント
登録にあたり、クレジットカードの登録が必要ですので事前に用意しておいてください。

VPC

VPCとはAWS上に作る仮想ネットワークのことです。構築した仮想ネットワーク上にシステムを構築していきます。

Security Group

セキュリティグループとはファイアウォールのことです。オンプレ環境ではOSのファイアウォール機能を使って通信を許可・拒否しますが、AWSや多くのクラウドサービスではこのセキュリティグループを使ってファイアウォールを定義します。

リージョン

Amazon EC2は世界中にホスティングされています。インスタンスを起動する際にどこでそのインスタンスを起動するかを選択できます。アジアにはシンガポールやシドニー、東京に拠点がありユーザーが利用するリージョンを自由に選択できます。

EC2

EC2とはAmazonが提供するスケーラブルな仮想サーバーを提供するサービスのことです。EC2上に仮想マシンを作成して様々なアプリケーションを実行でき、スケールアップやスケールダウンが容易です。

AMI

AMI(Amazon Machine Image)とはEC2で用いられるOSのイメージのことです。EC2ではLinuxのほか様々なOSイメージやアプリケーションインストール済みのカスタムAMIなどが提供されており、自由に使うことが出来ます。

Instance

EC2に構築する仮想マシンをインスタンスと呼びます。インスタンスへはRDPやSSHプトロコルを使ってアクセスできます。

KeyPair

インスタンスには公開鍵認証方式でアクセスします。公開鍵と秘密鍵の組み合わせを作って、これを使いインスタンスにアクセスできます。

Elastic IP

インスタンスを起動すると、VPCで定義したネットワーク範囲からプライベートIPアドレスが振られ、外部からノードにアクセス出来るようにするためにパブリックIPアドレスが振られます。しかしこのパブリックIPアドレスはシャットダウンしてしまうと、次回起動時にIPアドレスが変わってしまいます。Elastic IPアドレスを割り振ると恒久的にパブリックなIPアドレスを設定できます。

これから作る環境

今回想定している環境は次の通りです。

まず、VPCという仮想ネットワークを作ります。EC2上に3つのWindows Server 2012 R2インスタンスを構築して、Active Directoryノード、XenAppコントローラノード、XenApp配信ノードの3台構成によるXenApp環境をAWS上に展開する流れで説明します。
aws-xenapp.001

VPCの作成

VPCの作成

AWS上でXenAppを動かすため、まずはVPCを作成します。以下の手順に従って設定を行ってください。

(1) AWSにログインしてサービスメニューからVPCを選択します。
xenapp_on_aws_002
(2) VPCを選択するとVPC Dashboardが表示されますので、「Start VPC Wizard」ボタンをクリックします。
xenapp_on_aws_003
(3) 「Select a VPC Configration」画面が表示されます。今回はAWS上にすべての環境を構築するので「VPC with a Single Public Subnet」を選択し、「Select」ボタンをクリックします。
xenapp_on_aws_004
(4) VPCやサブネットの名前、IPアドレスの範囲などを設定し、「Create VPC」ボタンをクリックします。これでAWS上に仮想ネットワークが即時作成されます。
xenapp_on_aws_005
(5) VPCが作成されました。
xenapp_on_aws_006
(6) 左サイドバーのメニューから「DHCP Option」を選択し、「Create DHCP Option」ボタンをクリックします。
xenapp_on_aws_007
(7) DHCP Optionは次のように設定します。次の例はActive Directoryを10.0.0.34のIPアドレスを設定したインスタンスで動かす場合の例です。NetBIOSノードタイプは8を設定しました。
xenapp_on_aws_008
(8) 「Yes,Create」ボタンをクリックして少々待つと、DHCP Optionが作成され、一覧に表示されます。
xenapp_on_aws_009

VPCとDHCP Optionの紐付け

作成したDHCP OptionをVPCで使うための紐付け作業を行ないます。といっても、実はそこまで大変な設定変更ではありません。

もう一度VPCの一覧画面を表示して、DHCP options setに作成したDHCP Optionを指定するだけです。以下の手順に従って設定を行ってください。

(1) 左サイドバーのメニューから「Your VPCs」を選択し、作成したVPC(本例ではdemoVPC)を選択します。
xenapp_on_aws_010
(2) VPCの「Edit」ボタンをクリックします。
(3) 選択メニューから作成したDHCP Option(本例ではActive Directory)を選択して「Save」ボタンをクリックします。
xenapp_on_aws_011

以上でネットワークの作成は終了です。次にセキュリティグループの設定を行います。

セキュリティグループを構成する

ネットワークを構成したので次はセキュリティグループの設定を行い、必要なポートを解放します。以下の手順に従って設定を行ってください。

(1) AWSにログインしてサービスメニューからEC2を選択します。
xenapp_on_aws_011_2
(2) 左サイドバーのメニューから「Security Groups」を選択し、「Create Security Group」ボタンをクリックします。
xenapp_on_aws_012
(3) セキュリティグループ名とセキュリティグループの説明とVPCの選択をおこない、InboundとOutboundで許可するポートなどを追加していきます。

Typeで許可する項目もしくはプロトコル、Port Rangeで許可するポートもしくはポートの範囲、Sourceで許可する対象を設定します。
Port Rangeは1つなら80のように、ポート範囲を指定する場合は1000-1005のように記述します。
SourceはAnywhereでPublicに全公開、MyIPで現在アクセスしているクライアントが所属するネットワークからのアクセスを許可、Custum IPで特定のセグメントからのアクセスを許可(例: 10.0.0.0/24)出来ます。
ノード別のセキュリティグループの許可例(かっこ内はセキュリティグループ名)を次に示します。これらのポートはどのノードにどのコンポーネントをインストールするかに依ります。

Active Directory(ADSG)

プロトコル ポート 範囲
TCP/UDP 389 10.0.0.0/24
TCP 636 10.0.0.0/24
TCP 3268 10.0.0.0/24
TCP 3269 10.0.0.0/24
TCP/UDP 88 10.0.0.0/24
TCP/UDP 53 10.0.0.0/24
TCP/UDP 445 10.0.0.0/24
TCP 25 10.0.0.0/24
TCP 135 10.0.0.0/24
TCP/UDP 49152-65535 10.0.0.0/24
TCP 5722 10.0.0.0/24
UDP 123 10.0.0.0/24
TCP/UDP 464 10.0.0.0/24
UDP 138 10.0.0.0/24
TCP 9389 10.0.0.0/24
UDP 67 10.0.0.0/24
UDP 137 10.0.0.0/24
TCP 139 10.0.0.0/24
UDP 2535 10.00.0/24
TCP 3389 10.0.0.0/24

XenApp Controller(XACSG)

プロトコル ポート 範囲
TCP/UDP 53 10.0.0.0/24
TCP 5985 10.0.0.0/24
TCP/UDP 49152 10.0.0.0/24
HTTP 80 10.0.0.0/24
HTTPS 443 10.0.0.0/24
TCP 7279 10.0.0.0/24
TCP 27000 10.0.0.0/24
TCP 8082 10.0.0.0/24
TCP 8083 10.0.0.0/24
UDP 16500-16509 10.0.0.0/24
TCP 2598 10.0.0.0/24
TCP 1494 10.0.0.0/24
TCP 8008 10.0.0.0/24

XenApp 配信サーバー(APPSG)

プロトコル ポート 範囲
TCP/UDP 53 10.0.0.0/24
TCP 5985 10.0.0.0/24
TCP/UDP 49152 10.0.0.0/24
HTTP 80 10.0.0.0/24
TCP 1494 10.0.0.0/24
TCP 2598 10.0.0.0/24
TCP 8008 10.0.0.0/24
TCP 16500-16509 10.0.0.0/24

各ノードにRDPで接続したい場合は次のように設定すると、各ノード間と手元のクライアントからインスタンスへRDP接続できます。

Type Protocol Port Range Source
RDP TCP 3389 My IP
RDP TCP 3389 10.0.0.0/24

Pingも許可したい場合はICMPを同様に許可してください。

Type Protocol Port Range Source
All ICMP TCP 0-65535 My IP
All ICMP TCP 0-65535 10.0.0.0/24

これらの設定では「Anywhere」を使わないことを推奨します。
セキュリティグループは複数作成できます。役割毎のセキュリティグループを作成して、インスタンスでその適切なセキュリティグループを設定してください。

以上でセキュリティグループの設定は終了です。次にActive Directory用を1つ、XenApp用のインスタンスを2つ作成します。

この記事を読んでいる人はこんな記事も読んでいます