ついに来た!HCP Vault Dedicated で Azure に動的シークレットが使えるぞ!

全 HCP Vault Dedicated1 ユーザの皆さま、こんにちは。 ついに……ついに来ましたよ……。 HCP Vault Dedicated から Azure のプライベート DNS ゾーンを参照できる日が!!! 正直どれだけの人が待っていたかは分かりませんが、この興奮をどうしても伝えたくて、今回のアップデートについて書いています。 「HCP Vault Dedicated から Azure のプライベート DNS ゾーンを参照できる」と言っても、具体的に何ができるようになったか? 簡単に言うと「HashiCorp Vault の目玉機能である動的シークレット (Dynamic Secret) を Azure 環境で使えるようになった」ということです。 その他にも、VSO (Vault Secrets Operator) で Kubernetes 認証が使えるようになるなどの恩恵もあります。 いや、今までも使えたでしょ?という意見もあるかもですが、多くの場合では実質的に使えない状態でした。 それはどういうことで、どうして今回のアップデートでそこまで興奮しているのかを伝えていきます。 Azure サービスにプライベート アクセスしよう まずは Azure のプライベート アクセスについておさらいです。 Azure のほとんどのサービスにはパブリックなアクセスを拒否して、プライベート ネットワーク経由でのアクセスに制限する機能が備わっています。 プライベート ネットワーク経由でサービスにアクセスすることを実現するために、Azure では「プライベート エンドポイント」という仕組みが提供されています。 プライベート エンドポイントを作成すると、同時にプライベート DNS ゾーンが作られて対象リソースの DNS 名がプライベート DNS ゾーンに登録されます。 対象リソースにアクセスする際には、そのプライベート DNS ゾーンを参照することでパブリック アクセスが制限された Azure リソースにプライベート ネットワーク経由でアクセスできるようになります。 もちろん、クライアントはプライベート エンドポイントがある Azure VNet に繋がっている必要があります。 ...

December 21, 2025 · 3 min · @nnstt1

Azure Database for MySQL の レプリケーションラグの見え方

前回に続いて Azure Database for MySQL の貯めてたネタの放出回。 Azure Database for MySQL のレプリケーションラグ Azure Database for MySQL では Azure Portal の “Replication” という画面で読み取りレプリカのレプリケーションラグを確認できる。 あるとき、レプリカを作ってこの画面を見ながらラグが無くなるのを待っていた。 だけど、いつまで経ってもラグの時間が変わらない。 詳しくラグを見るためメトリクスの ”Replication Lag in Seconds" を見ると、こちらはちゃんとラグが減っていた。 なんなら 0 秒になっているタイミングすらある。 なのに “Replication” の画面では相変わらず。 ドキュメントを調べたり、Microsoft Learn MCP Server を入れた Claude さんに聞いたりしてみたけど、理由は分からず。 とはいえ “Replication” 画面のラグは変化することもある。 そこで「一定期間の最大値とか平均値を表示してるのでは?」と思い、“Replication” 画面とメトリクスの “Replication Lag in Seconds” を並べてラグが変化するタイミングを待ってみると、すぐに判明した。 “Replication” 画面に表示されるラグは「過去 1 時間の “Replication Lag in Seconds” の最大値」を表示しているようだった。 検証 個人サブスクリプションの小さい環境で試したので大きなラグは出てないけど、1 時間以内の最大ラグが 1 秒のメトリクスの画面。 ...

November 7, 2025 · 1 min · @nnstt1

Azure Database for MySQL の Location Based Capabilities API を使って SKU 情報を取得する

久しぶりに Azure の話。 Azure Database for MySQL はインスタンスの SKU によって利用できる vCore 数やメモリサイズが異なる。 SKU は Standard_B1ms や Standard_D2ds_v4 などの名前。 それぞれの SKU に対して、どのような vCore 数やメモリサイズが利用できるか確認したい場面がある。 そんなときに Location Based Capabilities API が便利。 Location Based Capabilities - List - REST API (Azure MySQL) MySQL サービスの詳細 - 特定のサブスクリプション内の指定した場所にある機能を取得します。 learn.microsoft.com Location Based Capabilities API を使う Location Based Capabilities API は Azure CLI からも利用可能。 以下のコマンドで特定のリージョンに対して利用できる SKU の一覧を取得できる。 az mysql flexible-server list-skus --location japaneast このコマンドを実行すると「ゾーン → サービスレベル → バージョン → SKU」の順でネストされた配列が返ってくる。 大量に出てくるので、大幅に省略したものを載せておく。 ...

November 6, 2025 · 2 min · @nnstt1

Atlassian 公式のリモート MCP サーバで Confluence/Jira を操作する

普段、仕事ではドキュメント管理に Confluence を使っている。 全社的には Google ドキュメントも使っているけど、見た目やドキュメントの検索のしやすさを考えると Confluence のほうが好み。 だけどあまり活用も整理もされてないのが悩み。 GitHub Copilot とかでなんとかできないかなぁと思っていたところ、Atlassian 公式の Confluence と Jira を GitHub Copilot Agent mode や Claude Desktop から扱えるリモート MCP サーバが公開されていることに気づいた。 アトラシアン、リモートMCPサーバーを発表 | Atlassian Japan 公式ブログ | アトラシアン株式会社 www.atlassian.com この発表記事から辿れるページを見てもやり方わからなかった。 そのせいでコメント欄には野良 MCP を使った方法がたくさん投稿される始末。 ドキュメント管理サービスを提供しているならドキュメントから用意してほしいところだけど、リモート MCP サーバの設定方法は他の記事に載っていた。 Atlassian Remote MCP Server beta now available for desktop applications Hi everyone, we’re thrilled by the excitement around the Atlassian Remote MCP Server beta that we launched recently. Many of you shared the feedback that it would be helpful to be able to use the MCP server from your IDEs or other desktop apps. Our team has been hard at work to address this, and to... community.atlassian.com ということで Atlassian 公式の MCP サーバがどんな風に使えるか試してみた。 ...

May 24, 2025 · 3 min · @nnstt1

Azure Developer CLI (azd) は HCP Terraform でステート管理をまだできない

最近、個人的に Azure Developer CLI (azd) という超便利ツールが熱い。 azd up コマンドでインフラ含めて Azure Functions とかの実行環境をサクッと作れて、書いたコードをすぐに動かせる。 コードもテンプレートがあるのでゼロから書く必要がない。 たぶん azd だけでは自分に刺さらなかった。 Functions で Flex Consumption が使えるようになったり、生成 AI のおかげで自分でもそれっぽいコードを書けたり、色々条件が重なったからこそ今 azd の便利さの片鱗を味わえている。 そんな azd はアプリケーション実行環境の土台となる Azure リソースを Bicep を使ってプロビジョニングする。 そして、まだベータ版だが Terraform も使える。 Terraform を使うということはステート管理の話が出てくる。 当然 azd もステート管理を考慮していて、デフォルトのローカルステート(ローカル環境にステートファイルをそのまま置くやつ)に加えて、リモートステートとして Azure Storage にステートファイルを格納できる。 普段 HCP Terraform を使っている身としては「azd のステートファイルを HCP Terraform に格納できるのか」というのが気になるところ。 結論から言うと今はまだ azd で HCP Terraform にステートファイルを格納できなかった。 今回はそのことについて書く。 確認に使った各ツールのバージョンは次の通り。 azd v1.13.0 terraform v1.11.0 要約 azd で HCP Terraform を使えない理由は以下のとおり。 HCP Terraform は「VCS-driven」と「CLI-driven」という連携方法がある(「API-driven」は割愛) Plan ファイルを保存する azd では「VCS-driven」は使えない ステートロックが無効化されている azd では「CLI-driven」は使えない そもそも azd で Terraform を使うためにはいくつか設定が必要になるが、詳しくは Microsoft の公式ドキュメントを見てもらいたい。 ...

March 11, 2025 · 3 min · @nnstt1

HCP Terraform で複数アカウントを使い分ける方法

仕事柄、プロジェクトごとに複数アカウントを切り替えて HCP Terraform (旧称 Terraform Cloud) を使っている。 HCP Terraform ではローカル環境などで terraform plan する前に terraform login で Plan を実行するアカウントのトークンを取得しておく必要がある。 しかし、terraform login で取得したトークンは 1 アカウント分しか保存されないので、アカウント切り替え時に都度トークンを取得する手間が発生する。 そこで、HCP Terraform のアカウントを使い分ける方法を紹介する。 要約 環境変数 TF_CLI_CONFIG_FILE を使用して CLI 設定ファイルを切り替え プロジェクトごとに .terraformrc ファイルを用意 direnv で自動的に環境変数を切り替え オプションとして ghq + peco と組み合わせて効率化 HCP Terraform のトークン Terraform ではコマンド実行時に CLI 設定ファイルが読み込まれる。 デフォルトでは $HOME/.terraformrc と $HOME/.terraform.d/credentials.tfrc.json というファイルを読み込む。 これらのファイルに設定されているトークンが HCP Terraform の認証に使われるが、使われるトークンの優先順位は次のようになる。 $HOME/.terraform.d/credentials.tfrc.json $HOME/.terraformrc .terraform.d/credentials.tfrc.json .terraform.d/credentials.tfrc.json は HCP Terraform のトークンを格納するファイル。 terraform login で取得されたトークンがこのファイルへ自動的に登録される。 ファイルの中身は以下のようになっており、HCP Terraform のドメイン app.terraform.io または Terraform Enterprise (HCP Terraform のセルフホスト版) のドメインが設定される。 ...

February 17, 2025 · 4 min · @nnstt1

OpenShift に New Relic Integration をデプロイするときは kube-state-metrics に注意

「New Relic Kubernetes integration」というエージェントを使うことで Kubernetes のメトリクスを簡単に New Relic へ送ることができる。 Introduction to the Kubernetes integration | New Relic Documentation Kubernetes integration into New Relic: features, requirements, and getting started. docs.newrelic.com この Kubernetse integration は OpenShift にも対応しているが、kube-state-metrics には注意が必要。 何が起こるか:nrk8s-ksm で Warning が出続ける Kubernetes integration は Helm を使ってインストールでき、色々はリソースがデプロイされる。 そのうちの一つに nrk8s-ksm というコンポーネント (Deployment) があるが、デフォルト設定で Kubernetes integration をインストールすると、この nrk8s-ksm が次の Warning メッセージを出し続けてしまう。 Error populating KSM metrics: populate errors:, querying KSM: getting filtered metric families: error calling prometheus exposed metrics endpoint. Got status code: 400 どうすればよいか:参照する kube-state-metrics の namespace を指定する Kubernetes integration を Helm でインストールするとき、次の values.yaml が使われる。 ...

January 27, 2025 · 2 min · @nnstt1

Hugo で画像をポップアップ表示させる

このブログは Hugo に PaperMod というテーマを入れている。 このテーマは画像の横幅が決まっているため、以下のように大きいサイズの画像を貼り付けると画像の内容が分かりづらくなってしまう。 どうにかできないかと調べたら Lightbox という JavaScript ライブラリを使えば画像をポップアップ表示できそうということが分かった。 こちらのサイトを参考に Hugo に Lightbox を入れていく。 Adding lightbox to Hugo julianstier.com Lightbox 導入 準備 Lightbox を GitHub のリリースページからダウンロード Releases · lokesh/lightbox2 THE original Lightbox script (v2). Contribute to lokesh/lightbox2 development by creating an account on GitHub. github.com CDN もあるらしいけど今回は一旦ローカル保存 lightbox2 - Libraries - cdnjs - The #1 free and open source CDN built to make life easier for developers Lightbox is small javascript library used to overlay images on top of the current page. It's a snap to setup and works on all modern browsers. - Simple. Fast. Reliable. Content delivery at its finest. cdnjs is a free and open-source CDN service trusted by over 12.5% of all websites, serving over 200 billion requests each month, powered by Cloudflare. We make it faster and easier to load library files on your websites. cdnjs.com 必要なファイルの配置 CSS /assets/css/extended/ に Lightbox の CSS ファイル lightbox.min.css を配置 JavaScript /static/js/ に Lightbox の JS ファイル lightbox.min.js を配置 テーマのヘッダーに CSS を追加 PaperMod の /themes/PaperMod/layouts/partials/head.html を /layouts/partials/head.html にコピーして以下を追加 ...

December 27, 2024 · 3 min · @nnstt1

OpenShift Logging でログを New Relic に転送する

OpenShift Container Platform では「OpenShift Logging」という Operator をインストールしてロギングの機能を追加できる。 この OpenShift Logging を使ってコンテナのログを New Relic に転送できるか試した。 バージョンの仕様変更 執筆時点の OpenShift Logging の最新バージョンは 6.1.0 だが、6.0.0 になったタイミングで仕様変更が入っている。 特に ClusterLogging.logging.openshift.io と ClusterLogForwarder.logging.openshift.io という API が無くなり、ClusterLogForwarder.observability.openshift.io に統一された。 今回試したのは 5.9.9 の環境なのでログ転送に ClusterLogForwarder.logging.openshift.io を使っているが、ドキュメントを見る限り 6.0.0 以降の ClusterLogForwarder.observability.openshift.io でも同じように動きそう。 Vector OpenShift Logging では Vector というログやメトリクスなどの可観測性データを収集・加工・送信するツールをコレクターとして使っている。 OpenShift Logging をインストールすると DaemonSets として collector がデプロイされて、Pod の中で Vector コンテナが動いてログを集めて転送する。 この Vector が New Relic 宛のログ転送をサポートしていれば可能かも、ということで調べてみるとベータ版だけどドキュメントが見つかった。 New Relic sink Deliver events to New Relic vector.dev ドキュメント見る限り、Vector に New Relic 用の設定ができればログ転送できそう。 ...

December 14, 2024 · 2 min · @nnstt1

Azure ポータルに表示される AKS の API サーバーアドレスの謎を追う

こちらは Microsoft Azure Advent Calendar 2024 の 6 日目の記事です。 AKS の API サーバーアドレスの謎 Azure ポータルでいろいろな AKS クラスタの状態を眺めていたところ、AKS の概要ページにある 「API サーバーアドレス」に表示されている内容がクラスタによって異なることに気づきました。 当然クラスタごとに一意となる文字列は異なるのですが、ドメイン部分が大きく異なります。 以下は状況を再現したクラスタのスクショです。 表示されている API サーバーアドレスには hcp.<location>.azmk8s.io と 00000000-0000-0000-0000-000000000000.privatelink.<location>.azmk8s.io の 2 種類あります。 クラスタ A の API サーバーアドレス aks-public-aks-public-fqdn-c209fd-mytdol9d.hcp.japaneast.azmk8s.io クラスタ B の API サーバーアドレス aks-public-aks-public-fqdn-c209fd-rzz0g24p.a47e9794-80a7-4088-9a92-3706e050f9cc.privatelink.japaneast.azmk8s.io 両クラスタともプライベート AKS クラスタとして構築しています。 パブリックアクセスはできないので、VPN などを使っていない端末では Azure ポータルからクラスタのリソースを見ようとしてもエラーになってしまいます。 同じプライベート AKS クラスタなのにどうして差が生まれてしまうのでしょうか? 結論から AKS の「パブリック FQDN enablePrivateClusterPublicFqdn」という設定によって API サーバーアドレスに表示される内容が変わります。 プライベート Azure Kubernetes Service (AKS) クラスターを作成する - Azure Kubernetes Service セキュリティとネットワーク制御が強化されたプライベート Azure Kubernetes Service (AKS) クラスターを作成する方法について説明します。 learn.microsoft.com Azure CLI では --disable-public-fqdn オプションをつけて新規クラスタを作成、または既存クラスタを更新することで「パブリック FQDN」を無効化できます。 つまりデフォルトは有効状態です。 ...

December 6, 2024 · 4 min · @nnstt1