AlibabaCloudでのミドルウェア導入検証【JP1/AJS3編②】~動作検証~

f:id:sbc_ali99:20191010201919p:plain こんにちは! エンジニアのYです。

今回は、AlibabaCloudでのミドルウェア導入検証【JP1/AJS3編②】です。

前回の記事では、JP1-AJS3でのジョブの実装内容を検討しました。

本記事では、前回の記事で検討した内容について、AlibabaCloudで正常に動作するのかを確認していきます。

JP1/AJS3のインストールは様々なブログやドキュメントに紹介されているので、ここでは、割愛致します。
本記事では、ジョブの動作検証を実施していきます。

以下、目次です。

検証環境

前回の記事の繰り返しとなりますが、本記事の検証を実施するための環境はこちらです。
なお、検証環境は構築済とします。
f:id:sbc_ali99:20191010201939p:plain

ジョブの実装内容

こちらも前回の記事の繰り返しとなりますが、ジョブネット構成です。
本記事では、このジョブネットの動作確認を実施していきます。
f:id:sbc_ali99:20191010201958p:plain  

ジョブ内で使用するCLI

【AlibabaCloudCLI】を使用することで、AlibabaCloudリソースのCRUD操作を実施することができます。
また、本記事ではジョブ内で使用するために絶対パスを指定し、コマンド実行します。
以下に本記事で使用するCLIコマンドを記載します。

AutoScalingの台数変更

■使用するCLI
AutoScalingGroup(ess)のModifyScalingGroupコマンドで台数変更を実施します。

/usr/local/bin/aliyun ess ModifyScalingGroup --ScalingGroupId {$Id} --MinSize {$台数} --MaxSize $2 {$台数}

台数変更後、AutoScalingGroup(ess)のDescribeScalingGroupsコマンドで設定値が変更されたことを確認します。

/usr/local/bin/aliyun ess DescribeScalingGroups --ScalingGroupId.1 {$Id}

■使用するジョブ
launch-ecs-jobおよびterminate-ecs-jobにて使用します。
launch-ecs-jobでは2台terminate-ecs-jobでは0台に設定します。
f:id:sbc_ali99:20191010202013p:plain

環境起動時(launch-ecs-job)の確認内容

環境起動時は、MaxSizeMinSize2になっていることを確認します。

以下、コマンド発行後の確認内容です。

/usr/local/bin/aliyun ess DescribeScalingGroups --ScalingGroupId.1 {$Id} | jq -r .

f:id:sbc_ali99:20191010202037p:plain  

環境停止時(terminate-ecs-job)の確認内容

環境停止時は、MaxSizeMinSize0になっていることを確認します。

以下、コマンド発行後の確認内容です。

/usr/local/bin/aliyun ess DescribeScalingGroups --ScalingGroupId.1 {$Id} | jq -r .

f:id:sbc_ali99:20191010202058p:plain  

AutoScaling配下のECSの状態確認

■使用するCLI
AutoScalingGroup(ess)のDescribeScalingInstancesコマンドでAutoScalingGroup配下のECSの状態確認を行います。

/usr/local/bin/aliyun ess DescribeScalingInstances --ScalingGroupId {$Id}

■使用するジョブ
ecs-launchcheck-jobおよびecs-terminatecheck-jobにて使用します。
f:id:sbc_ali99:20191010202119p:plain

環境起動時(ecs-launchcheck-job)の確認内容

環境起動時は、HealthStatusHealthyになっているサーバが2台あることを確認します。

以下、コマンド発行後の確認内容です。

/usr/local/bin/aliyun ess DescribeScalingInstances --ScalingGroupId {$Id} | jq -r .

f:id:sbc_ali99:20191010202133p:plain  

環境停止時(ecs-terminatecheck-job)の確認内容

環境停止時は、ScalingInstanceになにも表示されないことを確認します。

以下、コマンド発行後の確認内容です。

/usr/local/bin/aliyun ess DescribeScalingInstances --ScalingGroupId {$Id} | jq -r .

f:id:sbc_ali99:20191010202150p:plain  

SLBの状態確認

■使用するCLI
SLBのDescribeHealthStatusコマンドでSLB配下のECSの状態確認を実施します。

/usr/local/bin/aliyun slb DescribeHealthStatus --LoadBalancerId {$Id}

■使用するジョブ
slb-healthcheck-jobおよびslb-unhealthcheck-jobにて使用します。
f:id:sbc_ali99:20191010202203p:plain

環境起動時(slb-healthcheck-job)の確認内容

環境起動時は、ServerHealthStatusnormalになっているサーバが2台あることを確認します。

以下、コマンド発行後の確認内容です。

/usr/local/bin/aliyun slb DescribeHealthStatus --LoadBalancerId {$Id}  | jq -r .

f:id:sbc_ali99:20191010202218p:plain  

環境停止時(slb-unhealthcheck-job)の確認内容

環境停止時は、BackendServerになにも表示されないことを確認します。

以下、コマンド発行後の確認内容です。

/usr/local/bin/aliyun slb DescribeHealthStatus --LoadBalancerId {$Id} | jq -r .

f:id:sbc_ali99:20191010202230p:plain  

ジョブの実行(即時実行)

前項では、ジョブにて使用するCLIをご紹介しました。
本項では、実際にジョブを動作させます。
なお、JP1-AJS3の実行環境とジョブネットは構築済とします。

以下、実行させるジョブネットです。

f:id:sbc_ali99:20191010202244p:plain  

環境起動用ジョブネット(launch-jobnet)の確認

  1. 下記のジョブネット即時実行します。
    f:id:sbc_ali99:20191010202258p:plain  

  2. 環境起動を即時実行で実施します。
    f:id:sbc_ali99:20191010204159p:plain

  3. 正常にジョブが終了していることを確認します。
    f:id:sbc_ali99:20191010204213p:plain  

環境停止用ジョブネット(terminate-jobnet)の確認

  1. 下記のジョブネット即時実行します。
    f:id:sbc_ali99:20191010202337p:plain  

  2. 環境停止を即時実行で実施します。
    f:id:sbc_ali99:20191010202352p:plain  

  3. 正常にジョブが終了していることを確認します。
    f:id:sbc_ali99:20191010204226p:plain  

AlibabaCloudでの確認

以下の確認を実施します。

AutoScalingGroupの確認
  • ●環境起動時
     該当のAutoScalingGroupのECSインスタンスリスト内のECSが正常に稼働していることを確認します。
    f:id:sbc_ali99:20191010202709p:plain

  • ●環境停止時
     該当のAutoScalingGroupのECSインスタンスリストにECSが存在しないことを確認します。
    f:id:sbc_ali99:20191010202721p:plain

SLBの確認
  • ●環境起動時
     バックエンドサーバのポートヘルスチェックが正常に実施されていることを確認します。
    f:id:sbc_ali99:20191010202733p:plain

  • ●環境停止時
     バックエンドサーバのポートヘルスチェックが-になっていることを確認します。
    f:id:sbc_ali99:20191010202755p:plain

ジョブの実行(計画実行)

即時実行での動作確認は完了しました。
次はスケジュールを意識し、平日の10:00に起動平日の18:00に停止といった計画実行を実施していきます。

カレンダー定義の作成

ジョブを平日に実行するためにカレンダー定義を作成します。
ここでは、schedule-jobgroupのカレンダー定義にて、
土日を休日と定義しておきます。 f:id:sbc_ali99:20191010202826p:plain

以下、設定後のView画面です。

  1. カレンダー定義をschedule-jobgroupに設定します。

  2. 土日を休日と定義します。
    f:id:sbc_ali99:20191010202837p:plain
      f:id:sbc_ali99:20191010202848p:plain

スケジュール定義の作成

ジョブネットを実行する時間を定義しておきます。
実行スケジュールは下記の通り、設定します。

● launch-jobnet(環境起動用ジョブネット) : 平日10:00実行
● terminate-jobnet(環境停止用ジョブネット) : 平日18:00実行

以下、設定後のView画面です。

  1. launch-jobnetterminate-jobnetにそれぞれスケジュール定義を設定します。
    f:id:sbc_ali99:20191010202904p:plain

  2. スケジュールルールの種別を運用日に設定します。

  3. 任意の開始年月を設定します。

  4. 任意の開始日を設定します。

  5. 開始時刻を絶対時刻(システム時刻)とし、下記の実行時間は下記の通り設定します。
      ● launch-jobnet : 10:00
      ● terminate-jobnet : 18:00

  6. サイクルで実行するにチェックを入れ、1運用日毎に実行します。  
    f:id:sbc_ali99:20191010202916p:plain

計画実行の実行登録

実行登録を計画実行で実施します。

以下、設定後のView画面です。

  1. launch-jobnetterminate-jobnetにそれぞれ実行登録を実施します。
    f:id:sbc_ali99:20191010202934p:plain

  2. 登録方法は計画実行を指定します。

  3. 実行タイミングは、次回から実行するに指定します。
    f:id:sbc_ali99:20191010202954p:plain

計画実行の設定確認

計画実行登録後の設定を確認します。

  1. launch-jobnet(環境起動用ジョブネット)の確認です。
    土日以外に■マークがあることが確認できます。
    f:id:sbc_ali99:20191010203008p:plain

  2. ■マークをダブルクリックすると下記がセットされていることが確認できます。
    選択枠内の実行スケジュール2019/10/10 10:00:00 - 2019/10/10 10:02:56
    状態開始時刻待ち
    開始予定日時および開始日時10:00:00
    終了日時10:02:56
    f:id:sbc_ali99:20191023160632p:plain

  3. terminate-jobnet(環境停止用ジョブネット)の確認です。
    土日以外に■マークがあることが確認できます。
    f:id:sbc_ali99:20191010203033p:plain

  4. ■マークをダブルクリックすると下記がセットされていることが確認できます。
    選択枠内の実行スケジュール2019/10/10 18:00:00 - 2019/10/10 18:00:24
    状態開始時刻待ち
    開始予定日時および開始日時18:00:00
    終了日時18:00:24
    f:id:sbc_ali99:20191023160650p:plain

計画実行の動作確認

JP1/AJS3-Viewでの確認

JP1/AJS3-Viewではジョブネットモニタにて確認を実施します。

環境起動確認
  1. launch-jobnetの進捗度が100%になっていることを確認します。
    f:id:sbc_ali99:20191010203109p:plain

  2. 開始時刻が10:00:00であることを確認します。

  3. ジョブネットモニタにて、ジョブが全て正常終了していることを確認します。
    f:id:sbc_ali99:20191010203124p:plain

環境停止確認
  1. terminate-jobnetの進捗度が100%になっていることを確認します。
    f:id:sbc_ali99:20191011120302p:plain

  2. 開始時刻が18:00:00であることを確認します。

  3. terminate-jobnetのジョブネットモニタにて、ジョブが全て正常終了していることを確認します。
    f:id:sbc_ali99:20191011120318p:plain

AlibabaCloudでの確認

以下の確認を実施します。

スケーリングアクティビティの確認

AutoScalingGroupの挙動を確認すると下記が記録されていることが確認できます。
 ●平日の10:00にAdd"2"ECS
 ●平日の18:00にRemove"2"ECS
 ●10/5(土)、10/6(日)はアクティビティなし

f:id:sbc_ali99:20191010203203p:plain

AutoScalingGroupの状態確認とSLBの状態確認については、
即時実行時と同様のため、割愛します。

所感

今回は、AlibabaCloud上にJP1-AJS3を構築し、動作させました。
AlibabaCloud特有の設定項目は特になく、他のクラウドサービスと遜色なく動作させることができました。
これを機に他のミドルウェアについてもAlibabaCloud上で検証を実施していければと思います。