21.1.4 AWS環境でのHADBサーバの構築
ここでの説明は,新規導入を前提としています。
- 〈この項の構成〉
(1) インスタンスの用意
HADBサーバをインストールするインスタンスを用意してください。
ここでは,インスタンスタイプがr5b.2xlargeのインスタンスを用意するとします。
(2) ファイルシステム,ディスク,およびS3バケットの用意
「表21‒2 用意するファイルシステム,ディスク,およびS3バケット」に示すファイルシステム,ディスク,およびS3バケットを用意してください。
(3) HADBサーバおよびHADBオプションのインストール
HADBサーバをインストールし,そのあとにHADBオプションをインストールしてください。HADBサーバおよびHADBオプションのインストール方法については,「8.2 インストール」を参照してください。
(4) セキュリティグループの設定
HADBサーバをインストールしたインスタンスで,TCPポート443でのアウトバウンドのHTTPS通信ができるようにセキュリティグループを設定してください。
また,HADBサーバをインストールしたインスタンスで次の環境変数を設定している場合は,プロキシサーバとして使用するインスタンスに対しても,上記のセキュリティグループの設定をしてください。
-
HTTP_PROXY
-
HTTPS_PROXY
- 重要
-
環境変数HTTP_PROXYを設定している場合,プロキシサーバへのアクセスに通信プロトコルHTTPが使用されるため,通信内容の盗聴や改ざんなどのセキュリティ上のリスクがあります。そのため,プロキシサーバを使用する場合は,環境変数HTTPS_PROXYを設定し,通信プロトコルとしてよりセキュアなHTTPSを使用することを推奨します。
(5) AWS CLIのインストール
HADBサーバは,AWS CLIを実行してインスタンスの情報や,Amazon S3に関する情報を取得します。そのため,HADBサーバをインストールしたインスタンスにAWS CLIをインストールしてください。
HADBサーバは,AWS CLIを次のどちらかで実行します。そのため,AWS CLIをインストールする際は,次のどちらかでawsコマンドが実行できるようにインストールパスを指定してください。
-
/usr/local/bin/aws
-
/usr/bin/aws
AWS CLIのインストール方法および設定については,AWSのドキュメントのAWS CLI のインストールと設定を参照してください。
(6) Amazon S3へのアクセスに必要な認証情報の設定
「(a) IAMロールを使用した認証情報の設定」または「(b) 認証情報ファイルの設定」に示す方法で,Amazon S3へのアクセスに必要な認証情報を設定してください。
なお,「(a) IAMロールを使用した認証情報の設定」と「(b) 認証情報ファイルの設定」の両方の設定をした場合,「(b) 認証情報ファイルの設定」で設定した認証情報が優先されます。そのため,「(a) IAMロールを使用した認証情報の設定」を実施した場合は,「(b) 認証情報ファイルの設定」を実施しないでください。
(a) IAMロールを使用した認証情報の設定
S3バケットへのアクセスを許可するように設定したIAMロールを作成し,HADBサーバをインストールしたインスタンスにアタッチします。作成するIAMロールには,次のアクションを許可するIAMポリシーを関連づけてください。
-
インスタンスの情報を取得するときに必要なアクション
ec2:Describe*
-
S3オブジェクトの情報を取得するときに必要なアクション
s3:ListBucket*
-
S3オブジェクトを取得,追加,および削除するときに必要なアクション
s3:DeleteObject*
s3:GetObject*
s3:PutObject*
-
ディレクトリバケットへのアクセスに必要なアクション
s3express:CreateSession
S3バケットとしてディレクトリバケットを使用する場合に必要なアクションです。
Amazon S3のアクセス制御の設定方法については,AWSのドキュメントのAmazon S3でのIdentity and Access ManagementまたはS3 Express One Zone 向け AWS Identity and Access Management (IAM)を参照してください。
インスタンスへのIAMロールのアタッチについては,AWSのドキュメントのAmazon EC2のIAMロールを参照してください。
(b) 認証情報ファイルの設定
AWS CLIをインストールしたインスタンスで,AWS CLIで使用する認証情報ファイルを設定してください。手順を次に示します。
手順
-
IAMポリシーを設定する
HADBサーバの運用で使用するIAMユーザに対して,「(a) IAMロールを使用した認証情報の設定」でIAMロールに関連づけているものと同じIAMポリシーを設定してください。
-
HADB 管理者ユーザ(adbmanager)で次のAWS CLIのコマンドを実行する
aws configure
-
アクセスキーIDとシークレットアクセスキーを入力する
アクセスキーID(AWS Access Key ID)とシークレットアクセスキー(AWS Secret Access Key)の入力を求められます。入力例を次に示します。
$ aws configure AWS Access Key ID [None]: ARLYAHKBV4BD8GQEJRWJ AWS Secret Access Key [None]: N8jZZhCzETd5yCexhKsu2EXJbuhAH7gyZjHBzeQs Default region name [None]: ap-northeast-1 Default output format [None]: json
手順の1.でIAMポリシーを設定したIAMユーザのアクセスキーIDとシークレットアクセスキーを入力してください。
リージョン名(Default region name)と出力形式(Default output format)には,任意のリージョン名と任意の出力形式を指定してください。
aws configureコマンドの詳細については,AWSのドキュメントを参照してください。
-
認証情報ファイルの内容を確認する
adbmanagerのホームディレクトリ下にある.awsディレクトリ下に,認証情報ファイル(ファイル名:credentials)が作成されます。同名のファイルが存在する場合は,そのファイルの内容が更新されます。作成または更新された認証情報ファイルの内容を確認してください。
<認証情報ファイルの例>
[default] aws_access_key_id=ARLYAHKBV4BD8GQEJRWJ aws_secret_access_key=N8jZZhCzETd5yCexhKsu2EXJbuhAH7gyZjHBzeQs
認証情報ファイル中のdefaultプロファイルのaws_access_key_idとaws_secret_access_keyに,手順の1.でIAMポリシーを設定したIAMユーザのアクセスキーIDとシークレットアクセスキーが指定されていることを確認してください。
(7) HADBクライアントのインストール
HADBクライアントをインストールしてください。HADBクライアントのインストール方法については,マニュアルHADB AP開発ガイドのHADBクライアントのインストールおよびアンインストールを参照してください。
(8) 環境変数の設定
HADBサーバをインストールしたインスタンスで環境変数を設定してください。HADBサーバで設定する環境変数については,「8.4 環境変数の設定」を参照してください。
また,HADBクライアントでも環境変数を設定してください。HADBクライアントで設定する環境変数については,マニュアルHADB AP開発ガイドの環境変数の設定を参照してください。
(9) カーネルパラメタの設定
HADBサーバをインストールしたインスタンスでカーネルパラメタを設定してください。設定するカーネルパラメタについては,「6.2 カーネルパラメタの見積もり」を参照してください。
(10) ネットワークの設定
「21.1.2 ネットワーク構成」を参照して,必要なネットワークを設定してください。
(11) サーバ定義の作成
HADBサーバをインストールしたインスタンスでサーバ定義を作成してください。サーバ定義の作成方法については,「8.5 サーバ定義の作成および変更方法」を参照してください。サーバ定義に指定するオペランドについては,「7. サーバ定義の設計」を参照してください。
なお,クラウドストレージ機能を使用するため,次のオペランドは必ず指定する必要があります。
-
adb_sys_cld_aws_region
-
adb_sys_cld_aws_bucket
-
adb_sys_cld_cache_path
上記のほかにもクラウドストレージ機能に関するオペランドがあります。詳細については,「7.2.16 クラウドストレージ機能に関するオペランド(set形式)」を参照してください。
<サーバ定義の指定例>
set adb_db_path = /HADB/db set adb_rpc_port = 23650 set adb_sys_max_users = 10 set adb_sys_rthd_num = 40 set adb_sys_uthd_num = 128 set adb_sql_exe_max_rthd_num = 4 set adb_sys_memory_limit = 64000 set adb_sys_cld_aws_region = ap-northeast-1 ...1 set adb_sys_cld_aws_bucket = adbbucket ...2 set adb_sys_cld_cache_path = /HADB/ADBCCH ...3 adbbuff -g TBLBUF01 \ -n ADBUTBL01 \ -p 1000000 \ -v 1024 adbbuff -g IDXBUF01 \ -n ADBUIDX01 \ -p 312500 adbcachegrp -g TBLGRP01 \ ...4 -n ADBUTBL01,ADBUTBL02 \ ...5 -s 256 ...6 adbcachegrp -g IDXGRP01 \ ...7 -n ADBUIDX01,ADBUIDX02 \ -s 64 adbcachegrp -o \ ...8 -s 16
- [説明]
-
下記の( )内は,指定値の例を示しています。
-
S3オブジェクトの格納先リージョン名(ap-northeast-1)を指定します。
「(13) データベースの初期設定」で作成する初期設定オプションのadb_init_cld_aws_regionオペランドと同じリージョン名を指定することを推奨します。
-
S3オブジェクトの格納先S3バケット名(adbbucket)を指定します。
「(13) データベースの初期設定」で作成する初期設定オプションのadb_init_cld_aws_bucketオペランドと同じS3バケット名を指定することを推奨します。
-
キャッシュファイルの格納先ディレクトリ名(/HADB/ADBCCH)を指定します。
-
キャッシュグループを定義するためにadbcachegrpオペランドを指定します。-gオプションにはキャッシュグループ名を指定します。
-
-nオプションには,4.で指定したキャッシュグループに割り当てるデータ用DBエリア名を指定します。
-
キャッシュグループに格納するキャッシュファイルの容量の上限を指定します。
-
2つ目のキャッシュグループを定義するためにadbcachegrpオペランドを指定します。
-
-oオプションを指定したadbcachegrpオペランドを指定して,既定のキャッシュグループを定義します。
-
(12) クライアント定義の作成
クライアント定義の作成方法については,マニュアルHADB AP開発ガイドのHADBクライアントの環境設定(ODBCドライバおよびCLI関数を使用する場合)のクライアント定義の作成を参照してください。
(13) データベースの初期設定
adbinitコマンドを実行して,データベースを初期設定してください。初期設定オプションの指定例を次に示します。
set adb_init_dbarea_initialize = Y set adb_init_wrk_blk_path = /dev/dbarea_work/ADBWRK ...1 set adb_init_cld_aws_region = ap-northeast-1 ...2 set adb_init_cld_aws_bucket = adbbucket ...3 set adb_init_cld_cache_path = /HADB/ADBCCH ...4 adbinitdbarea -n ADBUTBL01 -p 32 -s 32 ...5 adbinitdbarea -n ADBUIDX01 -p 32 -s 32 ...5
- [説明]
-
下記の( )内は,指定値の例を示しています。
-
作業表用DBエリアファイルを割り当てるEBS上のブロックスペシャルファイル名(/dev/dbarea_work/ADBWRK)を指定します。
-
S3オブジェクトの格納先リージョン名(ap-northeast-1)を指定します。
-
S3オブジェクトの格納先S3バケット名(adbbucket)を指定します。
-
キャッシュファイルの格納先ディレクトリ名(/HADB/ADBCCH)を指定します。
-
データ用DBエリア(ADBUTBL01,ADBUIDX01)の指定をします。DBエリアのページサイズには32キロバイトを,セグメントサイズには32メガバイトを指定してください。
クラウドストレージ機能を使用する場合,作成されるデータ用DBエリアの容量は約1ペタバイトになります。
-