多層アーキテクチャ構成概要

多層アーキテクチャ構成とは、アプリケーションを複数の"層"に分け、それらを独立して編成する構成となります。
本ガイドで紹介する"多層アーキテクチャ構成"は、以下の層にて構成されます。

- DMZ(境界ネットワーク)
- プレゼンテーション層(ユーザインターフェイス)
- アプリケーション層(データを処理する層)
- データ層(データを保管・管理する層)

各層は1つ以上のvAppで構成され、vAppは1つ以上の仮想マシンが配置されます。
各層はOvDCネットワーク、およびvAppネットワークにて接続されます。

仮想マシン間で要求を分散させるには、ロードバランシング機能を使用します。
vApp内にロードバランサーを導入することによりロードバランサー・プールにVMを追加することで、層を水平方向にスケールすることが容易になります。
また、ロードバランサーにて各層へのアクセスを制限することで、データ層ではアプリケーション層からのアクセスのみが許可されるように設計ができます。

フロントエンドとインターネットの間にDMZ(境界ネットワーク)を配備することで多層アーキテクチャが構築されたvAppに直接トラフィックが流れる事が無いようにします。
これにより、アプリケーションへの送信トラフィックを監査する必要がある(多くの商用システムで要件となっているプライベートな情報の一般への漏えいを防ぐ措置)ケースに対応することが可能となります。
インターネットからの受信トラフィックを受け入れるには、宛先ネットワークアドレス変換(DNAT)を利用します。

- インターネットからの宛先アドレスは、DMZ内に配備されたファイアウォールインスタンスのパブリックIPアドレスとなります。
- 変換されたアドレスは、OvDCネットワーク内のプライベートIPアドレスとなります。

DMZが境界となりIPV内ネットワークをクローズドにすることが可能となり、送受信トラフィックのログ集積も可能となります。

注釈

多層アーキテクチャは3層に制限されているわけではありません。
複雑なアプリケーションの場合は、さらに層が増えるのが一般的です。
その為、レイヤー7ルーティングを使用して特定の層を構成しているvAppに要求をルートする必要があります。
上記の場合、DMZにてルート制御を行うかルート制御用のvAppを設けるかをご検討下さい。

以下の場合、多層アーキテクチャ構成を推奨します。

- シンプルなWebアプリケーション構成
- オンプレミスアプリケーションのクラウドサービスへの移行
- オンプレミスアプリケーションとクラウドアプリケーションの共通的な開発

多層アーキテクチャは従来のオンプレミス基盤にて非常に多く採用されているため、既存のワークロードを移行するのに適しています。

採用メリット

  • オンプレミス間、クラウドプラットフォーム間での移植性
  • 従来モデルとほぼ同一の為、開発者の習熟が容易
  • 異機種混在環境(WindowsとLinux)でも利用可能

構築ガイド

本ガイドでは、IPVで多層アーキテクチャ構成のWEBアプリケーションサービスを構築する例を記載します。
構築後の構成は以下図を参照下さい。

../_images/guide_sys-web_diagram.png


注釈

本ガイドは、[JP7リージョン申込みチュートリアル] > [新規申込方法] > [疎通確認] 後の環境をもとに記載しています。

構築概要

本ガイドで作成する仮想マシン、仮想マシンへ導入するソフトウェアは以下となります。

構築する仮想マシン
仮想サーバ名 役割 IPアドレス ディスクサイズ OS
t-dev-bfw01
境界防御用
仮想ファイアウォール
vNIC0:172.16.10.250/24
vNIC1:DHCP
vNIC2:172.16.30.250/24
64GB FreeBSD11(64bit)
t-mgmt-ad01 Active Directoryサーバー
vNIC0:172.16.10.1/24
80GB WindowsServer2019 Standard(64bit)
t-mgmt-mon01 監視サーバー
vNIC0:172.16.10.2/24
vNIC1:172.16.30.2/24
80GB Ubuntu 21.04 LTS
t-dev-flb01 仮想ロードバランサー
vNIC0:172.16.10.20/24
vNIC1:192.168.1.253/24
10GB Ubuntu 21.04 LTS
t-dev-fe01 WEB/APサーバー
vNIC0:172.16.10.21/24
vNIC1:192.168.1.1/24
vNIC2:192.168.10.2/24
10GB Ubuntu 21.04 LTS
t-dev-db01 DBサーバー
vNIC0:172.16.10.22/24
vNIC1:192.168.10.3/24
100GB Ubuntu 21.04 LTS


注釈

本ガイドでは、ロードバランシング機能を担う「仮想ロードバランサー」の代わりに、仮想マシンへNGINXを導入しDNSラウンドロビンで負荷分散を行います。

仮想マシンへ導入するソフトウェア
名称 バージョン
OPNsense 21.7.1-amd64
Elasticsearch 7.14.0
LogStash 7.14.0
Kibana 7.14.0
Filebeat 7.14.0
Metricbeat 7.14.0
WinLogbeat 7.14.0
Nginx 1.18.0

注釈

本ガイドでは、FreeBSD11、Ubintuに使用するパッケージ、ライブラリの取得用リポジトリとして、外部公開リポジトリを使用します。

前提条件

本ガイドは、[JP7リージョン申込みチュートリアル] > [新規申込方法] > [疎通確認] にて構築した環境をもとに記載します。

使用するユーザーは、"OrgAdmin"です。
IPVご利用開始時に標準で用意されているロール、ロールに紐づいている権限は以下を参照ください。


構築手順

1. 事前準備

仮想マシンの作成で使用するISO形式の仮想アプライアンスイメージ、および仮想マシンイメージファイルをアップロードします。
OSインストーラー、および仮想マシンイメージファイルは、カタログへ保存します。

1.1. カタログの種類

カタログは、コンテンツ(vApp テンプレート、メディアファイルなど)を格納できる領域です。
カタログには以下の2種類あります。

カタログの種類
本ガイドでの名称 説明
パブリックカタログ
当社が提供するOSテンプレート(パブリックテンプレート)が格納される領域です。
お客様がアップロードするコンテンツは格納できません。
Public-catalog という名前で、すべてのお客様へ登録されています。
プライベートカタログ
お客様がvCDテナントポータル上から作成できる領域です。
お客様がアップロードするコンテンツが格納できます。
格納したコンテンツは、組織に所属するユーザーへ共有することができます。

1.2. カタログの作成

vCDテナントポータルへログインし、Topメニューより[ライブラリ]をクリックします。

[コンテンツライブラリ]->[カタログ]をクリックします。
[新規]をクリックし、下表の設定にてカタログを作成します。

カタログの作成
項目 設定内容
名前 tutorial-catalog
説明
特定のストレージポリシーで事前プロビジョニングします オフ

カタログの作成完了後、[カタログ]に作成したカタログが表示されることを確認します。

1.3. 仮想アプライアンスイメージ(ISOファイル)のアップロード

[コンテンツライブラリ]->[メディアとその他]をクリックします。
[追加]をクリックし、下表の設定にてISOファイルをアップロードします。

ISOファイルのアップロード
項目 設定内容
カタログ tutorial-catalog
名前 OPNsense-21.7.1-OpenSSL-dvd-amd64.iso
アップロードするメディアを選択 OPNsense-21.7.1-OpenSSL-dvd-amd64.iso

ISOファイルのアップロード完了後、[メディアとその他]にアップロードしたISOファイルが表示されることを確認します。

1.4. vAppテンプレートの作成

[コンテンツライブラリ]->[vAppテンプレート]をクリックします。
[新規]をクリックし、下表の設定にてOVAファイルからvAppテンプレートを作成します。

vAppテンプレートの追加
項目 設定内容
1 ソースを選択参照
参照:OVAファイル(ubuntu-21.04-server-cloudimg-amd64.ova)を指定
ファイル:ubuntu-21.04-server-cloudimg-amd64.ova
2 vAppテンプレート名の選択
名前:Ubuntu-21.04-sv
説明:
カタログ:tutorial-catalog

注釈

本ガイドではCANONICAL社が公開しているクラウド環境用OVAファイルを使用しています。

vAppテンプレートの作成完了後、[vAppテンプレート]に作成したvAppテンプレートが表示されることを確認します。

2. OvDCネットワークの作成

本ガイドでは、2種類のOvDCネットワークを使用します。

2.1. OvDCネットワークの種類

OvDCネットワークの種類
本ガイドでの名称 説明
外部接続用ネットワーク Edge Gatewayと接続するOvDCネットワークです。
ワークロードネットワーク 仮想ファイアウォールの内側のOvDCネットワークです。vApp間での通信用のネットワークです。

../_images/guide_sys-web_nw001.png

本ガイドでは、アプリケーションがインストールされる仮想マシンを配置するvAppを、Edge Gatewayに接続しないネットワーク(ワークロードネットワーク)に接続させる構成とします。
外部接続用ネットワークとワークロードネットワークの間には、セキュリティ脅威を阻止する境界防御用ファイアウォールを構築します。
IPVで提供するEdge Gatewayのファイアウォール機能を外部用途とし、OvDC内に境界防御用ファイアウォールを設けることでセキュリティの多層化を実現します。
本構成のネットワークイメージは以下となります。

../_images/guide_sys-web_nw002.png

2.2. 外部接続用ネットワークへDHCPプールの追加

OvDC内仮想ネットワークの作成の前にインターネット接続用に作成したOvDCネットワーク"tutorial-ext-net001"の「DHCP」サービス機能を有効化します。

Topメニューより[データセンター]をクリックします。
本環境を構築する仮想データセンターカードをクリックします。

[ネットワーク]->[ネットワーク]をクリックします。
インターネット接続用に作成したOvDCネットワーク"tutorial-ext-net001"をクリックします。
[IPアドレス管理]->[DHCP]をクリックします。
[新規]をクリックし、下表の設定にて「DHCP」サービス機能を有効化します。

"tutorial-ext-net001"_新規DHCPプールの追加
項目 設定内容
IPプール 172.16.1.100-172.16.1.200

DHCPプールの追加完了後、[DHCP]に作成したDHCPプールが表示され、"有効"列にチェックがあることを確認します。

注釈

仮想マシンのNIC「編集」画面にて"IPモード"をDHCPに設定することで、当該仮想マシンへDHCPプールに割り当てられたIPアドレスが自動的に割り当てられます。

2.3. ワークロードネットワークの作成

Topメニューより[データセンター]をクリックします。
ネットワークを作成する[仮想データセンターカード]をクリックします。
[ネットワーク]->[ネットワーク]をクリックします。
[新規]をクリックし、下表の設定にて EdgeGatewayと接続しないOvDC内に閉じた OvDCネットワークを作成します。

マネジメント通信用OvDCネットワーク
項目 設定内容
1 範囲 データセンターグループ
2 ネットワークタイプ 隔離
3 全般
名前:t-dev-mgmt-172.16.10.0
ゲートウェイCIDR:172.16.10.254/24
説明:
4 固定 IP プール
ゲートウェイCIDR:
固定IPプール:
5 DNS
プライマリDNS:
セカンダリDNS:
DNSサフィックス:

ワークロード通信用OvDCネットワーク
項目 設定内容
1 範囲 現在の組織仮想データセンター
2 ネットワークタイプ 隔離
3 全般
名前:t-dev-tier-172.16.30.0
ゲートウェイCIDR:172.16.30.254/24
説明:
4 固定 IP プール
ゲートウェイCIDR:
固定IPプール:
5 DNS
プライマリDNS:
セカンダリDNS:
DNSサフィックス:

OvDCネットワーク追加設定完了後、[ネットワーク]に作成したOvCDCネットワークが表示されることを確認します。

3. 境界防御用仮想ファイアウォール、Active Directoryサーバー、および監視サーバー作成

外部接続用ネットワークとワークロードネットワークを分ける境界防御用仮想ファイアウォール、ワークロードネットワークに作成する仮想マシンを管理するサーバー群(Active Directoryサーバー、および監視サーバー作成)を作成します。
本工程の作業範囲は下図の通りです。

../_images/guide_sys-web_Initialsettings001.png

3.1. 境界防御用仮想ファイアウォールの作成

境界防御用仮想ファイアウォールを作成し、ワークロードネットワークを接続します。
本工程の作業範囲は下図の通りです。

../_images/guide_sys-web_bfw-diagram.png

境界防御用仮想ファイアウォールを配置することで、外部接続用ネットワークとワークロードネットワークのトラフィックを分離させます。

../_images/guide_sys-web_flow01.png

境界防御用仮想ファイアウォールのDNSリゾルバ機能を使用することで、ワークロードネットワーク内に配置したDNSサーバーから発信されたのDNSクエリを外部へ転送します。

../_images/guide_sys-web_flow02.png

3.1.1. 境界防御用仮想ファイアウォール用vAppの作成
Topメニューより[データセンター]をクリックします。
ネットワークを作成する[仮想データセンターカード]をクリックします。
[コンピュート]->[vApp]をクリックします。
[新規]をクリックし[新規vApp]をクリックします。
下表の内容でvAppを作成します。

境界防御用仮想ファイアウォール用vApp
項目 設定内容
名前 tutorial-dev-border
説明
パワーオン チェックなし

3.1.2. 境界防御用仮想ファイアウォール用vAppへのネットワークの追加
作成したvAppにネットワークを追加します。
vAppのリストより"tutorial-dev-border"カードを探し、カードの下部にある[アクション]をクリックします。
表示されたメニューリストから[追加]->[ネットワークの追加]をクリックします。
下表の設定にてvAppへネットワークを追加します。

vAppへ追加するネットワーク(外部接続用ネットワーク)
項目 設定内容
タイプ 組織VDCネットワーク
選択OvDCネットワーク名 tutorial-ext-net001

vAppへ追加するネットワーク(マネジメント通信用OvDCネットワーク)
項目 設定内容
タイプ 組織VDCネットワーク
選択OvDCネットワーク名 t-dev-mgmt-172.16.10.0

vAppへ追加するネットワーク(ワークロード通信用OvDCネットワーク)
項目 設定内容
タイプ 組織VDCネットワーク
選択OvDCネットワーク名 t-dev-tier-172.16.30.0

3.1.3. 境界防御用仮想ファイアウォール用仮想マシンの作成
事前準備にてアップロードした、ISO形式の仮想アプライアンスイメージを使用して、境界防御用仮想ファイアウォール用仮想マシンを作成します。

[コンピュート]->[vApp]をクリックします。
vAppのリストより"tutorial-dev-border"カードを探し、カードの下部にある[アクション]をクリックします。
表示されたメニューリストから[追加]->[仮想マシンの追加]をクリックします。
[仮想マシンをtutorial-dev-borderに追加]ダイアログが表示されます。
[仮想マシンの追加]をクリックし、下表の設定にてvAppへ仮想マシンを作成します。

仮想マシン(t-dev-bfw01)の作成
項目 設定内容
名前 t-dev-bfw01
説明
タイプ 新規にチェック
OSファミリ その他
オペレーティング システム FreeBSD 11 (64bit)
ブートイメージ [カタログ]->[メディアその他]にアップロードした"OPNsense-21.7.1-OpenSSL-dvd-amd64.iso"を選択
コンピュート
1. サイズの選択:事前定義済みのサイズ変更オプションにチェック
2. コンピュートサイズ:中にチェック
ストレージ
1. ストレージポリシー:仮想マシンのデフォルトポリシー
2. サイズ: 8GB
カスタムストレージポリシーの使用
チェックなし
ネットワーク
3本のOvDCネットワークと接続するため、2つのNICを追加します。
NIC No: 1
ネットワーク: t-dev-mgmt-172.16.10.0
ネットワークアダプタ タイプ: VMXNET3
IPモード: 固定 - 手動
IPアドレス: 172.16.0.250
プライマリNIC:

NIC No: 2
ネットワーク: tutorial-ext-net001
ネットワークアダプタ タイプ: VMXNET3
IPモード: DHCP
IPアドレス: 自動割り当て
プライマリNIC:

NIC No: 3
ネットワーク: t-dev-tier-172.16.30.0
ネットワークアダプタ タイプ: VMXNET3
IPモード: 固定 - 手動
IPアドレス: 172.16.30.250
プライマリNIC:

[OK]をクリックすることで、仮想マシンの構築処理が実行されます。
作成完了後、["tutorial-dev-border"カード]->[ネットワーク図]をクリックし仮想マシンが作成されていること、仮想マシンが3つのOvDCネットワークに紐づいていることを確認します。

3.1.4. 境界防御用仮想ファイアウォール用仮想マシンの初期設定
[コンピュート]->[仮想マシン]をクリックします。
仮想マシンのリストより"t-dev-bfw01"カードを探し、仮想マシン名をクリック、対象仮想マシン画面へ遷移します。
上部メニューの[パワーオン]をクリックします。

仮想マシンが起動したら、上部メニュー[WEBコンソールを起動]をクリックします。
別ウィンドウにて、WEBコンソールが起動します。
下表のOPNsenseログイン情報にてインストーラーへログインし、インストールウィザードを起動します。

仮想マシン(t-dev-bfw01):OPNsense初期ログイン情報
ログインID パスワード
installer opnsense

インストールウィザードに従いOPNsenseをインストールします。
仮想マシンにOPNsenseが正常にインストールされた後、OPNsenseが起動します。

OPNsenseのインストール直後の初期状態では、そのinterface IP addressは以下のように設定されいています。

仮想マシン(t-dev-bfw01):interface IP address初期状態
ネットワークインターフェイス名 接続するOvDCネットワーク IPモード IPアドレス 管理用Webインターフェイス
LAN t-dev-mgmt-172.16.10.0 固定 - 手動 192.168.1.1 管理用WEBインターフェイス
WAN tutorial-ext-net001 DHCP 自動割り当て  

対話メニューに従い、OP1の追加、およびLAN、OPT1へIPアドレスを設定します。

仮想マシン(t-dev-bfw01):interface IP address設定変更後
ネットワークインターフェイス名 接続するOvDCネットワーク IPモード IPアドレス 管理用Webインターフェイス
LAN t-dev-mgmt-172.16.10.0 固定 - 手動 172.16.10.250 管理用WEBインターフェイス
WAN tutorial-ext-net001 DHCP 自動割り当て  
OPT1(追加) t-dev-tier-172.16.30.0 固定 - 手動 172.16.30.250  

注釈

OPNsense等のネットワーク仮想アプライアンスを導入する際には、NICへ想定通りのネットワークを接続するために、仮想マシンのNIC情報(MACアドレス)を確認しながら設定作業を行って下さい。

以上で、境界防御用仮想ファイアウォールの作成が完了です。

注釈

OPNsenseでは、侵入検知、アンチウィルス機能、LB(リバースプロキシ)等の機能拡張が行えます。

3.2. Active Directoryサーバー、監視サーバーの作成

ワークロードネットワークのID管理、内部DNSとなるActive Directoryサーバー、および監視サーバーを作成します。
本工程の作業範囲は下図の通りです。
../_images/guide_sys-web_ad-diagram.png

3.2.1. Active Directoryサーバー
Active Directoryとは、Windows Server標準のディレクトリサービスとなります。
Active Directoryを作成することにより、ワークロードネットワークに存在するコンピュートリソース、ユーザー情報の一元管理が可能となります。
また、Windows Server標準のDNSサービスと組み合わせる事で、ワークロードネットワークに存在する仮想マシンのDNSサーバーとすることが可能です。
Active Directoryサーバー作成後、名前解決フローは以下のようなイメージとなります。

../_images/guide_sys-web_dnsimg000.png

3.2.2. 監視サーバー
監視サーバーを作成することにより、境界防御用仮想ファイアウォールやワークロードネットワークに存在する仮想マシンの監視を行います。
本ガイドでは、監視ツールとして、ELK Stackを用います。

ELK StackとはElastic社が提供する、Elasticsearch、Kibana、Beats、Logstash等のコアプロダクトの総称となります。
ELK Stackを用いる事で、様々なソースからデータを取得し、リアルタイムに検索/分析/可視化をすることができます。
ELK Stack構成要素が提供する機能を下表に示します。

ELK Stack主要構成要素
No 構成名 機能概要
1 Elasticsearch JSONベースのリアルタイムデータ検索/分析エンジン
2 Logstash データの収集/処理パイプライン
3 Kibana データ分析および検索ダッシュボード、全文検索エンジン「Elasticsearch」用のデータ視覚化プラグイン
4 Beats パケットキャプチャと各種ログ転送等のデータ用途により選択が可能

ELK Stackを用いる事によりOvDC内に展開されるシステム、アプリケーションのすべてのログを集計・分析し、OvDC内モニタリングの可視化、セキュリティ分析などを実現することが可能となります。
本ガイドで作成する監視サーバーは、下図のような監視を目的としています。

../_images/guide_sys-web_mon001.png

3.2.3. Active Directoryサーバー、および監視サーバー用vAppの作成
Topメニューより[データセンター]をクリックします。
ネットワークを作成する[仮想データセンターカード]をクリックします。
[コンピュート]->[vApp]をクリックします。
[新規]をクリックし[新規vApp]をクリックします。
下表の内容でvAppを作成します。

Active Directoryサーバー、および監視サーバー用vApp
項目 設定内容
名前 tutorial-dev-mgmt
説明
パワーオン チェックなし

3.2.4. Active Directoryサーバー、および監視サーバー用vAppへのネットワークの追加
作成したvAppにネットワークを追加します。
vAppのリストより"tutorial-dev-mgmt"カードを探し、カードの下部にある[アクション]をクリックします。
表示されたメニューリストから[追加]->[ネットワークの追加]をクリックします。
下表の設定にてvAppへネットワークを追加します。

vAppへ追加するネットワーク(マネジメント通信用OvDCネットワーク)
項目 設定内容
タイプ 組織VDCネットワーク
選択OvDCネットワーク名 t-dev-mgmt-172.16.10.0

vAppへ追加するネットワーク(ワークロード通信用OvDCネットワーク)
項目 設定内容
タイプ 組織VDCネットワーク
選択OvDCネットワーク名 t-dev-tier-172.16.30.0

3.2.5. Active Directoryサーバー用仮想マシンの作成
事前準備にてアップロードした、仮想マシンイメージファイルを使用して、Active Directory用仮想マシンを作成します。

[コンピュート]->[vApp]をクリックします。
vAppのリストより"tutorial-dev-mgmt"カードを探し、カードの下部にある[アクション]をクリックします。
表示されたメニューリストから[追加]->[仮想マシンの追加]をクリックします。

[仮想マシンをtutorial-dev-mgmtに追加]ダイアログが表示されます。
[仮想マシンの追加]をクリックし、下表の設定にてvAppへ仮想マシンを作成します。

仮想マシン(t-mgmt-ad01)作成
項目 設定内容
名前 t-mgmt-ad01
説明
タイプ テンプレートから
テンプレート WindowsServer-2019_Standard_64_include-license_hw17_MvP_01
ストレージ
ストレージポリシー:******(VDCのデフォルト) ※環境によりストレージポリシー名は異なります。
コンピュート
項目なし
NIC
項目なし※別途、仮想マシン構成設定にて追加するため、空欄となります。
カスタムプロパティ
項目なし
エンドユーザー使用許諾契約書(EULA)
項目なし

[OK]をクリックし、仮想マシンを構築します。

作成完了後、[vApp]->[tutorial-dev-mgmt]をクリックし、追加した仮想マシンが表示されていることを確認します。
仮想マシン名をクリックし、対象仮想マシン画面へ遷移します。
[ハードウェア]->[NIC]をクリックします。
[編集]をクリックし、下表の設定にてNICを追加します。

仮想マシン(t-mgmt-ad01):NIC設定
NIC No ネットワーク ネットワークアダプタ タイプ IPモード IPアドレス プライマリNIC
0 t-dev-mgmt-172.16.10.0 VMXNET3 固定 - 手動 172.16.10.1

上部メニューの[パワーオン]をクリックします。

仮想マシンが起動したら、上部メニュー[WEBコンソールを起動]をクリックします。
別ウィンドウにて、WEBコンソールが起動します。
WEBコンソールを用いて仮想マシンにログインを行い、デスクトップが正常に表示されるのを確認します。

下表のログイン情報にてOSへログインします。

仮想マシン(t-dev-ad01):初期ログイン情報
ログインID パスワード
Administrator [ゲストOSのカスタマイズ]->[編集]、[ゲストプロパティの編集]->[パスワードを指定]に記載された値

注釈

仮想マシンパワーオン時に、ゲストOSカスタマイズ処理が実行されます。
仮想マシンのパスワードは、ゲストOSカスタマイズ処理によってvCDテナントポータルに設定された値が設定されます。
仮想マシンのパスワードは、 [ゲストOSのカスタマイズ]->[編集]をクリックし表示される、[ゲストプロパティの編集]->[パスワードを指定]に設定します。

ここまでで、vCDテナントポータルでの作業が完了です。
以降は、仮想マシン内でのActive Directoyの導入、設定となります。

Active Directory、内部DNSは[Server Manager]->[Dashboard]->[Add roles and features]より導入します。
[Add roles and features]ウィザードに従い導入して下さい。
導入完了後、ActiveDirectory、内部DNSの設定をして完了となります。

3.2.6. 監視サーバー用仮想マシンの作成
事前準備にてアップロードした、仮想マシンイメージファイルを使用して、監視サーバー用仮想マシンを作成します。

[コンピュート]->[vApp]をクリックします。
vAppのリストより"tutorial-dev-mgmt"カードを探し、カードの下部にある[アクション]をクリックします。
表示されたメニューリストから[追加]->[仮想マシンの追加]をクリックします。

[仮想マシンをtutorial-dev-mgmtに追加]ダイアログが表示されます。
[仮想マシンの追加]をクリックし、下表の設定にてvAppへ仮想マシンを作成します。

仮想マシン(t-mgmt-mon01)作成
項目 設定内容
名前 t-mgmt-mon01
説明
タイプ テンプレートから
テンプレート Ubuntu-21.0.4-SV ※tutorial-catalog
ストレージ
ストレージポリシー:******(VDCのデフォルト) ※環境によりストレージポリシー名は異なります。
コンピュート
項目なし
NIC
項目なし※別途、仮想マシン構成設定にて追加するため、空欄となります。
カスタムプロパティ
項目なし
エンドユーザー使用許諾契約書(EULA)
項目なし

[OK]をクリックし、仮想マシンを構築します。

作成完了後、[vApp]->[tutorial-dev-mgmt]をクリックし、仮想マシンに追加した仮想マシンが表示されていることを確認します。
仮想マシン名をクリックし、対象仮想マシン画面へ遷移します。
[ハードウェア]->[NIC]をクリックします。
[編集]をクリックし、下表の設定にてNICを追加します。

仮想マシン(t-mgmt-mon01):NIC設定
NIC No ネットワーク ネットワークアダプタ タイプ IPモード IPアドレス プライマリNIC
0 t-dev-mgmt-172.16.10.0 VMXNET3 固定 - 手動 172.16.10.2

[ハードウェア]->[コンピュート]をクリックしメモリの増設を実施します。
デプロイ時点ではメモリが1GBしかないため、アプリケーションプロセスを起動する際にメモリ不足となります。
導入するアプリケーションに適したメモリ量を搭載するため、メモリの増設を行う必要があります。

下部にある"メモリ"欄の[編集]をクリックし、下表の設定にてメモリを10GBに変更します。

仮想マシン(t-dev-mon01):メモリの詳細を編集
メモリ(GB) メモリホットアド
10 チェックなし(無効)

上部メニューの[パワーオン]をクリックします。

仮想マシンが起動したら、上部メニュー[WEBコンソールを起動]をクリックします。
別ウィンドウにて、WEBコンソールが起動します。
WEBコンソールを用いて仮想マシンにログインを行い、デスクトップが正常に表示されるのを確認します。

下表のログイン情報にてOSへログインします。

仮想マシン(t-dev-mon01):初期ログイン情報
ログインID パスワード
root [ゲストOSのカスタマイズ]->[編集]、[ゲストプロパティの編集]->[パスワードを指定]に記載された値

3.2.7. 監視サーバー用仮想マシンのネットワーク設定
使用しているOVA(OVF)では"cloud-init"による設定がなされているため、OvDC環境に沿ったネットワーク回りの再設定を実施します。
Ubuntuでは、ネットワーク設定として「netplan」を使用して設定を行います。
※「50-cloud-init.yaml」が仮想マシン内に生成されています。これは、"cloud-init"がOSデプロイ時に使用するファイルとなります。このファイルをコピーしてネットワーク設定を行います。
以下のコマンドにて仮想マシンのネットワーク設定を行います。

注釈

キーボード設定の変更およびフロッピーモジュールの削除を行う場合は以下を実施下さい。

■ フロッピーデバイスモジュール無効化コマンド

Linux
sudo rmmod floppy
echo "blacklist floppy" | sudo tee /etc/modprobe.d/blacklist-floppy.conf
sudo dpkg-reconfigure initramfs-tools

■ キーボード設定変更(日本語)コマンド

Linux
sudo dpkg-reconfigure keyboard-configuration
# 設定変更用GUIに遷移します
#1. Keyboard model項目にて"Generic 105-key(Intl)PC"を選択
#2. country of origin for the keyboard項目にて"Japanese"を選択
#3. keyboard layout項目にて"Japanese"を選択
#4. 以降、各キー、ファンクション設定を必要に応じて項目を選択
# 設定変更用GUIが終了した後に再起動をすることでKeyBoard設定が変更されます
reboot

■ 仮想マシンネットワーク設定

Linux
# 変更前のネットワーク設定を確認します
ip addr show

# 出力結果
# 0: lo: ~
# 1: ens{No}: ~ ← ens{No}が仮想マシンに追加したNICのデバイス名となります。
#


# 50-cloud-init.yamlファイルをコピーして01-netcfg.yamlファイルを作成します。
sudo cp /etc/netplan/50-cloud-init.yaml /etc/netplan/01-netcfg.yaml


# 50-cloud-init.yamlファイルをリネームします。
sudo mv /etc/netplan/50-cloud-init.yaml /etc/netplan/50-cloud-init.yaml.org


# 01-netcfg.yamlファイルを編集します。
sudo vi /etc/netplan/01-netcfg.yaml

# vi 編集内容
# This file is generated from information provided by the datasource.
## 中略
# network: {config: disabled}
network:
   ethernets:
       ens{xxx}: # デバイス名は"ip addr show"コマンドにて確認したものとなります。
           dhcp4: no
           addresses: [172.16.10.2/24]
           gateway4: 172.16.10.250 # 境界防御用仮想ファイアウォールがゲートウェイとなります。
           nameservers:
             addresses: [172.16.10.1] # t-mgmt-ad01がDNSとなります。
           dhcp6: no
   version: 2


# netplan設定内容を反映します。
netplan apply


# 変更が反映されていることを確認します
ip addr show

以上で、ネットワーク設定が完了です。

設定が完了した後、以下のコマンドにてネットワーク疎通、OvDC外部のサーバーの名前解決ができることを確認します。

Linux
# Active Directoryサーバーとの疎通確認 packet lossが0であることを確認
ping 172.16.10.1


# 外部接続用ネットワークとの疎通確認 packet lossが0であることを確認
ping 172.16.1.254


# 外部DNSへの名前解決確認 名前解決できることを確認
ping www.google.co.jp

注釈

外部DNSへの名前解決の確認を行う場合は、事前にActive Directoryサーバーへにて内部DNSを作成する必要があります。
DNSフォワード先は、境界防御用ファイアウォールのDNSフォワーダー(リゾルバ)とします。
本ガイドで使用している「OPNsense」は、DNSリゾルバ機能が利用可能です。
※ デフォルト状態では、DNSクエリ転送が許可されていないため、設定の変更が必要です。


3.2.8. 監視サーバー用仮想マシンへの監視ツールの導入、設定(事前準備)
ELK Stackパッケージを導入します。
ただし、ELK StackパッケージはOSにデフォルトで設定されているリポジトリからは導入できません。
その為、リポジトリを管理する「sources.list」ファイルへELK Stackパッケージが導入できるリポジトリ追加します。
以下のコマンドにて、ELK Stackパッケージ導入の事前設定、および「sources.list」ファイルへのリポジトリ設定を行います。

Linux
# パッケージの最新化を行います。
sudo apt update -y
sudo apt upgrade -y


# ELK Stackパッケージ導入するのに必要となる依存関係パッケージおよび必要コマンドをインストールします。
sudo apt install wget apt-transport-https curl gnupg2 -y


# Javaをインストールします。
sudo apt install openjdk-11-jdk


# Javaが導入されたことを確認します。
java -version

## 出力内容
openjdk version "11.0.11" 2021-04-20
OpenJDK Runtime Environment (build 11.0.11+9-Ubuntu-0ubuntu2)
OpenJDK 64-Bit Server VM (build 11.0.11+9-Ubuntu-0ubuntu2, mixed mode, sharing)


# Elasticsearchを導入するためのElasticsearch署名Keyを取得します。
curl -fsSL https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -


# sources.list.dディレクトリへ必要なリポジトリを追加します。
echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-7.x.list


# パッケージリストの再読み込み、https://artifacts.elastic.co/packages/7.x/aptを参照していることを確認します。
sudo apt update

以上で、ELK Stackパッケージ導入の事前準備が完了です。

注釈

本ガイドの手順で設定するリポジトリは、2021/08時点の最新バージョンのリポジトリです。
お客様が設定される場合は、最新バージョンのリポジトリを選択下さい。
最新バージョンについてはElastic社公式をご確認下さい。


続けて、ELK Stackを導入します。

3.2.9. 監視サーバー用仮想マシンへの監視ツールの導入、設定(Elasticsearchの導入)
最初にElasticsearchを導入します。
Elasticsearchは、全文検索エンジンとなります。
Elasticsearchを用いる事で、大量のログから任意の単語を含む一文を検索することができます。
以下のコマンドにて、Elasticsearchを導入します。

Linux
# Elasticsearchを導入します。
sudo apt install elasticsearch -y


# Elasticsearchサービスの起動と有効化を実施します。
systemctl start elasticsearch
systemctl enable elasticsearch


# Elasticsearch Listenポート(9200)の状態を確認します。
ss -antpl | grep 9200

## 出力結果
LISTEN 0 4096  [::ffff:127.0.0.1]:9200 *:* users:(("Java",pid=xxxxx , fd=xxx))
LISTEN 0 4096  [::1]:9200 [::]:* users:(("Java",pid=xxxxx , fd=xxx))


# Elasticsearch HTTPリクエストの確認を行います。
curl -X GET http://localhost:9200

## 出力結果
{
 "name" : "t-mgmt-mon01",
 "cluster_name" : "elasticsearch",
 "cluster_uuid" : "XXXXXXXXXXXXXXXXXXXXXX",
 "version" : {
   "number" : "7.14.0",
   "build_flaver" : "default",
   "build_type" : "deb",
   "build_hash" : "XXXXXXXXXXXXXXXXXXXXXX",
   "build_date" : "yyyy-mm-ddThh:mm:ss.xxxxxxxxxZ",
   "build_snapshot" : false,
   "lucene_version" : "8.9.0",
   "minimum_wire_compatibility_version" : "6.8.0",
   "minimum_index_compatibility_version" : "6.0.0-bata1"
 },
 "tagline" : "You Know, for Search"
}

以上で、Elasticsearchの導入が完了です。

3.2.10. 監視サーバー用仮想マシンへの監視ツールの導入、設定(LogStashの導入)
次にLogStashを導入します。
LogStashは、サーバーサイドのデータパイプラインとなります。
LogStashを用いる事で、様々なデータを収集、変換を行いElasticsearchへ引き渡します。
以下のコマンドにて、LogStashを導入します。

Linux
# LogStashを導入します。
sudo apt install logstash -y


# Logstash設定ファイルを編集します。
# 導入後は入力/出力/フィルター等の設定がされていないため、新規に設定ファイルを作成します
vi /etc/logstash/conf.d/logstash.conf

# 以下を設定ファイルに定義します。
input {
 beats {
   port => "5044"
   type => "beats"
 }
}
filter {
  if [type] == "syslog" {
     grok {
       match => { "message" => "%{SYSLOGLINE}" }
     }
     date {
       match => [ "timestamp", "MMM d HH:mm:ss", "MMM dd HH:mm:ss" ]
     }
  }
}
output {
  elasticsearch {
    hosts => ["localhost:9200"]
    index => "%{[@metadata][beat]}-%{+YYYY.MM.dd}"
  }
}


# Logstashサービスの起動と有効化を実施します
systemctl start logstash
systemctl enable logstash

以上で、LogStashの導入が完了です。

3.2.11. 監視サーバー用仮想マシンへの監視ツールの導入、設定(Kibanaの導入)
次にKibanaを導入します。
Kibanaは、Elasticsearchに格納されたデータをWebベースで視覚化します。
以下のコマンドにて、Kibanaを導入します。

Linux
# kibanaを導入します。
sudo apt install kibana -y


# kibana設定ファイルを編集します
# Kibanaのデフォルト設定では外部アクセスが許可されていないため、設定ファイルを変更し、外部アクセスを許可します。
vi /etc/kibana/kibana.yml

## 以下を追記します。
server.host: "0.0.0.0"

## 以下のコメントアウトを解除します。
elasticsearch.hosts: ["http://localhost:9200"]


# kibanaサービスの起動と有効化を実施します
systemctl start kibana
systemctl enable kibana

仮想マシンの再起動を行います。

KibanaのWEBインターフェイスの確認を行います。
Active Directoryサーバー(t-mgmt-ad01)から、KibanaのWEBインターフェイス(以下、監視コンソール)へ接続できることを確認します。
Active Directoryサーバー(t-mgmt-ad01)へログインし、WEBブラウザを起動して、下記URLへアクセスできる事を確認します。

http://172.16.10.2:5601

注釈

WEBブラウザInternet ExplorerではKibanaを正常に表示ができません。Google Chromeなど他ブラウザをインストールしてください。
※ ダウンロードの際には[Server Manager]->[Dashboard]内の"IE Enhanced Security Configuration"を「Off」に変更下さい。


以上で、Kibanaの導入が完了です。

3.2.12. 監視サーバー用仮想マシンへの監視ツールの導入、設定(Filebeatの導入)
最後にFilebeatを導入します。
Filebeatは、ログファイルの収集及び転送を行います。
Filebeatを導入することでELK Stackの最小構成が完了となります。
以下のコマンドにて、filebeatを導入します。

Linux
# Filebeatを導入します。
sudo apt install filebeat -y


# Filebeatのデフォルト設定では、ログファイルをElasticsearchへ転送するよう設定されています。これを、LogStashへ転送するよう設定変更します
# Filebeatの設定ファイルを編集します。
vi /etc/filebeat/filebeat.yml

## 以下をコメントアウトします。
# output.elasticsearch:
#   hosts: ["localhost:9200"]

## 以下のコメントアウトを解除します。
output.logstash:
  hosts: ["localhost:5044"]


# Filebeatサービスの起動と有効化を実施します
systemctl start filebeat
systemctl enable filebeat

仮想マシンを再起動します。

以上で、Filebeatの導入が完了です。

注釈

Active Directoryサーバーから、管理コンソールへアクセスできない場合は、監視サーバーのサービスの状態をご確認下さい。
Elacticsearchプロセスが起動していない場合は、関連サービスを一度停止させた後に以下の順序で再起動をお願い致します。

サービス起動順序
 1. Elacticsearchサービス
 2. Logstashサービス
 3. Kibanaサービス
 4. Filebeatサービス

以下のように、監視コンソールにて境界防御用ファイアウォールの状態監視が行えるようになります。

../_images/guide_sys-web_monimg000.png


4. 多層アーキテクチャ用カタログ環境構築

アプリケーションを配置する準備が整いましたので、多層構造のアプリケーションサービスを構築していきます。
作成する多層構造の構成は、下図の通りです。

../_images/guide_sys-web_catalog-img.png

4.1. アプリケーション配置用のvAppの作成

アプリケーション配置用のvAppを作成します。

Topメニューより[データセンター]をクリックします。
ネットワークを作成する[仮想データセンターカード]をクリックします。
[コンピュート]->[vApp]をクリックします。
[新規]をクリックし[新規vApp]をクリックします。
下表の内容でvAppを作成します。

アプリケーション配置用のvApp
項目 設定内容
名前 tutorial-dev-ntier
説明
パワーオン チェックなし

4.2. アプリケーション配置用のvAppへのネットワークの追加

作成したvAppにネットワークを追加します。
vAppのリストより"tutorial-dev-ntier"カードを探し、カードの下部にある[アクション]をクリックします。
表示されたメニューリストから[追加]->[ネットワークの追加]をクリックします。
下表の設定にてvAppへネットワークを追加します。

vAppへ追加するネットワーク(マネジメント通信用OvDCネットワーク)
項目 設定内容
タイプ 組織VDCネットワーク
選択OvDCネットワーク名 t-dev-mgmt-172.16.10.0

vAppへ追加するネットワーク(ワークロード通信用OvDCネットワーク)
項目 設定内容
タイプ 組織VDCネットワーク
選択OvDCネットワーク名 t-dev-tier-172.16.30.0

つづいてvAppネットワークを追加します。
[アクション]メニューリストから[追加]->[ネットワークの追加]をクリックします。
下表の設定にてvAppネットワークを"tutorial-dev-ntier"に追加します。

vAppへ追加するvAppネットワーク(WEBフロント用ネットワーク)
名前 ゲートウェイCIDR 用途
t-dev-front 192.168.1.254/24 WEBフロント用ネットワーク

vAppへ追加するvAppネットワーク(DB通信用ネットワーク)
名前 ゲートウェイCIDR 用途
t-dev-back 192.168.10.254/24 DB通信用ネットワーク

4.3. アプリケーション配置用のvAppへのアプリケーション用テンプレート仮想マシンの作成

4.3.1. アプリケーション用テンプレート仮想マシンの作成

[コンピュート]->[vApp]をクリックします。
vAppのリストより"tutorial-dev-ntier"カードを探し、カードの下部にある[アクション]をクリックします。
表示されたメニューリストから[追加]->[仮想マシンの追加]をクリックします。

[仮想マシンをtutorial-dev-ntierに追加]ダイアログが表示されます。
[仮想マシンの追加]をクリックし、下表の設定にてvAppへ仮想マシンを作成します。

仮想マシン(t-dev-tmp01)作成
項目 設定内容
名前 t-dev-tmp01
説明
タイプ テンプレートから
テンプレート Ubuntu-21.0.4-SV ※tutorial-catalog
ストレージ
ストレージポリシー:******(VDCのデフォルト) ※環境によりストレージポリシー名は異なります。
コンピュート
項目なし
NIC
項目なし※別途、仮想マシン構成設定にて追加するため、ここでは空欄とします。
カスタムプロパティ
項目なし
エンドユーザー使用許諾契約書(EULA)
項目なし

[OK]をクリックし、仮想マシンを構築します。

作成完了後、[vApp]->[tutorial-dev-ntier]をクリックし、仮想マシンに追加した仮想マシンが表示されていることを確認します。
仮想マシン名をクリックし、対象仮想マシン画面へ遷移します。
[ハードウェア]->[NIC]をクリックします。
[編集]をクリックし、下表の設定にてNICを追加します。


上部メニューの[パワーオン]をクリックします。


4.3.2. 仮想マシンのネットワーク設定
仮想マシンに対し、監視エージェント(beats:metricbeat、filebeat)を導入、設定します。
下表のログイン情報にてOSへログインします。

仮想マシン(t-dev-tmp01):初期ログイン情報
ログインID パスワード
Administrator [ゲストOSのカスタマイズ]->[編集]、[ゲストプロパティの編集]->[パスワードを指定]に記載された値

以下のコマンドにて、監視エージェント(beats:metricbeat、filebeat)を導入します。

Linux
# 変更前のネットワーク設定を確認します
ip addr show

# 出力結果
# 0: lo: ~
# 1: ens{No}: ~ ← ens{No}が仮想マシンに追加したNICのデバイス名となります。


# 50-cloud-init.yamlファイルをコピーして01-netcfg.yamlファイルを作成します。
sudo cp /etc/netplan/50-cloud-init.yaml /etc/netplan/01-netcfg.yaml

# 50-cloud-init.yamlファイルをリネームします。
sudo mv /etc/netplan/50-cloud-init.yaml /etc/netplan/50-cloud-init.yaml.org

# 01-netcfg.yamlファイルを編集します。
sudo vi /etc/netplan/01-netcfg.yaml

# vi 編集内容
# This file is generated from information provided by the datasource.
## 中略
# network: {config: disabled}
network:
   ethernets:
       ens{xxx}: # デバイス名は"ip addr show"コマンドにて確認したものとなります。
           dhcp4: no
           addresses: [{仮想マシンのIP Address}/24] # 個々の仮想マシンのIP Addressを設定します
           gateway4: 172.16.10.250 # 境界防御用仮想ファイアウォールがゲートウェイとなります。
           nameservers:
             addresses: [172.16.10.1] # t-mgmt-ad01がDNSとなります。
           dhcp6: no
   version: 2

# netplan設定内容を反映します。
netplan apply

# 変更が反映されていることを確認します
ip addr show

4.3.3. 仮想マシンへの監視エージェントの導入
仮想マシンに対し、監視エージェント(beats:metricbeat、filebeat)を導入、設定します。
以下のコマンドにて、監視エージェント(beats:metricbeat、filebeat)を導入します。

Linux
# パッケージの最新化を行います
sudo apt update -y
sudo apt upgrade -y


# ELK Stackパッケージ導入するのに必要となる依存関係パッケージおよび必要コマンドをインストールします
sudo apt install wget apt-transport-https curl gnupg2 -y


# 監視エージェント(metricbeat、filebeat)を導入するためのElasticsearchリポジトリ署名Keyを取得します。
curl -fsSL https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -


# sources.list.dディレクトリへ必要なリポジトリを追加します。
echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-7.x.list


# パッケージリストの再読み込み、https://artifacts.elastic.co/packages/7.x/aptを参照していることを確認します。
sudo apt update


# 監視エージェントFilebeatを導入します。
sudo apt install filebeat -y


# Filebeatの設定を変更します。
vi /etc/filebeat/filebeat.yml

# vi 編集内容
## 中略
filebeat.inputs:
# 以下を追加します。
- type: syslog
  protocol.udp:
    host: "{仮想マシンのIP Address}:9000"

## 以下をコメントアウトします。
#output.elasticsearch:
#  hosts: ["localhost:9200"]

## 以下のコメントアウトを解除し、送信先IPアドレスを編集します。
output.logstash:
  hosts: ["172.16.10.2:5044"]


# filebeatを実行します。
filebeat -e


# filebeatサービスの起動と有効化を実施します。
systemctl start filebeat
systemctl enable filebeat


# 監視エージェントmetricbeatを導入します
sudo apt install metricbeat -y

# metricbeatの設定を変更します。
vi /etc/metricbeat/metricbeat.yml

# vi 編集内容
## 中略
# 以下を追加します。
setup.kibana:
    host: "172.16.10.2:5601"
output.elasticsearch:
    hosts: ["172.16.10.2:9200"]


# metricbeatを実行します。
metricbeat setup

# metricbeatサービスの起動と有効化を実施します。
systemctl start metricbeat
systemctl enable metricbeat

以上で、アプリケーション用テンプレート仮想マシンの作成が完了です。
仮想マシンをシャットダウンします。

5. アプリケーション用仮想マシンの作成

5.1. 仮想マシンの複製

"アプリケーション用テンプレート仮想マシン" から "アプリケーション用仮想マシン" を作成します。

[コンピュート]->[vApp]をクリックします。
[vApp]->[tutorial-dev-ntier]内仮想マシンに追加した仮想マシンが表示されていることを確認し仮想マシン名をクリックします。
[すべてのアクション]->[コピー]をクリックします。

[仮想マシン t-dev-flb01 のコピー]ダイアログが表示されます。
下表の設定にてvAppへ仮想マシンを複製します。

作成完了後、[vApp]->[tutorial-dev-ntier]をクリックし、仮想マシンに追加した仮想マシンが表示されていることを確認します。

[ハードウェア]->[コンピュート]をクリックしメモリの増設を行います。
デプロイ時点ではメモリが1GBしかないため、アプリケーションプロセスを起動する際にメモリ不足となります。
導入するアプリケーションに適したメモリ量を搭載するため、メモリの増設を行う必要があります。

下部にある"メモリ"欄の[編集]をクリックし、下表の設定にてメモリを必要量に変更します。

仮想マシン(t-dev-tmp01):メモリの詳細を編集
メモリ(GB) メモリホットアド
必要量 チェックなし(無効)

各仮想マシンを[パワーオン]します。

5.2. アプリケーション用仮想マシンの設定変更

下表のログイン情報にてOSへログインします。

仮想マシン:初期ログイン情報
ログインID パスワード
Administrator [ゲストOSのカスタマイズ]->[編集]、[ゲストプロパティの編集]->[パスワードを指定]に記載された値

アプリケーション用仮想マシンのホスト名やネットワークの設定を行います。

Linux
# ホスト名を変更します。
hostnamectl set-hostname {仮想マシンのホスト名}


# hosts を変更します。
sudo vi /etc/hosts
## vi 編集内容
## 以下を編集します。
127.0.0.1  {仮想マシンのホスト名}
::1  {仮想マシンのホスト名}


# 変更前のネットワーク設定を確認します
ip addr show


# IP Addressを変更します。
sudo vi /etc/netplan/01-netcfg.yaml

## vi 編集内容
# This file is generated from information provided by the datasource.
## 中略
# network: {config: disabled}
network:
   ethernets:
       ens{xxx}: # デバイス名は"ip addr show"コマンドにて確認したものとなります。
           dhcp4: no
           addresses: [{仮想マシンのIP Address}/24]
           gateway4: 172.16.10.250
           nameservers:
             addresses: [172.16.10.1]
           dhcp6: no
   version: 2


# netplan設定内容を反映します。
netpln apply


# 変更が反映されていることを確認します。
ip addr show

# filebeat設定の編集を行います。
vi /etc/filebeat/filebeat.yml

## vi 編集内容
## 中略
filebeat.inputs:
# 追加
- type: syslog
  protocol.udp:
    host: "{仮想マシンのIPアドレス}:9000"


# rootパスワードを変更します。
sudo passwd root
New password: {新規のパスワード}
Retype new password: {新規のパスワード}


# 設定内容を反映するため再起動します。
reboot

監視コンソールから、ワークロードネットワーク内の仮想マシン情報が表示されることを確認します。
追加した仮想サーバーのメトリクス情報が、監視サーバーへ登録されアプリケーション用仮想マシンの状態監視が行えるようになります。

../_images/guide_sys-web_monimg001.png


6. アプリケーション用仮想マシンへソフトウェアの導入

6.1. 仮想ロードバランサーの作成

仮想マシン(t-mgmt-fle01)へNGINXを導入します。
NGINXは、NGINX社が提供しているフリーかつオープンなWEBサーバ用のソフトウェアです。
WEBサービス機能(ロードバランサー、リバースプロキシ等)に特化したアプリケーションです。

注釈

NGINXは、大量のクライアントからのアクセスを同時に処理しようとするとレスポンスが大きく下がる「C10K問題」に焦点をあてて開発が行われているのが特徴です。
7.1.1. NGINXの導入
NGINXをインストールします。
Ubuntuは、OSにデフォルトで設定されているリポジトリでNGINXが提供されています。

Linux
sudo apt install -y nginx

Ubuntuのデフォルト設定では、ファイアウォール機能が無効化されていますので、これを有効化します。

Linux
# ファイアウォール機能の状態を確認します。
sudo ufw status

# 出力結果
Status : inactive


# ファイアウォール機能を有効化します。
sudo ufw enable


# ファイアウォール機能の状態を確認します。
sudo ufw status

# 出力結果
Status : active


# ファイアウォール アプリケーションプロファイルの一覧を表示します。
sudo ufw app list

# 出力結果
Available applications :
  Nginx Full  # ポート80/443を許可します
  Nginx HTTP  # ポート80を許可します
  Nginx HTTPS # ポート443を許可します
  OpenSSH     # ポート22を許可します


# ポート80を許可します。
sudo ufw allow 'Nginx HTTP'
sudo ufw allow 'Nginx HTTPS'


# ファイアウォール機能の状態を確認します。
sudo ufw status

# 出力結果
Status : active

To               Action        From
--               ------        ----
Nginx HTTP       ALLOW         Anywhere
Nginx HTTPS      ALLOW         Anywhere
OpenSSH          ALLOW         Anywhere
Nginx HTTP (v6)  ALLOW         Anywhere (v6)
Nginx HTTPS (v6) ALLOW         Anywhere (v6)
OpenSSH (v6)     ALLOW         Anywhere (v6)

NGINXのサービスは、導入後、自動起動します。
以下、コマンドにてサービス状態を確認します。

Linux
# NGINXサービスの状態を確認します
sudo systemctl status nginx

# 出力結果
● nginx.service - A high performance web server and a reverse proxy server
     Loaded : loaded (/lib/systemd/system/nginx.service; # ~ 中略 ~
     Active : acive (running) # ~ 中略 ~
     # ~ 中略 ~
Mon DD HH:MM:SS {hostname} systemd[1]: Starting A high performance web server # ~ 中略 ~
Mon DD HH:MM:SS {hostname} systemd[1]: Started A high performance web server # ~ 中略 ~

Active Directoryサーバー(t-mgmt-ad01)へログインし、t-dev-flb01へ"HTTP"アクセスを行い、NGINXが正常に起動していることを確認します。

Linux
http://172.16.10.20

6.1.2. NGINXの設定
NGINXをロードバランサーとして設定します。
以下のような処理遷移を行うようにします。

../_images/guide_sys-web_vlb001.png

本ガイドでは、HTTPS通信で必要となるSSLを自己証明書にて設定します。

注釈

SSLの終端を、仮想ロードバランサーで行うことを前提としています。


以下コマンドにて、証明書の作成を行います。

Linux
# 認証局(CA)用の秘密鍵を配置するディレクトリを作成します。
cd /etc/ssh/
mkdir private
cd private


# CA用の秘密鍵を作成します。
openssl genrsa -out ca.key 2048


# CA用の自己証明書を発行します。
openssl req -new -x509 -days 3650 -key ca.key -out ca.crt


# 秘密鍵を作成します。
openssl genrsa -out server.key 2048


# CSRを作成します。
openssl req -sha256 -new -key server.key -out server.csr


# 自己証明書を発行します。
openssl x509 -req -days 3650 -CA ca.crt -CAkey ca.key -CAcreateserial -in server.csr -out server.crt

仮想ロードバランサーの設定を行います。
仮想ロードバランサーの設定は、外部ファイルに作成しサービス起動時に読み込まれます。
本ガイドではロードバランシング方式としてDNSラウンドロビンを用います。

Linux
# hosts へWEB/APサーバーの情報を追記し、名前解決できるようにします。
vi /etc/hosts

# 以下を追記します。
# ALB
192.168.1.1  t-dev-fe01


# NGINXの設定ファイルを編集します
vi /etc/nginx/nginx.conf

# httpディレクティブに対して追加設定します
http {
  upstream backend {
    server t-dev-fe01.example.co.jp;
  }

  server {
    listen 80;
    server_name test.example.co.jp;
    return 301 https://$host$request_uri; # HTTPでのリクエストをHTTPSへリダイレクトさせます
  }

  server {
    listen 443 ssl;
    server_name test.example.co.jp;
    # SSL有効化
    ssl_certificate /etc/ssh/server.crt;
    ssl_certificate_key /etc/ssh/server.key;
    location / {
        # upstream設定へむけることで振分けします
        proxy_pass http://backend;
        proxy_redirect off;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-Host $host;
        proxy_set_header X-Forwarded-Server $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        index index.html index.htm
    }
  }
}


# 設定の検証を行います。
nginx -t

# 出力結果
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful


# 検証結果が正常であることを確認したら、サービスを再起動します。
systemctl restart nginx

以上で、仮想ロードバランサーの設定は完了です。

注釈

本ガイドでは、NGINXをアプリケーションロードバランサーとして設定を行っています。NGINXをL4ロードバランサーとして用いることも可能です。
仮想マシンへNICを追加します。
仮想マシンを[パワーオフ]します。

仮想マシン名をクリックし、対象仮想マシン画面へ遷移します。
[ハードウェア]->[NIC]をクリックします。
[編集]をクリックし、下表の設定にてNICを追加します。

仮想マシン(t-mgmt-fle01):NIC設定
NIC No ネットワーク ネットワークアダプタ タイプ IPモード IPアドレス プライマリNIC
1 t-dev-front VMXNET3 固定 - 手動 192.168.1.253

仮想マシンが起動したら、上部メニュー[WEBコンソールを起動]をクリックします。
別ウィンドウにて、WEBコンソールが起動します。
下表のOPNsenseログイン情報にてインストーラーへログインし、インストールウィザードを起動します。
以下のコマンドにて仮想マシンのネットワーク設定を行います。

Linux
# 変更前のネットワーク設定を確認します
ip addr show

# 出力結果
# 0: lo: ~
# 1: ens{No}: ~ ← ens{No}が仮想マシンに追加したNICのデバイス名となります。
#


# IP Addressを設定します。
sudo vi /etc/netplan/01-netcfg.yaml

# vi 編集内容
# This file is generated from information provided by the datasource.
## 中略
# network: {config: disabled}
network:
   ethernets:
       ens{xxx}:
           dhcp4: no
           addresses: [172.16.10.20/24]
           gateway4: 172.16.10.250
           nameservers:
             addresses: [172.16.10.1]
           dhcp6: no
       # 追加
       ens{xxx}: # デバイス名は"ip addr show"コマンドにて確認したものとなります。
           dhcp4: no
           addresses: [192.168.1.253/24]
           dhcp6: no
   version: 2


# netplan設定内容を反映します。
netpln apply


# 変更が反映されていることを確認します。
ip addr show

以上で、NGINXの設定が完了です。

6.2. WEB/APサーバー用仮想マシンの作成

仮想マシン(t-mgmt-fe01)へWEB/APサーバー用の設定を行います。

../_images/guide_sys-web_vlb002.png

仮想マシンへNICを追加します。

仮想マシン名をクリックし、対象仮想マシン画面へ遷移します。
[ハードウェア]->[NIC]をクリックします。
[編集]をクリックし、下表の設定にてNICを追加します。

仮想マシン(t-mgmt-fe01):NIC設定
NIC No ネットワーク ネットワークアダプタ タイプ IPモード IPアドレス プライマリNIC
1 t-dev-front VMXNET3 固定 - 手動 192.168.1.1
2 t-dev-back VMXNET3 固定 - 手動 192.168.10.2

仮想マシンが起動したら、上部メニュー[WEBコンソールを起動]をクリックします。
別ウィンドウにて、WEBコンソールが起動します。
"6.2. アプリケーション用仮想マシンの設定変更"に従って、アプリケーション用仮想マシンのホスト名やネットワークの設定を行います。

また、以下のコマンドにて仮想マシンのネットワーク追加設定を行います。

Linux
# 変更前のネットワーク設定を確認します
ip addr show

# 出力結果
# 0: lo: ~
# 1: ens{No}: ~ ← ens{No}が仮想マシンに追加したNICのデバイス名となります。
#


# IP Addressを設定します。
sudo vi /etc/netplan/01-netcfg.yaml

# vi 編集内容
# This file is generated from information provided by the datasource.
## 中略
# network: {config: disabled}
network:
   ethernets:
       ens{xxx}:
           dhcp4: no
           addresses: [172.16.10.21/24]
           gateway4: 172.16.10.250
           nameservers:
             addresses: [172.16.10.1]
           dhcp6: no
       ens{xxx}: # デバイス名は"ip addr show"コマンドにて確認したものとなります。
           dhcp4: no
           addresses: [192.168.1.1/24]
           dhcp6: no
       ens{xxx}: # デバイス名は"ip addr show"コマンドにて確認したものとなります。
           dhcp4: no
           addresses: [192.168.10.2/24]
           dhcp6: no
   version: 2


# netplan設定内容を反映します。
netpln apply


# 変更が反映されていることを確認します。
ip addr show

以上で、WEB/APサーバー用仮想マシンの作成が完了です。
お客様任意のアプリケーションを選択してWEB/APサーバーを作成してください。

6.3. DBサーバーの作成

仮想マシン(t-mgmt-db01)へDBサーバー用の設定を行います。

仮想マシンへNICを追加します。

仮想マシン名をクリックし、対象仮想マシン画面へ遷移します。
[ハードウェア]->[NIC]をクリックします。
[編集]をクリックし、下表の設定にてNICを追加します。

仮想マシン(t-mgmt-db01):NIC設定
NIC No ネットワーク ネットワークアダプタ タイプ IPモード IPアドレス プライマリNIC
1 t-dev-back VMXNET3 固定 - 手動 192.168.10.3

仮想マシンが起動したら、上部メニュー[WEBコンソールを起動]をクリックします。
別ウィンドウにて、WEBコンソールが起動します。
"6.2. アプリケーション用仮想マシンの設定変更"に従って、アプリケーション用仮想マシンのホスト名やネットワークの設定を行います。

また、以下のコマンドにて仮想マシンのネットワーク追加設定を行います。

Linux
# 変更前のネットワーク設定を確認します
ip addr show

# 出力結果
# 0: lo: ~
# 1: ens{No}: ~ ← ens{No}が仮想マシンに追加したNICのデバイス名となります。
#


# IP Addressを設定します。
sudo vi /etc/netplan/01-netcfg.yaml

# vi 編集内容
# This file is generated from information provided by the datasource.
## 中略
# network: {config: disabled}
network:
   ethernets:
       ens{xxx}:
           dhcp4: no
           addresses: [172.16.10.21/24]
           gateway4: 172.16.10.250
           nameservers:
             addresses: [172.16.10.1]
           dhcp6: no
       ens{xxx}: # デバイス名は"ip addr show"コマンドにて確認したものとなります。
           dhcp4: no
           addresses: [192.168.10.3/24]
           dhcp6: no
   version: 2


# netplan設定内容を反映します。
netpln apply


# 変更が反映されていることを確認します。
ip addr show

以上で、DBサーバー用仮想マシンの作成が完了です。
お客様任意のDBソリューションを選択してDBサーバーを作成してください。

7. vAppのテンプレート化

vApp内にて多層アーキテクチャ構造を構築後、流用を行えるようにvAppをテンプレート化(カタログ登録)します。
作成されたvAppのテンプレートは[ライブラリ]->[コンテンツ ライブラリ]->[vAppテンプレート]に格納されます。

../_images/guide_sys-web_tier001.png

注釈

OvDCネットワークは、vAppテンプレートに含めることができません。
vAppテンプレートを作成する前に、vAppからOvDCネットワークを削除します。
OvDCネットワークのDHCPサービスを利用している仮想マシンは、当該NICの情報が消失します。

Topメニューより[データセンター]をクリックします。
vAppテンプレート化するvAppが存在する仮想データセンターカードをクリックします。

[コンピュート]->[vApp]をクリックします。
vAppリストより、テンプレート化するvAppカード"tutorial-dev-ntier"をクリックします。
vAppに配置されたすべての仮想マシンをパワーオフします。

vAppのメニュー内[ネットワーク]をクリックし、OvDCネットワークを削除します。
削除するOvDCネットワークは、以下の通りです。

削除するOvDCネットワーク
OvDCネットワーク名
t-dev-mgmt-172.16.10.0
t-dev-tier-172.16.30.0

上部メニューの[すべてのアクション]をクリックします。
表示されたメニューリストより[テンプレートの作成]をクリックします。
[カタログへの追加:tutorial-dev-ntier]が表示されます。
下表の設定にてカタログへ追加します。

カタログへの追加:tutorial-dev-ntier
カタログ 名前 説明 このテンプレートを使用する場合、以下を指定します
tutorial_catalog dev-ntier-template 同一のコピーを作成

設定後、下部の[OK]をクリックします。

Topメニューより[ライブラリ]をクリックします。
[コンテンツ ライブラリ]->[vAppテンプレート]に作成したvAppが登録されていることを確認します。

以上で、vAppのカタログ化が完了です。