Project

General

Profile

Edit Actions

Bug #15

open

EndEnd Quality Check デプロイメント手順

Added by Redmine Admin 2 months ago. Updated 2 months ago.

Status:
New
Priority:
Normal
Assignee:
-
Target version:
-
Start date:
04/24/2026
Due date:
% Done:

0%

Estimated time:
Searchable field:
Default string
Database:
Float field:
Custom date:

Description

EndEnd Quality Check Deployment

version 02: 2026-04-23

概要

EndEndツールのコールログに記録されるPESQ値をチェックし閾値未満である場合にメール通知を行うLambda関数をデプロイ。
CloudFormation テンプレート、endend-quality-check.yml を使用してデプロイ。

デプロイターゲット

2026年4月時点では以下のAWSアカウントにデプロイ。

  • IPVC-TOKYO AccountID :311376832000
  • IPVC-OSAKA AccountID :381491903436 MFAアクセス

作成されるリソース・権限他

endend-quality-check.ymlで作成されるリソース・権限は以下。

  • AWS::IAM::Role endend-role-quality-check-lambda
  • AWS::SNS::Topic endend-sns-quality-check-alarm
  • AWS::Logs::MetricFilter - Log Group EndEnd に対しパターン [ a=",0," ] で設定
  • AWS::CloudWatch::Alarm endend-pesq-quality-<StackId>、Namespace EC2/Application
  • AWS::Lambda::Function endend-quality-alert
  • AWS::Lambda::Permission - CloudWatchからLambdaの呼び出しを許可

デプロイメント手順

params.jsonの作成

CloudFormation のパラメータは JSON ファイルで渡す。./paramsディレクトリ配下にEndEnd監視システム名をつけたjsonファイルを作成し配置。

EndEnd監視システム、#2(IPVC-OSAKA)の例: #2_ipvc-osaka_params.json

[
  {"ParameterKey":"SystemName","ParameterValue":"endend"},
  {"ParameterKey":"Environment","ParameterValue":"#2(ipvc-osaka)"},
  {"ParameterKey":"AlarmNotificationEmail","ParameterValue":"sbc-tech@ntt.com"},
  {"ParameterKey":"SBCLogGroupName","ParameterValue":"EndEnd"},
  {"ParameterKey":"AlarmFilterPattern","ParameterValue":"[ a=\"*,0,*\" ]"},
  {"ParameterKey":"ExistingLambdaRoleArn","ParameterValue":""},
  {"ParameterKey":"PermissionBoundaryArn","ParameterValue":""},
  {"ParameterKey":"MonitoringPeriod","ParameterValue":"60"}
]

note:

  • SystemNameEnvironmentはメールのSubjectに利用される。
  • PESQThreshold: 2.6はCloudFormationテンプレートで固定。

環境変数の設定

アカウントごとの環境変数を設定し、デプロイする。

  • wxc-dev-work
PARAMS_FILE="${PARAMS_FILE:-params/wxc-dev_params.json}"
REGION="${REGION:-ap-northeast-1}"
PROFILE="${PROFILE:-wxc-dev-work}"

echo $PARAMS_FILE
echo $REGION
echo $PROFILE
  • #2_ipvc-osaka
PARAMS_FILE="${PARAMS_FILE:-params/#2_ipvc-osaka_params.json}"
REGION="${REGION:-ap-northeast-3}"
PROFILE="${PROFILE:-381491903436-mfa}"
  • #1_ipvc-tokyo
PARAMS_FILE=#1_ipvc-tokyo_params.json
REGION=ap-northeast-1
PROFILE=311376832000

CloudFormation コマンド

create-stack

aws cloudformation create-stack \
  --stack-name endend-quality-check \
  --template-body file://endend-quality-check.yml \
  --parameters file://params/"${PARAMS_FILE}" \
  --capabilities CAPABILITY_NAMED_IAM \
  --region "${REGION}" \
  --profile "${PROFILE}" && \
aws cloudformation wait stack-create-complete \
  --stack-name endend-quality-check \
  --region "${REGION}" \
  --profile "${PROFILE}" && \
echo "CREATE COMPLETE"

update-stack

aws cloudformation update-stack \
  --stack-name endend-quality-check \
  --template-body file://endend-quality-check.yml \
  --parameters file://params/"${PARAMS_FILE}" \
  --capabilities CAPABILITY_NAMED_IAM \
  --region "${REGION}" \
  --profile "${PROFILE}" && \
aws cloudformation wait stack-update-complete \
  --stack-name endend-quality-check \
  --region "${REGION}" \
  --profile "${PROFILE}" && \
echo "UPDATE COMPLETE"

delete-stack

aws cloudformation delete-stack \
  --stack-name endend-quality-check \
  --region "${REGION}" \
  --profile "${PROFILE}" && \
aws cloudformation wait stack-delete-complete \
  --stack-name endend-quality-check \
  --region "${REGION}" \
  --profile "${PROFILE}" && \
echo "DELETE COMPLETE"

params.json

create-stack 実行時に指定する主なパラメータ(説明)

以下は aws cloudformation create-stack 実行時に指定するparams.jsonのパラメータ一覧。ExistingLambdaRoleArnPermissionBoundaryArn の扱いに注意(後述)。

パラメータ 必須 デフォルト 説明 / 備考
SystemName 必須 endend メール件名に使用。
Environment 必須 #1(IPVC-Tokyo) 環境名。メール件名に使用。#1(ipvc-tokyo) or #1(ipvc-osaka)
AlarmNotificationEmail 必須 なし 通知先メールアドレス。
SBCLogGroupName デフォルト EndEnd 監視対象の CloudWatch Logs の LogGroup 名。
AlarmFilterPattern 必須 [ a="*05034881413*" && a="*,0,*" ] MetricFilter のパターン。特殊文字を含むためシングルクォートで囲んで指定。
PESQThreshold デフォルト 2.6 Lambda 内で使用する閾値(float)。
MonitoringPeriod デフォルト 60 アラームの評価間隔(秒)。CloudWatch の評価間隔と連動するため 60 固定。
AlarmFunction デフォルト quality-alert 作成する Lambda の名前。変更すると Lambda が置換される。
ExistingLambdaRoleArn 任意 空 ("") 既存の Lambda 実行ロールの ARN を指定するとテンプレートはロールを作成せず既存ロールを使用。ARN をシングルクォートで囲む。
PermissionBoundaryArn 任意 空 ("") 新規ロール作成時に適用する Permissions Boundary の ARN。組織で Boundary が必須な場合は必ず指定。(スタック実行ユーザに iam:PutRolePermissionsBoundary 権限が必要)。

補足: ExistingLambdaRoleArn / PermissionBoundaryArn の扱い

  • ExistingLambdaRoleArn を指定すると(ARN を渡す)テンプレートは既存ロールを使用し、新しい IAM ロールは作成されません。空文字を指定するとテンプレートで新規ロールを作成。
  • 組織ポリシーで Permissions Boundary の適用が必須な場合、PermissionBoundaryArn を指定。新規ロール作成時に Boundary を適用するため、スタック実行ユーザに iam:CreateRoleiam:PutRolePermissionsBoundary(または十分な IAM 権限)が必要。

Lambda関数用のロールがすでにある場合と、新規に作成する場合でparms.jsonの設定を変更する必要がある。

更新時の反映方針(運用ルール)

テンプレートやパラメータを変更する際の最小限の運用ルール。

  • 再作成を必要とするパラメータ( delete-stackcreate-stack による再作成):

    • AlarmFunction(Lambda 名)
    • ExistingLambdaRoleArn(空 ⇄ ARN の切替はロール作成条件を変える)
    • SBCLogGroupName(MetricFilter の監視対象を変更すると再作成が発生する場合がある)
  • アップデイトで反映:
    SystemName, Environment,AlarmFilterPattern, MonitoringPeriod, PESQThreshold, AlarmNotificationEmail

その他

Lambda環境変数

以下はCloudFormation パラメータとデプロイ時に Lambda 実行環境に注入される環境変数の対応表です。

CloudFormation パラメータ / リソース Lambda 環境変数 説明
SystemName SYSTEM_NAME メール件名に使用。
Environment ENVIRONMENT 環境名。メール件名に使用。
AlarmNotificationEmail ALARM_NOTIFICATION_EMAIL 通知先メールアドレス(SNS サブスクリプション確認が必要)。
SBCLogGroupName LOG_GROUP_NAME 監視対象 CloudWatch Logs の LogGroup 名。
AlarmFilterPattern ALARM_FILTER_PATTERN MetricFilter と同一のフィルターパターン。シェルでクォートして指定。
MonitoringPeriod PERIOD Lambda 内で int() して使用する秒数。CloudWatch の評価間隔と連動するため 60 に固定。
PESQThreshold PESQ_THRESHOLD Lambda 内で float() して使用する閾値(例: 2.6)。
SNS Topic(出力/リソース) SNSTopic テンプレートで作成される SNS Topic の ARN が注入される(Topic ARN)。

Files

clipboard-202604240826-mcuwo.png (37.8 KB) clipboard-202604240826-mcuwo.png Redmine Admin, 04/24/2026 08:26 AM
clipboard-202604240826-mcuwo.png
Edit Actions

Also available in: Atom PDF