ACR(Azure Container Registry)に保存されているイメージの世代管理をしたい

ACRのイメージが溜まるのが気になるので、古いモノ削除したいなと思って調べてみたら以下のMicrosoftの公式ページにまとまっていました。 ただ、記載があるのは、タイムスタンプである期間より古いものとか、タグの付いてないものを削除する手順でした。今回…

90歳超えた祖母のところにiPadとポケットWiFi置いたら色々捗った

介護施設に入っている90歳を超える祖母がいるのですが、休日には家族でお昼買っていって曾孫見せながら、一緒にご飯食べたりしています。話を聞くと日中はテレビばかりで退屈することがよくあるようです。 そんな祖母の一番の楽しみは曾孫の成長を見ることの…

TerraformでLinux Azure VMにHeartbeatの死活監視を組み込む

タイトルの件、検索してもあまり見つからなかったので書き残しておきます。 いきなりTerraformの定義です。ドキュメントを元に作ってます。 www.terraform.io variable "azure_subscription_id" {} variable "azure_tenant_id" {} variable "mail_address" {…

AKSやVMで複数マネージドIDに紐付けるとIdentity not foundとなり認証できなくなる件

結論 事象 事象の深掘り 原因を調査 Addon設定前 Addon設定後 最後に 参考URL 結論 複数のマネージドIDを紐付けている時には、認証時にどのマネージドIDを利用するか指定する必要があります。 こう書くと当たり前の話ですが・・ハマりました。 以下の例ではA…

Kubernetes KEDAのログレベルを変更する

KEDAは常時起動でポーリングしQueue等をチェックしているので、結構なログの量になります。 現時点でログのレベルは debug, info, error の3つが設定可能で、デフォルトはinfoとなっています。 https://github.com/kedacore/keda#keda-operator-logging この…

Azure PipelinesでAKSプライベートクラスタにデプロイを行う

AKSはAPIサーバーへの通信をプライベートに限定するプライベートクラスタを構築することが可能です。 ただしDevOpsでCI/CD組もうとすると通常のAKSクラスタだと簡単に統合できたところが、プライベートクラスタだと上手くいきません。(API叩けないので当然で…

WSLで777となったファイルやディレクトリをchmodでumaskの値に一括変更

小ネタです。 経緯 何も設定していないWSL上で普通のLinuxみたいに開発していたらパーミッションが 777 になってしまいます。 これを避ける設定として以下のような設定があります。 wsl.conf を設定して、 $ cat <<EOF | sudo tee -a /etc/wsl.conf [automount] options = "metadata" EOF WSLを再起動。 > wsl --shutdown PC交換後にこれを忘れてい</eof>…

kustomizeのvarsを使って環境毎の変数をKubernetesの定義に埋め込んでみる

KubernetesのYAMLを環境毎のに分ける時にkubectlに標準で入っているkustomizeを使ってるのですが、サンプルなどに書かれている patchesStrategicMerge では以下のようなYAML内の値に変数を埋め込めないな。と考えていました。 kustomizeのリポジトリを見てい…

Azure Kubernetes ServiceのPod上でkubectlコマンドをマネージドID認証して実行

AKSでもマネージドIDが使えるようになったことで、KubernetesのPodから定期ジョブなどでkubectlを実行したい時にAzure CLIで認証できるようになりました。 前提 コンテナイメージをビルド ENTRYPOINTのスクリプト イメージのビルド ACRにイメージをビルド Ku…

Azureリソースのマネージド ID(旧MSI)の権限をCURLでREST APIを実行して検証する

最近、AKSも対応したマネージド ID(旧MSI)です。これで認証情報をローカルに持たなくてもAPIが叩けるようになりました。 docs.microsoft.com 権限の検証はAzure CLIやSDKでも検証できますが、ここでは手っ取り早くcurlで検証する方法を記載します。 仮想マシ…

エンジニアのリモートワーク・在宅勤務における腰痛対策の例

東京に出るまで片道2時間以上かかるところに住んでいることもあり、コロナ禍に関係無く、ここ1年半くらいリモートワーク中心のワークスタイルでやってきています。 リモートワークメインになって立って歩くことが激減しました。そこでダメージが溜まるのが腰…

TerraformでAzure DevOpsをプロビジョニングする

タイトルの通り、Terraform使ってAzure DevOpsをプロビジョニングする方法です。 前提 組織登録 Personal Access Tokenの取得 Terraform定義準備 Terraformの定義の準備 Azure DevOps Providerのインストール Terraformの実行 スキーマの確認 前提 組織登録 …

KEDAを使ってServiceBus Queueに合わせてKubernetesジョブをスケールする

KEDAは「Kubernetes-based Event-Driven Autoscaling」の略で、イベントをトリガーとしてKubernetesのデプロイを管理することを目的としたCRD(Custom Resource Definitio)で、イベントを使ってpodを0~nにスケールイン・アウトできる機能です。 KEDA is a Ku…

Azure Kubernetes ServiceのPodからManaged identities(旧MSI)認証でKey Vaultの情報を取得する

Key Vaultに保存した情報をAKS上のPodから取得するような要件は良くあると思います。でもKey Vaultへの認証をどうしたものかと思っていました。Service Principal使えば良いのですが、AKSでもMSIを使えたら良いなと思い調べていたところ、以下の情報がドキュ…

Azure Kubernetes Serviceデプロイしたらvirtual-nodeが機能しなかったので対応メモ

virtual-nodeアドオンは、Azure Container InstancesをAKS(Azure Kubernetes Service)の仮想ノードとして利用できる便利な機能です。 azure.microsoft.com Azureのウィザードで作成している分には問題無く動いていたのですが、環境構築をTerraform化した際に…

Google Cloud Certified Professional Cloud DevOps Engineerを取得してきました

Google Cloud Certified Professional Cloud DevOps Engineerを取得してきました。 試験情報 試験内容 ここは勉強しておいた方が良い これでGCP 6冠 試験情報 試験時間 2時間 問題数 50問 言語 英語 模擬試験も、申し込みも英語は英語用のリンクからの方が辿…

「しくみがわかるKubernetes~Azureで動かしながら学ぶコンセプトと実践知識」を読んだ

今度、Kubernetes使うので、復習としてこちらの書籍読みました。 しくみがわかるKubernetes Azureで動かしながら学ぶコンセプトと実践知識作者:阿佐 志保,真壁 徹発売日: 2019/01/23メディア: 単行本(ソフトカバー) 構成 目次は以下でした。 第1部 導入編 …

MinikubeでACR(Azure Container Registry)を使う

MinikubeからACRにアップロードしたコンテナイメージを利用する方法です。 変数設定 ACRの準備 Service Principalの作成と認証情報取得 Minikubeに認証情報の登録 その他 認証情報を更新する Dockerでログインしてみる 設定の確認 参考URL 変数設定 Azureに…

WSL2上のDockerでSQL Server実行してSSMSで繋ぐまで

前提 SQL Server起動 sqlcmdで接続 SSMSから接続 参考URL SQL Serverの動作確認のためにWSL2のDocker上でSQL Server起動して、SQL Server Management Studio (SSMS)で接続するところまでです。 前提 WSL2とDockerが入っていること SSMSがインストールされて…

IP制限かかっているS3バケットにAthenaでアクセスする

IP制限されたS3バケットポリシーの例 Athenaからのアクセス方法 方法① IAMロールをホワイトリストに登録(userid) ポイント 考慮点 方法② Athenaからのアクセスをホワイトリストに登録(CalledVia) ポイント 考慮点 S3では、以下の記事のようなリソースポ…

TableauからAthenaにIAMロールで接続するためJDBC利用してみる

最初に 前提 設定 TDCファイル作成(Tableau Datasource Customizatio) JDBC接続文字列作成 TableauからAthenaに接続してみる 最初に TableauからAthenaに繋ぐウィザードを立ち上げると、Access KeyとSecret Access Keyを求められます。 やはりロールで繋ぎた…

AZ-400 Microsoft Azure DevOps Solutions に合格してきた

プロジェクトの隙間で少し時間ができたのでAZ-203と併せて取得してきました。これでMicrosoft Certified: Azure DevOps Engineer Expert認定を取得できました。 ロードマップ上はここに当たります。AzureはExpertが二つあるのですが、その片割れです。 引用…

SAP ERP のデータをRFC経由でPython+Pandasに読み込む

ERPというか、ABAPインスタンスのデータをPandasに取り込む方法です。 実は昔、以下の記事で、Pythonからの接続については書いたのですが、その時から時間経ったのでPythonからの接続と、Pandasにデータ読み込むところまで進めてみました。 PythonからSAP処…

AZ-203 Developing Solutions for Microsoft Azureを合格してきた

AZ-203を合格してきました。これでMicrosoft Certified Azure Developer Associateらしいです。 実は目的はAZ-400なのですが、その前提条件になっているので受けてきました。Azureは上位認定受けるのに複数試験受けないといけないので、結構疲れます。 勉強…

BigQueryのQuotasやクエリ課金を別々に制御するためAPIリクエスト用のプロジェクトを分けてみる

はじめに やりたいこと 準備 リクエスト用プロジェクトの割り当て変更 Tableauの場合 課金 参考 はじめに BigQueryの利用をコントロールする方法を調べています。BigQueryのAPIについてQuotas(割り当て)を制御することで、ある程度の制御できます。もう少し…

google-cloud-bigqueryのlist_jobsがUnknownJobを返してきてハマってしまった

小さいハマりなのですが、具体的にはGCP BigQueryのPythonクライアントライブラリである、google-cloud-bigqueryのlist_jobsが手元とDataflowのサーバ側で挙動が違う状態に遭遇しました。 デバッグログを見ながらエラーのポイントは判明しました。list_jobs…

BigQueryの課金情報が含まれるクエリ履歴をテーブルにロードしてSQLで分析できるようにする

クエリの履歴情報等を取得したい時はBigQueryのジョブ履歴から情報拾えます。課金されるバイト数などもあり、後からレポートしたいデータも入っています。 bqコマンドなら bq ls -j -a で一覧して bq --format=prettyjson show -j <jobid> すればJSON形式で取得でき</jobid>…

GCPの割り当て(クオータ・Quotas)をAPIから変更する情報見つけたのでやってみる

BigQueryの割り当て(クオータ・Quotas)をAPIから変更する方法を探していましたが、GCP公式ドキュメント見てもコンソールでの作業ばかりしか記載が見つかりません。 cloud.google.com GCPの公式ドキュメントはほとんどの項目でgcloud等で設定するパターンが書…

Cloud SpannerからAvro経由でBigQueryにデータのExport Import

SpannerのデータをBigQueryに取り込む方法です。基本は以下の2つの内容を組み合わせます。 cloud.google.com cloud.google.com 簡単に図にするとこんな感じです。 Dataflowジョブの登録 bqコマンドでAvroをロード Dataflowジョブの登録 今回利用するのはGoo…

Terraformで「dial tcp connection refused」が出たら並列数を疑ってみる

何度も実行したTerraformの定義で、別の環境から実行したらエラーが出ているという話を聞いて調べてみた、エラー対応メモです。 内容としては以下のようなメッセージです。「terraform plan」で発生します。 何度か目の前で叩いてもらうと、エラーが出るサー…