• 検索結果がありません。

Amazon Web Services環境におけるWebOTX Application Server導入ガイド (Windows)

N/A
N/A
Protected

Academic year: 2021

シェア "Amazon Web Services環境におけるWebOTX Application Server導入ガイド (Windows)"

Copied!
23
0
0

読み込み中.... (全文を見る)

全文

(1)

2017 年 4 月

5 版

NEC

Amazon Web Services 環境における

AWS CloudFormation と Chef を用いた

(2)

2

©

Copyright NEC Corporation 2017. All rights reserved.

免責事項

本書の内容は、予告なしに変更されることがあります。

日本電気株式会社は、本書の技術的もしくは編集上の間違い、欠落について、一切責任をおいません。

また、

お客様が期待される効果を得るために、本書に従った導入、使用および使用効果につきましては、

お客様の

責任とさせていただきます。

本書に記載されている内容の著作権は、日本電気株式会社に帰属します。本書の内容の一部または全部を日

本電気株式会社の許諾なしに複製、改変、および翻訳することは禁止されています。

本書で利用するサンプルには Oracle Java Platform, Standard Edition(Java SE)を含みます。Java SE

のご利用に際しては Oracle バイナリ・コード・ライセンス (※)に同意の上ご利用ください。

(※ http://www.oracle.com/technetwork/java/javase/terms/license/index.html)

商標について

WebOTXは日本電気株式会社の登録商標です。

Microsoft、Windows、Internet Explorer

は、米国 Microsoft Corporation の米国およびその他の国にお

ける登録商標または商標です

Windows の正式名称は、Microsoft Windows Operating System です。

Linuxは、Linus Torvaldsの米国およびその他の国における商標または登録商標です。

MySQLは、Oracle Corporation 及びその子会社,関連会社の米国及びその他の国における登録商標です。

JavaおよびすべてのJava関連の商標は、Oracle Corporation 及びその子会社,関連会社の米国及びその他

の国における登録商標です。

PostgreSQLは、PostgreSQLの米国およびその他の国における商標です。

Amazon Web ServicesおよびすべてのAmazon Web Services関連の商標、ならびにその他のAmazon Web

Servicesのグラフィック、ロゴ、ページヘッダー、ボタンアイコン、サービス名は、米国およびその他の国における、

Amazon Web Servicesの商標、登録商標またはトレードドレスです。

(3)

3

目次

1. はじめに ... 4

1.1. 対象読者と目的 ... 4

1.2. 用語一覧 ... 4

1.3. 最新情報の入手先 ... 5

1.4. お問い合わせ方法 ... 5

2. 概要 ... 6

2.1. AWS CloudFormation の概要 ... 6

2.2. Chef の概要... 6

2.3. WebOTX AS 環境構築のための AWS CloudFormation / Chef サンプル ... 7

3. 利用手順 ... 10

3.1. CloudFormation と Chef によるスタック作成手順 ... 10

3.2. 動作確認 ... 12

3.3. EC2 インスタンスへの接続 ... 13

3.4. スタックの削除 ... 14

4. 構成のカスタマイズ ... 14

4.1. カスタマイズしたクックブックの使用 ... 14

4.2. 配備するアプリケーションの変更 ... 18

4.3. WebOTX AS のチューニング ... 20

(4)

4

1.はじめに

1.1.

対象読者と目的

本書では、Amazon Web Services(以下、AWS)上に、WebOTX Application Server Express V9.2 と Amazon RDS for PostgreSQL を利用した人事管理のサンプルシステムを、AWS CloudFormation と Chef を使用して構築する方法を説明 します。また、本書と合わせて提供している AWS CloudFormation テンプレートと Chef のレシピ(以後、レシピ)のサ ンプルのカスタマイズ方法を解説します。本書を理解することで、AWS 上に用途に応じた任意の構成のシステムを構築 する方法を習得することができます。

「3. 利用手順」までの対象読者は、以下に該当する方です。

・EC2 インスタンスの前提知識を有しており、かつ以下の権限が与えられている IAM ユーザ ・AWS Management Console にログインする権限が与えられている

・EC2 インスタンスを生成する権限が与えられている 「4. 構成のカスタマイズ」以降の対象読者は以下に該当し、システム構成やパラメータ、アプリケーションを変更し、 任意の構成のシステムを構築する方法を習得する必要がある方です。 ・JSON、Ruby の記述方法を習得している、もしくはマニュアルなどを参照して理解することができる ・スタックに追加するAWS サービスの基本的な知識を有している、もしくはマニュアルなどを参照して理解すること ができる ・アプリケーションサーバやOSS に関する基本的な知識を有している、もしくはマニュアルなどを参照して理解する ことができる ・WebOTX AS の運用管理コマンドを使うことができる、もしくはマニュアルなどを参照して理解することができる

1.2. 用語一覧

1.2.1. AWS の用語一覧

詳細はAWS の Web サイト (http://aws.amazon.com/jp/documentation/) を参照してください。

用語 説明

AWS Management Console ウェブベースのユーザインターフェイスで、AWS にアクセスして管理するコンソールです。

Amazon EC2 Amazon が提供する計算資源を用いてアプリケーションを実行する商用ウェブサービスです。

EC2 インスタンス OS がセットアップされた AWS 上の仮想サーバです。

AMI

Amazon Machine Image の略で、ソフトウェア構成(OS、アプリケーションサーバ、ア プリケーションなど)を記録したテンプレートです。

AMI から AMI のコピーである EC2 インスタンスを起動します。

キーペア Amazon EC2 はパブリックキー暗号を使用して、ログイン情報の暗号化と復号化を行い ます。パブリックキー暗号は、パブリックキーを使用してパスワードなどのデータを暗号 化し、受信者はプライベートキーを使用してデータを復号化します。パブリックキーとプ ライベートキーは、キーペアと呼ばれます。 EC2 インスタンスにログインするには、キーペアを作成し、EC2 インスタンスを起動す るときにキーペアの名前を指定して、EC2 インスタンスに接続するときにプライベート キーを指定する必要があります。 AWS RDS AWS でのリレーショナルデータベースのセットアップ、運用、およびスケーリングを容易に行えるようにするサービスです。 RDS インスタンス リレーショナルデータベースがセットアップされたAWS 上の仮想サーバです。 AWS S3 AWS で提供されているストレージサービスです。 Amazon VPC AWS が提供する仮想ネットワークサービスです。 独自のVPC を定義して、各環境を分離したネットワーク上に配置することが出来ます。 バケット S3 に格納されるオブジェクト(ファイル)のコンテナです。すべてのオブジェクトはバケット内に格納されます。 セキュリティグループ AWS 上の EC2 インスタンス、RDS インスタンスのアクセスを制御するファイアウォー ルです。

(5)

5

1.2.2. WebOTX

Application Server

の用語一覧

用語 説明

ドメイン

WebOTX Application Server の基本的な構成単位をドメインと呼びます。ドメインは WebOTX Application Server で管理するリソースやサービス群を論理的にグルーピング しています。 ドメインは独立して運用され、コンフィグレーション情報など構成情報は ドメイン単位で独立したディレクトリに管理されます。

その他の用語についてはWebOTX マニュアル(http://jpn.nec.com/webotx/download/manual/92/index.html)の用語集 (http://jpn.nec.com/webotx/download/manual/92/glossary/index.html)を参照してください。

1.2.3. AWS CloudFormation の用語一覧

詳細は、AWS CloudFormation の Web サイト(http://aws.amazon.com/jp/cloudformation/)を参照してください。

用語 説明

スタック

AWS サービスの集合のことをスタックといいます。AWS CloudFormation ではスタック

単位でAWS サービスの集合を管理します。例えば、スタックの破棄を実行すると、スタ

ックに紐づくすべてのリソースが破棄されます。

テンプレート スタックの構成をJSON 形式で記述したものです。AWS CloudFormation ではテンプレ

ートの内容を元にスタックを構築します。 1.2.4. Chef の用語一覧

詳細はChef の Web サイト(https://docs.chef.io/)を参照してください。

用語 説明 クックブック Chef によるサーバインフラストラクチャの情報をまとめた単位です。クックブックは必 ず目的を持ち(例えばMySQL をインストールして利用可能な状態にするなど)、その目 的を達成するために必要なレシピや属性ファイルなどを持ちます。 レシピ クックブックを構成する要素の1 つで、開発やテストで構築するサーバのインフラストラ クチャのあるべき姿を定義した仕様書です。Chef はレシピの定義に従ってインフラスト ラクチャの構築を行います。レシピの定義はRuby の文法で記述します。

1.3. 最新情報の入手先

最新の製品情報については、以下のWeb サイトを参照ください。 http://jpn.nec.com/webotx/

1.4.

お問い合わせ方法

本ガイド記載事項における各種問い合わせにつきましては、以下のメールアドレスへ電子メールでお問い合わせくださ い。 [email protected]

(6)

6

2.概要

2.1. AWS CloudFormation の概要

2.1.1. AWS CloudFormation とは

AWS CloudFormation(以下、CloudFormation)とは、AWS サービスを組み合わせたスタックの構成を JSON 形式で

記述して、その構成の作成・管理を容易にするAWS のサービスです。 ユーザは独自のテンプレートを作成して自由なスタック構築を行うことが可能です。あるいは、CloudFormation で既 に用意されているサンプルテンプレートを利用してスタック構築を行うことも可能です。 CloudFormation は追加料金なし(2016 年 3 月時点)で利用でき、テンプレートに従って構築された各 AWS サービスに 対しての課金のみが発生します。 CloudFormation の主な特長は以下です。  容易な環境構築が可能 テンプレートを作成しておけば、短時間でスタックを構築できます。起動時にパラメータを渡すことができる ので、さまざまな設定値によるスタックを単一のテンプレートで行うことが可能です。また反対に、パラメー タを変更しなければ、同様のスタックを繰り返し構築することができます。  一般的な形式によるテンプレート記述が可能 CloudFormation テンプレートは JSON 形式のテキストファイルです。  リソースの調査が可能 CloudFormation にテンプレートのコピーが保持されるので、スタック作成時に適用した正確なリソース設定 を必要に応じて見返すことができます。

2.2. Chef の概要

2.2.1. Chef とは

本ドキュメントでは構成管理ツール「Chef」を用いて WebOTX AS の設定を行う方法を紹介します。Chef は AWS イ

ンスタンス起動時に自動で実行されますので、試しに環境設定済みのWebOTX AS を AWS インスタンス上で操作してみ

たい方はChef の存在を意識する必要はありません。しかし、Chef を使って WebOTX AS の設定変更を行いたい場合は

本章の内容を理解しておく必要があります。本章はChef を使用したことがないという方を対象に、Chef とは何か、何が 出来るのか、どのような用途で使用するのかを説明します。 Chef はサーバインフラストラクチャを自動で構築してくれるソフトウェアです。ここでいう環境にハードウェアは含 まれません。あくまでソフトウェアやファイル、ネットワーク設定などのOS 上の環境構築を行います。 Chef ではサーバインフラストラクチャの構築に環境情報を記述したコードを用います。インフラストラクチャのある べき状態をコードで定義しておけば、そのコードが表す状態のサーバ設定をChef コマンドひとつで作成することができ

ます。例えば、Chef を使って nginx のような Web サーバと PostgreSQL のような RDBMS がインストールされて、そ

こにWeb ページが配備された環境を作ることができます。また、よりプライベートな使い道として、よく使用するアプ

リケーションを定義しておき、PC をリプレースする際にそれらを一括でインストールすることもできます。これにより、

(7)

7

2.2.2. Chef ソフトウェア体系

Chef は Chef 社(旧名 Opscode 社)が開発し 2009 年に初めて発表しました。その後、Chef の開発は継続的に進めら れ、2016 年 3 月現在、Chef 社は Chef の名を冠した製品を複数リリースしています。それぞれどのような製品なのかを 簡単に紹介します。 ソフトウェア 説明 Chef Client 最も基本的なChef 製品です。クックブックを実行してローカルマシンに開発やテストで 作成するサーバのインフラストラクチャを構築します。 その名の通りクライアントとして動作し、Chef Client をインストールした複数のマシン

を1 台の Chef Server インストールマシンから管理することができます。また、Chef

Server と連携せずに単体で使用することもできます。 Chef Server Chef Client をインストールしたマシンを管理するソフトウェアです。マシンを複数台使 用するシステムにおけるサーバの構築に使用します。Chef Server を使用する場合には、 Chef Server をインストールする専用サーバマシンが必要になります。そのためマシン台 数が十台を超える大規模なシステム開発で使用されることが多いです。

Chef Development Kit Chef のクックブック作成に有用な開発者用のツールをまとめたパッケージです。

これらのソフトウェアは2016 年 3 月現在、以下のページから入手が可能です。

http://downloads.getchef.com/

なお、本ドキュメントではChef Client のみを使用します。

2.3.

WebOTX AS 環境構築のための AWS CloudFormation / Chef サンプル

2.3.1. AWS CloudFormation / Chef サンプル提供の背景

近年、クラウドコンピューティングサービスとして、AWS が急速な普及を進めています。また、Chef も近年の開発プ ロセスの変化に伴い、開発者の間で急速な広まりを見せています。

開発プロセスの一例としてアジャイル型開発技法を挙げると、アジャイル型開発技法では計画・設計・実装・テストを 細かく分割して繰り返し実行するのですが、テストを行うための環境を構築する作業を繰り返し行う必要があり、これが 開発の負担になってしまいます。

この問題をAWS CloudFormation と Chef を活用することで、解決することができます。CloudFormation を用いる

ことで、テンプレートからAWS のスタックを短時間で作成することができ、これに加えて Chef を用いることで OS 上

のテスト環境を短時間で作成することができます。しかもソフトウェアによる環境構築なので、手作業での環境構築と比 較しヒューマンエラーを軽減することができます。

このように、開発プロセスの変化に伴いCloudFormation や Chef の重要性が増してきています。開発プロセスの変化

に柔軟に対応するため、CloudFormation と Chef を用いて AWS 上に WebOTX AS の環境を構築するためのサンプルを 提供します。

(8)

8

2.3.2. WebOTX AS 環境構築サンプル構成

提供するCloudFormation テンプレートからのスタック作成動作について簡単に説明します。

[A] CloudFormation の実行を開始

スタック作成ユーザが、AWS Management Console の CloudFormation メニューから、CloudFormation テ ンプレートを用いてスタック作成を開始します。

[B] CloudFormation が以下の処理を行うことでスタックを作成 [B-1] EC2 インスタンス作成・起動

CloudFormation テンプレートで指定されている AMI から EC2 インスタンス(図中 EC2 Instance)の作成と

起動を行います。このAMI は WebOTX AS インストール済みの公開 AMI です。したがって、作成される EC2

インスタンスにはすでにWebOTX AS がインストールされています。 公開AMI についての詳細は次の Web ページの「クラウド上の評価環境のご案内」を参照してください。 http://jpn.nec.com/webotx/download/trial/index.html [B-2] RDS インスタンス作成・起動 PostgreSQL がセットアップされた RDS インスタンス(図中 PostgreSQL)の作成と起動を行います。 [B-3] セキュリティグループ設定 EC2 インスタンス、RDS インスタンスへのアクセスを制御するファイアウォールであるセキュリティグル ープは、EC2 インスタンスには EC2SecurityGroup、RDS インスタンスには RDSSecurityGroup と、それぞ

れ異なるものが設定されます。また、アプリケーションはEC2 インスタンス上で動作するため、アプリケーシ

ョン利用ユーザはEC2 インスタンスへのアクセスは許可されていますが、RDS インスタンスへの直接のアク

(9)

9

[B-4] クックブックのダウンロードと Chef-Solo 実行

Chef のクックブックをダウンロードして、Chef-Solo コマンドを 1)で作成した EC2 インスタンス上で実行 します。Chef-Solo コマンドはクックブックをクライアント上で実行する Chef Client のコマンドです。 Chef-Solo 実行により、クックブックに定義されている下記の手順 C)の処理が実行されます。 [C] Chef がアプリケーション動作環境の設定・構築 [C-1] サンプルアプリケーションのダウンロードと配備 [C-2] RDS に対して、サンプルアプリケーション用のテーブル作成とデータ挿入 作成されるスタックの構成を以下に示します。 スタック情報 EC2 インスタンス (図中EC2 Instance)

WebOTX Application Server V9.2 Express がインストールされています。

Chef Client がインストールされており、chef-solo の実行により、WebOTX AS の設定と

サンプルアプリケーションFindEmployeeWeb の配備が実施された状態です。 EC2SecurityGroup が設定されています。 RDS インスタンス (図中PostgreSQL) PostgreSQL 9.4.7 のデータベースがセットアップされており、サンプルアプリケーショ ンFindEmployeeWeb で使用するテーブルが作成され、必要なデータが挿入されていま す。 RDSSecurityGroup が設定されています。 EC2SecurityGroup 80 番ポート(HTTP)へのアクセスのみを許可しています。 RDSSecurityGroup EC2SecurityGroup が設定されているインスタンスからの 5432 番ポートへのアクセスのみを許可しています。 補足 EC2 に設定されている EC2SecurityGroup が 80 番ポート以外のアクセスを許可していな いので、EC2 インスタンスに SSH 接続する場合は、「3.3 EC2 インスタンスへの接続」 を参照してください。 本スタックに含まれるEC2 インスタンスには EC2SecurityGroup が、RDS インスタンス にはRDSSecurityGroup が設定されているので、EC2 インスタンスから RDS インスタ ンスの5432 番ポートへのアクセスが可能です。同様に、利用者が作成したインスタンス (AWS 上の仮想サーバ)に対して RDSSecurityGroup を設定すると、作成したインスタ ンスからRDS の 5432 番ポートへのアクセスが許可されるのでご注意ください。

(10)

10

3.利用手順

3.1. CloudFormation と Chef によるスタック作成手順

3.1.1.スタック作成前の作業

下記の手順は、AWS Management Console で EC2 サービスのメニューから実施してください。 1. キーペア(※)の作成

1) EC2 サービスメニュー左側のナビゲーションペインで [Key Pairs] をクリックします。 2) [Create Key Pair] をクリックします。

3) [Create Key Pair] ダイアログボックスの [Key pair name] フィールドに、新しいキーペアの名前を例とし て「WebOTX-Key」と入力し、[Create] をクリックします。 4) プライベートキーファイル(WebOTX-Key.pem)のダウンロードが始まります。このファイルはインスタンス のログイン認証の際に必要なファイルです。外部に漏洩することの無い安全な場所に保存してください。 (※) 「1.2.1 AWS の用語一覧」参照 2. CloudFormation テンプレートのダウンロード 以下のURL から、CloudFormation テンプレートをダウンロードします。 http://jpn.nec.com/webotx/download/aws/Linux_WebOTX_AS_Exp_On_EC2_And_RDS.template なお、クックブックはCloudFormation によるスタック作成時に自動的にダウンロードされますので、利用者 によるダウンロードは不要です。 3.1.2. スタック作成 1. スタック作成

1) AWS Management Console で CloudFormation のメニューを選択します。

(11)

11

2. テンプレートの選択 (Select Template)

以下の操作を行った上で、右下の「Next」をクリックして次の画面に進みます。

・Stack の Name に「WebOTX-Stack」と入力します。 (これがスタックの名前になります。この名前が CloudFormation メニューのスタック一覧の「Stack Name」に表示されます。)

・Template の Source で「Upload a template to Amazon S3」を選択し、「ファイルを選択」を押し、スタ

ック作成前の作業として3.1.1.であらかじめダウンロードしておいた CloudFormation テンプレートを指定し ます。 3. パラメータの指定 (Specify Parameters) 以下のそれぞれのパラメータに値を入力して「Next」をクリックして次の画面に進みます。 項目名 入力する値 項目の説明 DBName sampleDB RDS インスタンスにセットアップするデータベースの名 前です。 DBPassword samplePassword DB インスタンスの管理パスワードです。 DBUser sampleUser DB インスタンスの管理ユーザ名です。 EC2SecurityGroupInboundSource 0.0.0.0/0 EC2 インスタンスに設定するセキュリティグループの 80 番ポートへのアクセスを許可するIP アドレスです。規定 値の0.0.0.0/0 を設定すると、80 番ポートへのアクセスに 関して、接続元のIP アドレスによる制限を行いません。

InstanceType t2.micro EC2 インスタンスのインスタンスタイプです。

KeyName WebOTX-Key EC2 インスタンス用キーペアの名前です。

RDSInstanceType db.t2.micro RDS インスタンスのインスタンスタイプです。 4. オプション (Options) 何も入力せずに「Next」をクリックして次の画面に進みます。 5. 確認およびスタック作成 (Review) 「Create」をクリックして、スタックの作成を開始します。スタックの作成には時間がかかることがあります。 CloudFormation メニューのスタック一覧で、「Status」が「CREATE_COMPLETE」と表示されれば、ス タックの作成は完了です。

(12)

12

3.2. 動作確認

提供するCloudFormation テンプレート、クックブックから作成されるスタックに含まれる EC2 インスタンスには、 あらかじめサンプルアプリケーションFindEmployeeWeb が配備されており、以下の手順で動作を確認できます。 3.2.1. サンプルアプリケーションの URL 確認 提供するCloudFormation テンプレートは、サンプルアプリケーションの URL を保持するように定義されています。 以下の手順でURL を確認します。 1.CloudFormation メニューのスタック一覧からスタック名が「WebOTX-Stack」のスタックを選択します。 2.「Output」タブを選択します。Key:「WebsiteURL」に対応する値を確認します。 3.2.2.動作確認 ブラウザを開き、アドレスバーに3.2.1 で確認した URL を入力します。 [人事管理システム]画面が表示されます。 例として、各項目に以下の値を設定し、「検索」を押します。  検索キー : 開発部  検索条件 : 部署(完全一致) EC2 インスタンスの Public DNS の値はインスタンスを停止するたびに変更されます。3.2.1 の手順で確認できる URL は EC2 インスタンスの Public DNS を含むので、インスタンスの再起動を行った場合は上記の手順では正しい URL を確認できません。スタック作成後にインスタンスの再起動を行った場合や 3.2.2 でページの表示に失敗する 場合は、EC2 メニューで対象の EC2 インスタンスを選択して表示される Public DNS を確認して、http://<Public DNS>/FindEmployeeWeb を URL としてください。

設定によりEC2 インスタンスに静的な DNS を割り当てて、停止しても Public DNS を変更しないようにすること

も可能です。詳細は下記をご参照ください。

http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/elastic-ip-addresses-eip.html

(13)

13

以下のように表示されることを確認してください。 以上で動作確認は終了です。サンプルアプリケーションがうまく動作しない場合は、WebOTX マニュアル (http://jpn.nec.com/webotx/download/manual/92/index.html)のスタートアップガイド (http://jpn.nec.com/webotx/download/manual/92/startup/1_exp.html)の [1.7.3. 動作しない場合の確認項目] を参照し てください。

3.3. EC2 インスタンスへの接続

以下では、EC2 インスタンスに ssh 接続する方法を説明します。WebOTX AS の設定変更などのために EC2 インスタ

ンスに接続する必要がある場合に参照してください。 1.セキュリティグループの設定 提供しているCloudFormation テンプレートで作成される EC2 インスタンスには、80 番ポート以外へのアク セスをブロックするセキュリティグループが設定されています。したがって、EC2 インスタンスへの接続を行 うために、22 番ポートへのアクセスを許可する設定を追加する必要があります。 以下の手順で、セキュリティグループの設定を変更します。

1) EC2 メニューのナビゲーションペインから「Security Groups」を選択し、セキュリティグループの一覧を 表示させます。

2) 検索ボックスに「WebOTX-Stack-EC2SecurityGroup」と入力して検索を行い、EC2 インスタンスに設定さ れているセキュリティグループを表示させます。

3) 表示されたセキュリティグループの「Inbound」に、22 番ポートへのアクセスを許可する設定を追加します。 2.ssh 接続で EC2 インスタンスへ接続します。以下のコマンドを実行して、EC2 インスタンスの ec2-user ユー

ザにログインします。 chmod 400 WebOTX-Key.pem

(14)

14

3.4.スタックの削除

以下では、作成したスタックを削除する手順を説明します。 1.スタックの削除

1) CloudFormation メニューのスタック一覧で削除するスタックを選択して「Delete Stack」を押します。 2) 「Delete Stack」というウィンドウが表示されますので、「Yes, Delete」を押します。

3) スタックの削除が開始されます。スタック一覧から対象のスタックが消えればスタックの削除は完了です。 スタックの削除には時間がかかることがあります。

4.構成のカスタマイズ

4.1.

カスタマイズしたクックブックの使用

カスタマイズしたクックブックを使用してEC2 インスタンス上の WebOTX AS の構成を変更する手順を説明します。 具体的なクックブックのカスタマイズ方法は4.2 節、4.3 節をご参照ください。 4.1.1. クックブックや配備アプリケーションのアップロード

3 章の利用手順では、NEC の Web サイト上に公開されているクックブックやウェブアプリケーションを AWS CloudFormation や Chef から HTTP ダウンロードして利用しています。ただし、利用者が独自にクックブックをカスタ マイズして配備するアプリケーションの変更やWebOTX AS の設定変更を行いたい場合、クックブックやウェブアプリ ケーションを独自にダウンロード可能な状態にしておき、CloudFormation や Chef でそれらをダウンロードする定義を 行う必要があります。 本節ではカスタマイズしたクックブックや配備アプリケーションをダウンロード可能な状態にする一例として、あらか じめEC2 インスタンス(本節では、カスタマイズファイル用インスタンス)を別途作成して、Web サーバとして利用す る手順を説明します。 1.セキュリティグループの作成 提供するサンプルで作成するEC2 インスタンスは、デフォルト VPC のサブネットワーク上に作成されます。 このサンプルによって作成するEC2 インスタンスから HTTP 経由での接続を可能にするため、カスタマイズフ ァイル用インスタンスにユーザのデフォルトVPC からの HTTP アクセスのみを許可するセキュリティグルー プを設定します。 1) VPC メニューを選択します。

(15)

15

2) 左ペインの「Your VPCs」を選択して VPC 一覧を表示させ、「Default VPC」が「Yes」である VPC の「VPC

ID」と「VPC CIDR」の値をメモします。

3) EC2 メニューの左ペインから「Security Groups」を選択し、「Create Security Group」を押してセキュリ ティグループを作成します。

4) 「VPC」で、2)で調べた VPC ID を選択します。

5) 「Inbound」タブを選択して「Add Rule」を押して、下記 2 件のルールを追加します。「Create」を押して セキュリティグループを作成します。

 カスタマイズファイル用インスタンスにssh 接続する端末から 22 番ポートへのアクセスを許可するルール

 「Port Range」 に 80 番を、「Source」に 2)で調べた VPC CIDR の値を設定したルール

2.カスタマイズファイル用インスタンス作成

ここでは、公開済みのAMI を利用して、下記の手順でカスタマイズファイル用インスタンスの作成を行います。

1) EC2 サービスメニュー左側のナビゲーションペインで [AMIs] を選択し、AMI の一覧を表示させます。 2) Filter の「Owned by me」 を 「Public images」 に変更します。Public images に変更すると、すべての AWS アカウントに公開されている AMI が表示されます。

3) 検索ボックスに「ami-f3bb9a94」を入力して検索を行います。表示される AMI を選択して「Launch」ボタ ンを押します。

4) 作成するインスタンスの設定は基本的に規定値を選択します。ただし以下の 3 点については設定を行います。

 「Step 5: Tag Instance」で、Key 名「Name」に対応する Value の値を「Upload-Instance」とします

 「Step 6: Configure Security Group」で、手順 1 で作成したセキュリティグループを選択します。

 「Select a key pair」で、あらかじめ作成しておいた「WebOTX-Key」を選択します。

3.ファイルのアップロード 手元のファイルをカスタマイズファイル用インスタンスの /opt/WebOTX/domains/domain1/docroot 配下にア ップロードする手順を示します。 1) カスタマイズファイル用インスタンスにファイルをアップロードします。ファイル転送はカスタマイズファ イル用インスタンスのec2-user ユーザが行いますので、まずは ec2-user ユーザがファイルを追加することがで きるec2-user のホームディレクトリ(/home/ec2-user)にファイルをアップロードします。 【作業環境(ローカルマシン)がLinux の場合】 以下のコマンドを実行して、ファイルをカスタマイズファイル用インスタンスの/home/ec2-user にファイル を転送します。

scp –i WebOTX-Key.pem <ファイル名> <カスタマイズファイル用インスタンスの Public DNS>:~ EC2 インスタンス作成方法の詳細は

「Amazon Web Services 環 境 に お け る WebOTX Application Server 導 入 ガ イ ド (Linux) 」 (http://jpn.nec.com/webotx/download/info/webotx-as-getting-started-guide-on-aws-linux.pdf) の 2 章を参照し てください。

(16)

16

【作業環境(ローカルマシン)がWindows の場合】

ファイル転送ツールを用いて、ファイルをカスタマイズファイル用インスタンスの/home/ec2-user にファイ ルを転送します。

Windows の場合、AWS のドキュメントに、一例として WinSCP というツール を使用した Linux インスタ ンスへのファイルの転送手順が記載されています

(http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/putty.html) 。詳細は本 URL の「WinSCP を 使用した Linux インスタンスへのファイルの転送」を参照してください。

2) カスタマイズファイル用インスタンスに SSH で接続します。接続手順については 3.3 を参照してください。 3) 手順 1)で/home/ec2-user にアップロードしたファイルを同じカスタマイズファイル用インスタンスの /opt/WebOTX/domains/domain1/docroot に移動し、以下のコマンドを実行します。

/opt/WebOTX/domains/domain1/docroot へのファイルの追加は root 権限が必要なため、sudo コマンドを使っ て行います。

sudo mv <コマンドオプション> /home/ec2-user/<ファイル名> /opt/WebOTX/domains/domain1/docroot

4.アップロードされたかどうかの確認 1) 以下の手順でファイルのダウンロードが開始されることを確認します。 【作業環境(ローカルマシン)がLinux の場合】 以下のコマンドを実行します。 curl –L http://<カスタマイズファイル用インスタンスの Public DNS>/<アップロードしたファイル名> 【作業環境(ローカルマシン)がWindows の場合】 ブラウザのアドレスバーに以下を入力します。 「http://<カスタマイズファイル用インスタンスの Public DNS>/<アップロードしたファイル名>」

(17)

17

4.1.2. CloudFormation テンプレートの修正 スタックにアップロードしたクックブックの内容を反映するには、スタック作成時に使用するCloudFormation テンプ レートを修正する必要があります。本節では、CloudFormation テンプレートの修正方法を説明します。修正した CloudFormation テンプレートを利用してスタックを作成する手順は3 章を参照してください。 1. CloudFormation テンプレートのダウンロード 以下のURL から、CloudFormation テンプレートをダウンロードします。 http://jpn.nec.com/webotx/download/aws/Linux_WebOTX_AS_Exp_On_EC2_And_RDS.template 2. CloudFormation テンプレートの修正 ダウンロードしたCloudFormation テンプレートには、スタック作成時にクックブックをインターネット上か らダウンロードするスクリプトが組まれています。スクリプトが記載されている [Resources] ->

[WebAPServer] -> [Properties] -> [UserData] 要素を探し、スクリプト内のクックブックダウンロード URL を、自身でアップロードしたものに変更してください。

Linux 版テンプレートと Windows 版テンプレートのそれぞれについて、ダウンロード URL を http://example.com/cookbooks.zip に変更した場合の CloudFormation テンプレート以下に示します。 Linux_WebOTX_AS_Exp_On_EC2_And_RDS.template 90 91 92 93 94 95 96 97 98 99

"UserData" : { "Fn::Base64" : { "Fn::Join" : ["", [

"#!/bin/bash -x¥n",

"cd /root¥n",

"mkdir -p cfn_work¥n",

"cd cfn_work¥n",

"exec > >(tee /root/cfn_work/cfn_userdata.log) 2>&1¥n",

"date¥n",

"curl -L https://www.opscode.com/chef/install.sh | bash¥n",

"curl -L http://example.com/cookbooks.zip > cookbooks.zip¥n",

(18)

18

4.2. 配備するアプリケーションの変更

3 章の手順により作成した EC2 インスタンスには Web アプリケーションのサンプルである「FindEmployeeWeb」が 配備されています。本節では、配備アプリケーションを任意のアプリケーションに変更する方法を説明します。 以下の3 点から、CloudFormation テンプレートファイルを編集することで配備するアプリケーションを変更すること ができます。  アプリケーションを配備する処理は webotx-samples クックブックの recipes/default.rb に記載されています が、配備するアプリケーションの設定情報は全てattributes で定義されています  attributes の値は roles/webotx-as-sample-windows.json ファイルの定義で上書きできます  のカスタマイズ手順で使用するCloudFormation テンプレート(4.1.2 節参照)では、Chef レシピに RDS インス タンスへの接続情報を渡すために、roles/webotx-as-sample-linux.json ファイルを作成します 配備するアプリケーションを変更するCloudFormation テンプレートの編集後の例は以下のとおりです。 Linux_WebOTX_AS_Exp_On_EC2_And_RDS.template 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128

"cat <<EOF > roles/webotx-as-sample-linux.json¥n",

"{¥n",

" ¥"name¥": ¥"webotx-as-sample-linux¥",¥n",

" ¥"default_attributes¥": { },¥n",

" ¥"override_attributes¥": {¥n",

" ¥"db¥" : {¥n",

" ¥"user¥":¥"", { "Ref" : "DBUser" }, "¥", ¥n",

" ¥"password¥":¥"", { "Ref" : "DBPassword" }, "¥", ¥n",

" ¥"url¥":¥"jdbc:postgresql://", { "Fn::GetAtt" : [ "DBInstance", "Endpoint.Address"

]}, ":" , { "Fn::GetAtt" : [ "DBInstance", "Endpoint.Port" ]}, "/", { "Ref" : "DBName" }, "¥" ¥n",

" },¥n",

" ¥"apps¥" : {¥n",

" ¥"list¥": [¥"app1¥", ¥"app2¥"]¥n",

" },¥n", " ¥"app1¥" : {¥n", " ¥"url¥":¥"http://jpn.nec.com/webotx/download/manual/92/dev_devstudio_javaee/2.5.1 0_webdk_sample/FileUploadSample.war¥"¥n", " },¥n", " ¥"app2¥" : {¥n", " ¥"url¥":¥"http://jpn.nec.com/webotx/download/manual/92/dev_devstudio_javaee/2.5.6 _webdk_sample/jta-sample.war¥"¥n", " }¥n", " },¥n", " ¥"json_class¥": ¥"Chef::Role¥",¥n",

" ¥"description¥": ¥"This is just a sample role.¥",¥n",

" ¥"chef_type¥": ¥"role¥",¥n", " ¥"run_list¥": [¥n", " ¥"recipe[webotx-sample::linux]¥" ¥n", " ]¥n", "}¥n", "EOF¥n",

(19)

19

このCloudFormation テンプレートでは、EC2 インスタンスの初回起動時に roles/webotx-as-sample-linux.json を生

成しています。CloudFormation テンプレートが生成する webotx-as-sample-linux.json は以下のようになります。 roles/webotx-as-sample-linux.json { "name": "webotx-as-sample-linux", "default_attributes": { }, "override_attributes": { "db" : { "user": (スタック作成時に入力するDBUserの値) , "password": (スタック作成時に入力するDBPasswordの値) , "url": (RDSへの接続URL) }, "apps" : {

"list": ["app1", "app2"]

}, "app1" : { "url":"http://jpn.nec.com/webotx/download/manual/92/dev_devstudio_javaee/2.5.10_webdk_sample/FileUploadSample.war" }, "app2" : { "url":"http://jpn.nec.com/webotx/download/manual/92/dev_devstudio_javaee/2.5.6_webdk_sample/jta-sample.war" } }, "json_class": "Chef::Role",

"description": "This is just a sample role.",

"chef_type": "role", "run_list": [ "recipe[webotx-sample::linux]" ] } 配備するアプリケーションの設定は、override_attributes->apps->list と override_attribute->app1,

override_attributes->app2 に記述します。app1、app2 の要素名は override_attributes->apps->list に定義した属性の値 と一致しており、任意の名前を設定可能です。各属性の詳細を以下の表に示します。 要素名 説明 override_attributes ->apps ->list 配備するアプリケーションの一覧を定義する属性です。 override_attributes ->* 配備するアプリケーションに関する情報を定義する属性です。具体的な情報(配備するア プリケーションの取得元のURL)はこの属性の子要素に定義します。この属性の名前は override_attributes->apps->list で定義した要素に一致させる必要があります。 override_attributes ->* ->url 配備するアプリケーションの取得元のURL です。 従って、上記の記入例の場合はWebOTX のマニュアルサイトから 2 つのサンプルアプリケーション FileUploadSample.war と jta-sample.war をダウンロードして、ドメインに配備します。

(20)

20

4.3. WebOTX AS のチューニング

本章ではクックブックのカスタマイズによる、WebOTX AS のチューニング方法を説明します。 4.3.1. otxadmin set サブコマンドによるチューニング

WebOTX AS では自身の設定情報を変更して、チューニングを行うための機能として、otxadmin set コマンドが用意

されています。例えばotxadmin set コマンドを使用してドメインの最大ヒープメモリサイズを 768M バイトに変更する

場合、次のように実行します。

otxadmin set -u admin -w adminadmin server.java-config.max-heap-size=768m ※ 最大ヒープメモリサイズの設定反映には、ドメインの再起動が必要です。

-u はドメインの管理ユーザ名を指定するオプション、-w は管理ユーザのパスワードを指定するオプション、-u と-w は set コマンドを行う際の必須オプションです。また、server.java-config.max-heap-size はドメインのヒープサイズを指定

するMO 属性です。属性名の調査方法は 4.3.2 節を参照してください。

otxadmin set コマンドの操作も、Chef の execute リソースを使用してレシピに定義することができます。以下にレシ ピの記入例を示します。

cookbooks/webotx-sample/recipes/linux.rb execute "set-max-heap-size" do

action :run command <<-EOH

#{node['webotx']['otxadmin']} set -u admin -w adminadmin server.java-config.max-heap-size=768m EOH

end

上記のレシピの #{node['webotx']['otxadmin']} は、otxadmin コマンドの実行パスを示す変数です。attributes として

下記のように定義されており、Windows OS では otxadmin に、それ以外の OS では /opt/WebOTX/bin/otxadmin に置

換されます。

cookbooks/webotx-sample/attributes/default.rb

case node["platform"] when "windows"

default['webotx']['installdir'] = "#{ENV['SYSTEMDRIVE']}¥¥WebOTX"

default['webotx']['otxadmin'] = "otxadmin" else

default['webotx']['installdir'] = "/opt/WebOTX"

default['webotx']['otxadmin'] = "#{default['webotx']['installdir']}/bin/otxadmin" end

otxadmin set コマンドで行う設定の一部には、設定を反映するためにドメインの再起動を必要とするものがあります。 そのため、レシピでチューニングを行う際には、otxadmin set コマンド実行後にドメインの再起動を行うように定義し

てください。なお、本サンプルで提供するレシピでは、レシピの末尾で必ずドメインを再起動するexecute リソースを記

述していますので、そのexecute リソースより手前の位置に otxadmin set コマンドを実行する execute リソースするこ

(21)

21

4.3.2. MO 属性名の調査方法

otxadmin set コマンドを使用してレシピから WebOTX AS のチューニングを行う場合、チューニング対象となる MO

属性名を明らかにする必要があります。本節ではWebOTX 統合運用管理コンソールから任意の設定属性の MO 属性名を

調べる方法を説明します。 1.設定項目の調査

ローカルマシンのWeb ブラウザから「http://<EC2 インスタンスの Public DNS>:5858/manager」にアクセス

し、WebOTX 統合運用管理コンソール上で設定を変更したい項目を調査します。5858 ポートで接続するので、

接続の前にセキュリティグループやOS のファイアウォール設定で 5858 ポートへの接続を許可して下さい。セ

キュリティグループの設定変更方法は3.3 節の手順 1 を参照してください。

今回は例として ドメイン名(既定値は domain1)>>アプリケーションサーバ>>WebServer の”最大同時接続 数 [1-4096]” をチューニングの対象とします。

本節で紹介した「execute」リソースと「service」リソースについての詳細は Chef の Web ドキュメントを参照下さ い。 - execute リソース https://docs.chef.io/resource_execute.html - service リソース https://docs.chef.io/resource_service.html

Note

本節で紹介した「otxadmin」コマンドについての詳細は WebOTX のマニュアルを参照下さい。 http://jpn.nec.com/webotx/download/manual/92/index.html - Application Server - リファレンス集 運用管理・設定編 - 4. 運用管理コマンドリファレンス

Note

(22)

22

2.MO の DottedName の調査

チューニングしたい属性が決まったらWebOTX マニュアルで属性の MO 名を調べます。

「http://jpn.nec.com/webotx/download/manual/92/」にアクセスしマニュアルを開き、「Application Server」 >「リファレンス集 運用管理・設定編」>「2. MO 定義リファレンス」>「2.3. 統合運用管理ツールの表示か ら検索」を開きます。

WebOTX 統合運用管理コンソール上の表示に対応して MO の DottedName の一覧が表示されますので、設定

したい項目に対応するDottedName を調べます。

(23)

23

3.MO の属性名の調査 調査対象の設定項目のDottedName が判明したら、MO の属性名を調べます。マニュアルページで設定したい 項目に対応するType 名を選択します。項目で設定可能な MO 属性の一覧が表示されますので、設定対象の属 性をページ内から探し、その属性名を調べます。 MO 属性名は、以上の作業により取得した値を合わせた、“<手順 2 で調べた DottedName>.<手順 3 で調べた属 性名>”となります。 今回の例の場合、WebServer の最大同時接続数を設定する MO 属性の属性名は MaxClients ですので、手順 2 で調べたDottedName と合わせて、server.WebServer.MaxClients が MO 属性名になります。

参照

関連したドキュメント

環境への影響を最小にし、持続可能な発展に貢

欄は、具体的な書類の名称を記載する。この場合、自己が開発したプログラ

※発電者名義(名義)は現在の発電者 名義と一致しなければ先の画面へ進ま

2017 年 12 月には、 CMA CGM は、 Total の子会社 Total Marine Fuels Global Solutions と、 2020 年以降 10 年間に年間 300,000 トンの LNG

当社は福島第一原子力発電所の設置の許可を得るために、 1966 年 7

関西学院大学社会学部は、1960 年にそれまでの文学部社会学科、社会事業学科が文学部 から独立して創設された。2009 年は創設 50

2021年5月31日

Wärtsilä と Metso Corporation は、 2005 年以来、他のフィンランド企業とともに舶用 スクラバーの開発を進めてきた。 2007 年秋には試験機が完成し、フィンランド船社 Neste