HULFT on AWS実践 – HULFT8稼働環境をWindows Server 2012上に構築
先日投稿したHULFTの以下エントリではHULFTの紹介及びポータルサイト『MyHULFT』の紹介まで行いました。
当エントリでは、実際にHULFT製品をAWS環境に導入する手順について、実践記録のまとめの意味も兼ねてエントリとして残しておこうと思います。
目次
HULFT導入について押さえておく事
HULFTを環境に導入するにあたって、事前に確認しておくポイントは幾つか存在します。
対応製品/対応OS
HULFTでは以下ページに記載されている製品群を展開しています。この中で、実際に導入するにあたり最も適している製品を調査・吟味の上決定します。
今回実践したケースの場合だと、シンプルにサーバ間でのファイル転送を行う構成であり、またファイル転送前後の処理の作り込みについてもプログラムを自ら作成する予定(GUIの補助は無くても問題無さそう)、という事で『HULFT8』のみ利用する方針としました。
OSについてはHULFT8の場合、『Mainframe/UNIX/Linux/Windows/IBMi』が選択可能です。今回は送信側(HULFT用語的には"配信"側)のサーバとの環境を合わせておこう、という事でWindows版を選択する事にしました。
HULFT8の場合、『暗号化オプション』を追加で導入する事も可能です。HULFT製品で用意されている暗号化は『HULFT暗号』『AES』『C4S』の3つ。HULFT暗号は製品にデフォルトで組み込まれているもの、AESとC4Sは追加費用が掛かる形のオプション製品となっています。こちらも業務要件に従い、必要に応じて暗号化オプションの製品を追加選択してください。
- HULFT8 高度なセキュリティ | セゾン情報システムズ
- 暗号の強度を教えてください。 | HULFT8に関するご質問 | ファイル転送・データ連携 HULFTシリーズ | セゾン情報システムズ
- AESで暗号化して転送したい – HULFT OrangeLab.
- 第10回:暗号化機能 – HULFT OrangeLab.
以上の確認事項を踏まえて、ここでは『HULFT8』(Windows版)及び『HULFT8 Cipher Option(AES)』(Windows版)を導入する方針としました。
通信する相手サーバの情報
HULFTは『ファイルのやり取り』を行う製品ですので、当然のことながら『通信相手(のサーバ)』が存在します。実際にファイルの連携を行う際には相手サーバを認識出来るように設定をしておく(相手先のサーバが名前解決出来るようにしておく)必要があります。以下2つの方法がありますが、ここでは『hostsファイルに設定を追加』する手法で進めたいと思います。
- DNSによる名前解決が出来る状態にある
- hostsファイルに設定を追加
参考:
(配信側サーバとして)ファイル送信前に行っておく事、
(集信側サーバとして)ファイル受信後に行う事
次に、HULFTを介して配信側(ファイル送信を行うサーバ)は送る前に何を行っておきたいのか、また集信側(ファイル受信を行うサーバ)としてはそのファイルを受け取った際にどんな処理をしたいのか、という情報を洗い出しておきます。
今回このエントリ(以降のエントリ)でやりたい事を構成図で表すと以下の様な形となります。
- 送りたいファイルはCSVやTSV等のデータ。最終的には所定のS3バケットにファイルをアップロードし、RedshiftにCOPY出来るようにしておく。
- 配信側は必要に応じてファイルを加工し、所定の方法で集信側にファイルを送る。
- 集信側はファイルを受信後、必要に応じてファイルを加工し、所定のS3バケット/フォルダにアップロード。
上記文中に『必要に応じてファイルを加工し』という部分が出てきますが、この部分が個別にカスタマイズや設定を行う部分となります。HULFTではファイルの配信/集信の前後にそれぞれ任意の処理を"ジョブ"として連動設定させる事が可能です。詳細はいずれ後述しますが、"何か行っておきたい処理"がある場合はその内容を整理しておきましょう。
やり取りするファイルの文字コード・改行コード、
及び環境下での文字コード設定
ファイルの文字コード・改行コード
転送する際に扱うファイルの文字コード・改行コードについても、ファイル単位でどのような状況になっているのか/配信時にはこれだけど受信時(受信後)にはどうなっているべきなのかというポイントについて情報を整理しておく必要があります。
今回想定しているファイルの連携先はAmazon S3であり、その先の流れはAmazon Redshiftへの連携をイメージしていました。Amazon Redshiftでは許可されている文字コードはUTF8/UTF16となります。改行コードについてはCRLF及びLFが有効な改行コードとなります。(CRはエラーとはならないが正しく取り込まれないので実質利用出来ない形)
配信側の状況としてはファイルの出処が様々あり、文字コードとしてはShift_JISのファイルが大半である...という環境を想定しました。
転送タイプと漢字コード種
HULFTではファイルを転送する際に、転送の形式を指定する事が出来ます。選択可能な『転送タイプ』は以下4種類。BINALYを選択した場合、転送時の文字コード変換は行いません。残り3種を選択した場合、環境に対応した文字コード変換を転送時に行う事が可能となります。
- FORMAT
- BINALY
- MULTIFORMAT
- TEXT
そして、転送環境においては『漢字コード種』を設定する必要があります。こちらはHULFTでファイル転送を行う際に設定が必要となるもので、転送の設定によってはnkf等の文字コード変換ツールを使わずとも、転送のタイミングでHULFTによって文字コード変換を行ってくれる様に出来るなどの特徴があります。
転送タイプについては転送するファイル単位で、漢字コード種については環境単位で設定する必要があります。後者はインストール後でも変更が可能です。
上記内容を整理すると以下のようになります。集信側の漢字コード種については『ファイル転送時の文字コード変換』機能を活用するかも知れないのでUTF8に設定をしておきました。仮にこの機能を使わない、ということであれば配信側環境と同じShift_JISでも構わないと思います。
環境 | OS | 文字コード | 漢字コード種 | 備考 |
---|---|---|---|---|
配信側環境 | Windows (Windows Server 2012) |
Shift_JISのファイルが主 | Shift_JIS | 文字コード変換が必要なものはTEXT転送 文字コード変換が不要なものはバイナリ転送 |
集信側環境 | Windows (Windows Server 2012) |
UTF8のファイルとして処理したい | UTF8 |
導入手順
HULFT製品については評価版を利用する事が出来、製品版ライセンスを購入・登録する事で正規のサポートを受けながら製品利用を行う流れになっています。ここでもその流れを踏襲した形でまずは評価版をインストールするところから進めて行きたいと思います。
1.評価版のダウンロード&キーの発行
myHULFTにアクセスし、『評価版ダウンロード』から利用する国(日本)を選んで[次へ]。
利用する製品の選択。ここでは上記検討事項からWindows版HULFT8 暗号化オプション付きのものを選びました。
オプション製品の選択。
選択内容の確認。使用許諾の同意を行い、アンケートに回答の後[評価版を利用する]を選択。
評価版利用申込が完了しました。
製品を利用するにはキーの発行も必要となります。『製品ダウンロード/キー発行』のメニューから登録した評価版の『キー発行』ボタンを押下。
必要な環境情報を入力し、キー発行手続きを行います。
設定する箇所は以下2箇所。内容的には同じ値をそれぞれ設定する形となります。今回はインストールするOSをWindows Server 2012とする想定だったので、『OS詳細』に該当する項目を設定しました。
使用許諾に同意し、『プロダクトキー発行』を押下。
キーが発行されました。情報は手元に控えておくか、PDF/CSVとしてダウンロードしておきます。
2.HULFT8インストール前の事前準備
今回導入する環境はAmazon EC2/Windows Server 2012 R2としました。必要な環境を準備しておいてください。
ちなみにHULFT環境ではファイルの送受信のプロセスに専用ポートを使用します。デフォルト値では以下のポート番号を使用する形となりますので、EC2に割り当てたセキュリティグループでは許可したいアクセス先からのポート:30000及びポート:31000を許可する設定を行っておいてください。(当エントリでは検証用環境として作成した為、以下設定としています)
- 集信プロセス:30000/TCP
- 要求受付プロセス:31000/TCP
先程発行したキーに該当する評価版をダウンロードします。『ダウンロード』ボタンを押下し、
規約内容に同意を行い、製品をダウンロードします。
3.HULFT8インストール
Microsoft .NET Frameeworkのインストール
HULFT8のインストールに際しては、事前に幾つかのインストールを行っておく必要があります。まずはMicrosoft .NET Frameework。4.5以上をインストールしておく必要がありますので下記サイトから最新版(4.7)をダウンロードし、インストールしました。(※ですが用意したWindows環境には既に導入済の状態となっていました)
Visual Studio 2012更新プログラム4の
Visual C++再頒布可能パッケージのインストール
Visual Studio 2012更新プログラム4のVisual C++再頒布可能パッケージについても、x86版とx64版の双方が事前にインストールが必要となります。インストーラアーカイブを解凍した中身の『ISSetupPrerequisites』フォルダ配下にインストーラが用意されていますので、それぞれ実行してインストールしておきます。
HULFT8本体のインストール
インストーラアーカイブを解凍した中に含まれるsetup.exeを起動してインストールを開始します。
設定言語:日本語を選択して[次へ]を押下。
[次へ]を押下。
ライセンス情報の入力。事前に取得した内容をここで入力します。入力後[次へ]を押下。
サービス情報の入力。識別可能な任意の名前を入力します。未入力のままでも特に問題はありません。
インストール先フォルダの選択。こちらも特にそのままで問題ありません。
HULFT動作言語の設定。日本語を選択して[次へ]を押下。
登録名の設定。こちらもそのままで問題ありません。
転送コードセットの設定。こちらは上記で言及していた『漢字コード種』に相当する部分となります。今回はここは『UTF-8』を設定してみます。
日付形式の設定。ここもデフォルトのまま[次へ]を押下。
インストールする製品情報の確認。内容確認後[次へ]を押下。
インストール完了。
4.HULFT起動&疎通確認
HULFT8を起動してみます。起動メニューは以下のような構成になっています。
起動時のスプラッシュ画像。
起動後のHULFT8画面。
ヘルプから導入時のバージョン情報等を確認出来ます。
Windows環境でHULFTを使う際は、コマンド実行をスムーズにする為に実行パスを環境変数に通しておくと良いでしょう。デフォルトインストールパスにHULFT8をインストールした際のパス情報をPowerShellで設定する内容は以下の通りです。
$path = [Environment]::GetEnvironmentVariable('PATH', 'Machine') $path += ";" + "C:\HULFT Family\hulft8\bin" [Environment]::SetEnvironmentVariable('PATH', $path, 'Machine')
utlhulversionコマンドを実行してバージョン情報等が表示されればOKです。
PS C:\Users\Administrator> utlhulversion HULFT8 for Windows-Server Version Information [V08L01R03] License Type [Trial version] Serial Number [408-xxxx-xxxxxx] Product Key [QSVDC-xxxxx-xxxxx-xxxxx-xxxxx] Date of Installation [2017/xx/xx] Environment Information [Windows Server 2012 Standard(full installation) , 64bit] Hostname [CM-WIN2012-SV] Cipher Option(AES) [V08L01R03] PS C:\Users\Administrator>
HULFTの起動・停止
HULFTは任意の手順を踏む事で起動・停止を行う事が出来ます。[プロセスコントローラー]メニューを起動し、
[起動]ボタン押下で関連アプリケーションが起動します。
停止を行う場合はHULFTの[終了]を押下。
また、HULFTはコマンドラインベースでも操作が可能です。
PS C:\Users\Administrator> utlsvcctl -c start サービスが開始されました。 PS C:\Users\Administrator> utlsvcctl -c stop サービスが停止されました。 PS C:\Users\Administrator>
相手先ホスト情報の設定
エントリ冒頭で「相手先のサーバが名前解決出来るようにしておく」必要がある旨について言及しましたが、ここでその設定を行っておきたいと思います。
まずホスト名の確認。当エントリで構築した環境のマシン名をもう少し直感的に分かり易くしたいと思います。HULFT環境の受信用として利用したいのでマシン名を「CM-HULFT-RCV」と変更しました。
マシン名再設定→再起動後、hostnameコマンドで内容を確認してみます。
Windows PowerShell Copyright (C) 2014 Microsoft Corporation. All rights reserved. PS C:\Users\Administrator> hostname CM-HULFT-RCV PS C:\Users\Administrator>
また、この環境には別途EIPを割り当てています。マシン名「CM-HULFT-RCV」とEIPの情報を相手先から認識、アクセス出来るようにしておく、という訳です。今回作成した環境とは別の環境(Windows Server 2012)を別途用意し、以下の形でhostsファイルに情報を書き入れておきます。
# Copyright (c) 1993-2009 Microsoft Corp. # # This is a sample HOSTS file used by Microsoft TCP/IP for Windows. # # This file contains the mappings of IP addresses to host names. Each # entry should be kept on an individual line. The IP address should # be placed in the first column followed by the corresponding host name. # The IP address and the host name should be separated by at least one # space. # # Additionally, comments (such as these) may be inserted on individual # lines or following the machine name denoted by a '#' symbol. # # For example: # # 102.54.94.97 rhino.acme.com # source server # 38.25.63.10 x.acme.com # x client host # localhost name resolution is handled within DNS itself. # 127.0.0.1 localhost # ::1 localhost 34.226.xxx.xxx CM-HULFT-RCV
疎通確認
HULFT8で利用するポート(30000/31000)が利用可能かどうかについても確認してみましょう。
接続・ポート疎通確認にはPortQryというツールを使ってみます。
- Download PortQry Command Line Port Scanner Version 2.0 from Official Microsoft Download Center
- PortQry version 2.0 - Microsoftのポートスキャナーツール
上記公式サイトからインストーラを入手・解凍し、任意のフォルダに配置した後環境変数Pathにパスを通しておきます。
$path = [Environment]::GetEnvironmentVariable('PATH', 'Machine') $path += ";" + "C:\tools\PortQryV2" [Environment]::SetEnvironmentVariable('PATH', $path, 'Machine')
上記で作成した環境とは別のWindows環境から、今回作成した環境(CM-HULFT-RCV)に対して接続確認を行ってみます。問題無さそうですね。
Windows PowerShell Copyright (C) 2014 Microsoft Corporation. All rights reserved. PS C:\Users\Administrator> portqry -n CM-HULFT-RCV -p tcp -e 30000 Querying target system called: CM-HULFT-RCV Attempting to resolve name to IP address... Name resolved to 34.226.xxx.xxx querying... TCP port 30000 (unknown service): LISTENING PS C:\Users\Administrator> PS C:\Users\Administrator> portqry -n CM-HULFT-RCV -p tcp -e 31000 Querying target system called: CM-HULFT-RCV Attempting to resolve name to IP address... Name resolved to 34.226.xxx.xxx querying... TCP port 31000 (unknown service): LISTENING PS C:\Users\Administrator>
また、以下コマンドで生存監視を行う事も出来ます。
まとめ
という訳でHULFT製品(HULFT8)を実際にWindows環境にインストールして導入確認を行うまでの手順に関する内容のご紹介でした。ソフトウェアを対応OSにインストールしてハイ、おしまい!という感じなのかなと思ってましたが意外と押さえておくべきポイントが多く最初は戸惑いました。今回HULFTを扱うに当たってそれなりに情報は整理出来たので良かったのかなと思います。
次回以降のエントリでは、それぞれ用途・状況別にHULFTを使った転送処理を実践して行きたいと思います。