Bug #15
openEndEnd Quality Check デプロイメント手順
0%
Description
EndEnd Quality Check Deployment¶
version 02: 2026-04-23
概要¶
EndEndツールのコールログに記録されるPESQ値をチェックし閾値未満である場合にメール通知を行うLambda関数をデプロイ。
CloudFormation テンプレート、endend-quality-check.yml を使用してデプロイ。

デプロイターゲット¶
2026年4月時点では以下のAWSアカウントにデプロイ。
-
IPVC-TOKYOAccountID :311376832000 -
IPVC-OSAKAAccountID :381491903436MFAアクセス
作成されるリソース・権限他¶
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>、NamespaceEC2/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:
-
SystemNameとEnvironmentはメールの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のパラメータ一覧。ExistingLambdaRoleArn と PermissionBoundaryArn の扱いに注意(後述)。
| パラメータ | 必須 | デフォルト | 説明 / 備考 |
|---|---|---|---|
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:CreateRoleとiam:PutRolePermissionsBoundary(または十分な IAM 権限)が必要。
Lambda関数用のロールがすでにある場合と、新規に作成する場合でparms.jsonの設定を変更する必要がある。
更新時の反映方針(運用ルール)¶
テンプレートやパラメータを変更する際の最小限の運用ルール。
-
再作成を必要とするパラメータ(
delete-stack→create-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