第7章 Red Hat Developer Hub と Amazon Web Services (AWS) の統合
Red Hat Developer Hub アプリケーションを Amazon Web Services (AWS) と統合すると、AWS エコシステム内のワークフローを合理化できます。Developer Hub リソースを AWS と統合することで、ツール、サービス、ソリューションの包括的なスイートにアクセスできるようになります。
AWS との統合には、次のいずれかの方法を使用して Elastic Kubernetes Service (EKS) の Developer Hub のデプロイメントが必要です。
- Helm チャート
- Red Hat Developer Hub Operator
7.1. Red Hat Developer Hub の Amazon Web Services (AWS) によるモニタリングおよびロギング リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Developer Hub では、Amazon Web Services (AWS) の統合により、モニタリングおよびロギングが容易になります。リアルタイム監視のための Amazon CloudWatch や、包括的なログ記録のための Amazon Prometheus などの機能を使用すると、AWS インフラストラクチャーでホストされている Developer Hub アプリケーションの信頼性、スケーラビリティー、およびコンプライアンスを確保できます。
この統合により、Red Hat エコシステム内でアプリケーションを監視、診断、改良できるようになり、開発と運用のプロセスが改善されます。
7.1.1. Amazon Prometheus によるモニタリング リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Developer Hub は、実行中のアプリケーションに関連する Prometheus メトリクスを提供します。EKS クラスターで Prometheus を有効化またはデプロイする方法の詳細は、Amazon ドキュメントの Prometheus metrics を参照してください。
Amazon Prometheus を使用して Developer Hub を監視するには、Prometheus ワークスペース用の Amazon マネージドサービスを作成し、Developer Hub Prometheus メトリクスの取り込みを設定する必要があります。詳細は、Amazon ドキュメントの Create a workspace セクションおよび Ingest Prometheus metrics to the workspace セクションを参照してください。
作成したワークスペースに Prometheus メトリクスを取り込んだら、特定の Pod アノテーションに基づいて、Pod からデータを抽出するためのメトリクススクレイピングを設定できます。
7.1.1.1. モニタリング用のアノテーションの設定 リンクのコピーリンクがクリップボードにコピーされました!
Helm デプロイメントと Operator がサポートするデプロイメントの両方で監視用のアノテーションを設定できます。
- Helm のデプロイメント
backstage Pod に監視用のアノテーションを付けるには、
values.yamlファイルを次のように更新します。upstream: backstage: # --- TRUNCATED --- podAnnotations: prometheus.io/scrape: 'true' prometheus.io/path: '/metrics' prometheus.io/port: '7007' prometheus.io/scheme: 'http'- Operator がサポートするデプロイメント
手順
Operator の管理者として、デフォルト設定を編集して、次のように Prometheus アノテーションを追加します。
# Update OPERATOR_NS accordingly OPERATOR_NS=rhdh-operator kubectl edit configmap backstage-default-config -n "${OPERATOR_NS}"ConfigMap で
deployment.yamlキーを見つけて、次のようにアノテーションをspec.template.metadata.annotationsフィールドに追加します。deployment.yaml: |- apiVersion: apps/v1 kind: Deployment # --- truncated --- spec: template: # --- truncated --- metadata: labels: rhdh.redhat.com/app: # placeholder for 'backstage-<cr-name>' # --- truncated --- annotations: prometheus.io/scrape: 'true' prometheus.io/path: '/metrics' prometheus.io/port: '7007' prometheus.io/scheme: 'http' # --- truncated ---- 変更を保存します。
検証
スクレイピングが機能するかどうかを確認するには、以下の手順を実行します。
次のように、
kubectlを使用して Prometheus コンソールをローカルマシンにポート転送します。kubectl --namespace=prometheus port-forward deploy/prometheus-server 9090-
Web ブラウザーを開いて
http://localhost:9090に移動し、Prometheus コンソールにアクセスします。 -
process_cpu_user_seconds_totalなどの関連メトリクスを監視します。
7.1.2. Amazon CloudWatch ログを使用したロギング リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Developer Hub 内のロギングは、winston ライブラリー に依存します。デフォルトでは、デバッグレベルのログは記録されません。デバッグログをアクティブにするには、Red Hat Developer Hub インスタンスで環境変数 LOG_LEVEL を debug に設定する必要があります。
7.1.2.1. アプリケーションログレベルの設定 リンクのコピーリンクがクリップボードにコピーされました!
Helm デプロイメントと Operator がサポートするデプロイメントの両方で、アプリケーションログレベルを設定できます。
- Helm のデプロイメント
ロギングレベルを更新するには、Helm チャートの
values.yamlファイルに環境変数LOG_LEVELを追加します。upstream: backstage: # --- Truncated --- extraEnvVars: - name: LOG_LEVEL value: debug- Operator がサポートするデプロイメント
次のように、カスタムリソースに環境変数
LOG_LEVELを含めることで、ロギングレベルを変更できます。spec: # Other fields omitted application: extraEnvs: envs: - name: LOG_LEVEL value: debug
7.1.2.2. Amazon CloudWatch からのログの取得 リンクのコピーリンクがクリップボードにコピーされました!
CloudWatch Container Insights は、Amazon EKS のログとメトリクスをキャプチャーするために使用されます。詳細は、Logging for Amazon EKS ドキュメントを参照してください。
ログとメトリクスをキャプチャーするには、Amazon CloudWatch Observability EKS アドオンをクラスターにインストールします。Container Insights のセットアップ後、Logs Insights または Live Tail ビューを使用してコンテナーログにアクセスできます。
CloudWatch は、すべてのコンテナーログが統合されるロググループに、次のように名前を付けます。
/aws/containerinsights/<ClusterName>/application
以下は、Developer Hub インスタンスからログを取得するためのクエリーの例です。
fields @timestamp, @message, kubernetes.container_name
| filter kubernetes.container_name in ["install-dynamic-plugins", "backstage-backend"]