Flex Gateway新着情報
Governance新着情報
Monitoring API ManagerMule アプリケーションが必要に応じて自動的にデプロイメントレプリカをスケールアップまたはスケールダウンして CPU 使用量に対応できるように CPU ベースの水平自動スケーリングを設定します。
この機能の対象は、新しい価格設定およびパッケージモデルにオプトインしている一部のお客様のみです。詳細は、Anypoint Platform 価格設定を参照してください。 |
Kubernetes では、水平ポッド自動スケーリング (HPA) により、需要に合わせてワークロードをスケーリングするために、ワークロードリソースが自動的に更新されます。水平スケーリングでは、負荷の増加に対応してより多くのポッドが自動的にデプロイされます。詳細は、 Kubernetes ドキュメントを参照してください。
水平ポッド自動スケーリングで設定されたアプリケーションには、グローバルリソースプールの制限が適用されません。
CloudHub 2.0 にデプロイされた Mule アプリケーションの水平自動スケーリングを設定する手順は次のとおりです。
Anypoint Platform から、[Runtime Manager] > [Applications (アプリケーション)] を選択します。
[Deploy application (アプリケーションをデプロイ)] をクリックします。
[Runtime (ランタイム)] タブで、[Enable CPU Based Horizontal Autoscaling (CPU ベースの水平自動スケーリングを有効化)] ボックスをオンにします。
最小と最大の [Replica Count (レプリカ数)] を設定します。
最大 8 個 (Anypoint Integration Advanced パッケージや、Anypoint Platform の Platinum または Titanium サブスクリプションがある場合は最大 16 個) のレプリカを使用してアプリケーションをデプロイできます。
ドロップダウンメニューから [Replica Size (レプリカサイズ)] を選択します。
Anypoint Integration Advanced パッケージがある場合、[Micro (極小)]
、[Micro.Mem]
、[Small (小)]
レプリカサイズから選択できます。別の料金プランがある場合、[Micro (極小)]
または [Micro.Mem]
レプリカサイズを選択します。詳細は、「CloudHub 2.0 アプリケーションのデプロイメント」を参照してください。
[Deploy Application (アプリケーションをデプロイ)] をクリックします。
自動スケーリングイベントが発生し、水平自動スケーリングを設定している Mule アプリケーションがスケールアップされたら、アプリケーションの詳細ウィンドウで [View status (状況を表示)] をクリックして、[Scaling (スケーリング)] 状況を確認できます。[Applications (アプリケーション)] リストでアプリケーションの [Scaling (スケーリング)] 状況を確認することもできます。
スケールアップされたレプリカの起動と、アプリケーションのスケーリング元またはスケーリング先のレプリカ数を追跡するには、アプリケーションのログを確認します。
Anypoint Platform から、[Runtime Manager] > [Applications (アプリケーション)] を選択します。
自動スケーリングが設定されたアプリケーションの行をクリックします。
[Manage application (アプリケーションを管理)] をクリックします。
[Logs (ログ)] タブを選択します。
Info 8 minutes ago - 2023-11-08 14:35:01.466 PST - Runtime Manager
Application id:<app-ID> scaled UP from 1 to 2 replicas.
Info a minute ago - 2023-11-08 14:41:24.819 PST - Runtime Manager
Application id:<app-ID> scaled DOWN from 2 to 1 replicas. :
また、アクセス管理の [Audit Logs (監査ログ)] では、自動スケーリングイベントを追跡できます。アプリケーションデプロイメントのスケーリングが発生するたびに、製品が Runtime Manager、ユーザーが Anypoint Staff として監査ログがパブリッシュされます。このログでは、[Action (アクション)] は [Scaling (スケーリング)]
に設定され、[Object (オブジェクト)] はアプリケーション ID になっています。
次に、ログペイロードの例を示します。
{"properties":{"organizationId":"my-orgID-abc","environmentId":"my-envID-xyz","response":{"message":{"message":"Application id:my-appID-123 scaled DOWN from 3 to 2 replicas.","logLevel":"INFO","context":{"logger":"Runtime Manager"},"timestamp":1700234556678}},"deploymentId":"my-appID-123","initialRequest":"/organizations/my-orgID-abc/environments/my-envID-xyz/deployments/my-appID-123/specs/my-specID-456"},"subaction":"Scaling"}
MuleSoft は、お客様の Mule アプリケーションデプロイメントの 自動スケーリングポリシーを所有し、適用します。
CloudHub 2.0 にデプロイされるすべての Mule アプリケーションで使用される CPU ベースの HPA ポリシーは次のとおりです。
apiVersion: autoscaling/v2 kind: HorizontalPodAutoscaler metadata: name: my-app namespace: app-namespace spec: behavior: scaleDown: policies: - periodSeconds: 15 type: Percent value: 100 selectPolicy: Max stabilizationWindowSeconds: 1800 scaleUp: policies: - periodSeconds: 180 type: Percent value: 100 selectPolicy: Max stabilizationWindowSeconds: 0 maxReplicas: 3 metrics: - resource: name: cpu target: averageUtilization: 70 type: Utilization type: Resource minReplicas: 1 scaleTargetRef: apiVersion: apps/v1 kind: Deployment name: my-app
考慮すべき点をいくつか挙げます。
スケールアップは最長 180 秒おきに実行されます。水平自動スケーリングでは、設定された最大レプリカ数に達するまで、現在実行中のレプリカの最大 100% を追加できます。スケールアップの場合、安定化期間はありません。メトリクスでスケールアップが必要であることが示された直後に対象がスケールアップされます。
スケールダウンは最長 15 秒おきに実行されます。水平自動スケーリングでは、現在実行中のレプリカの最大 100% を削除できます。対象は許容される最小レプリカ数までスケールダウンされます。削除されるレプリカ数は、過去 1800 秒間の安定化期間に集計された計算に基づきます。
最小レプリカ数:
任意の時点で実行が保証されるレプリカの最小数。
スケールダウンポリシーによって、この数を下回るまでレプリカが削除されることはありません。
最大レプリカ数:
上限となるレプリカの最大数。スケールアップでこの数を超えるレプリカを追加することはできません。
スケールアップポリシーによってこの数を超えてレプリカが追加されることはありません。
HPA を有効にすると、アプリケーションが水平にスケーリングされるときにお客様に追加のフロー使用量が発生することがあります。予期しないスケーリングによる超過を避けるため、購入したフロー制限内に収まるように最大レプリカ数は慎重に設定してください。発生したフロー使用量は使用状況レポートで追跡できます。
Mule アプリケーションの水平自動スケーリングを成功させるために、パフォーマンスに関する次の考慮事項を確認してください。
CPU 使用量に基づいてスケーリングされる Mule アプリケーションは CPU ベースの HPA に適しています。次に例を示します。
非同期要求を使用する HTTP/HTTPS アプリケーション。
リバースプロキシ。
低レイテンシーで高スループットのアプリケーション。
DataWeave 変換。
APIkit ルーティング。
ポリシーを使用する API ゲートウェイ。
バッチジョブなどの並列処理が組み込まれていない非リエントラントアプリケーション、リエントランスやアプリケーション間の重複スケジューリングがないスケジューラーアプリケーション、大きな要求を使用する低スループット高レイテンシーのアプリケーションなどは、CPU ベースの HPA に適していません。