理系学生日記

おまえはいつまで学生気分なのか

AWS SDK + LambdaでAWSの前日コストをSlackに通知する

AWSを使っていると、変な使い方をしてると予算をオーバーしてしまいます。 このため、日次でAWS Cost Explorerを確認しているのですが、これはこれで面倒です。 面倒な行為というのはだいたい能動的な確認が求められるのから面倒であるので、 AWS Lambdaから…

自分のグローバルIPアドレスを知る

Azure Database for MySQLに自分のグローバルIPアドレスから接続したいというとき、グローバルIPをCMANで確認をしていました。 さすがに面倒になって、何か良い方法がないかなと思ったら、グローバルIPアドレスを返却してくれる様々なサービスがあることを知…

azurerm_mysql_databaseのcharset、collation指定は効果があるのか

TerraformでAzure Database for MySQLを構築する場合、必ず利用するであろうリソースがazurerm_mysql_databaseです。 このリソースはcharset、 collationが必須パラメータです。 それぞれ文字セット、照合順序を意味しており、MySQLを利用する方は気にしたこ…

Azure PipelinesでPull RequestをトリガーにCIを走らせる (または、CIトリガーとPRトリガーでの重複実行を抑止する)

Pull Requestが作成されたらCIを実行したい。こういったユースケースはよくあります。 Azure Pipelinesでもこの実現はできるのですが、この実現にはかなり癖があります。 結論 PR Triggerの設定は、azure-pipelines.ymlではなく、Azure ReposのBuild validat…

Azureの複数Subscriptionを扱う場合は頻繁にaz logoutすべき

あれ、これ本当なのか、という挙動になったのが複数Subscriptionを扱う場合。 例えば私のアカウント状況が以下のようになっているとします。 $ az account list | jq '.[] | { "env": .name, "mail": .user.name }' { "env": "Staging", "mail": "kiririmode…

Azure上のTerraform Backendに対してAD認証を行う

AzureをTerraformで管理する場合、TerraformのRemote Stateとして Azure Blob Storageを設定することになります。 Backend Type: azurerm - Terraform by HashiCorp ここで問題になるのはAzure Blob Storageに対する認証でしょう。 Azure Blob Storageの認証…

Azure Pipelinesのscriptではset -eする

Azure Pipelinesでは様々なPipeline用のタスクが用意されています。例えばMaven taskだったり、 Docker taskだったりです。 Build and release tasks この中で柔軟性が高いのはCommand Line taskや Bask taskでしょう。 例えばCommand Line taskでは、以下の…

例示用ドメインと例示用IPアドレス

rfc

ガイド上でサンプルのドメイン名を例示したい、テストデータでダミーのメールアドレスを登録したい、 ドキュメントでサンプルのIPアドレスを示したいといったケースがあります。 こう言ったときに記述するドメイン等は、記述時点では世界中に存在していなか…

Terraformで学ぶAzure Database for MySQL

Azure Database for MySQLをTerraformで構築してみます。 Terraformの構成 サーバとデータベース ネットワークアクセス制御 ファイアウォールルール VNETサービスエンドポイント 接続確認 インターネットからの接続 VNETからの接続 まとめ Terraformの構成 …

Azure PipelinesのService Connectionを使ってAzure Container RegistryのコンテナをPULLする

Azure Pipelinesにおいて、ジョブを動かすコンテナイメージをAzure Container RegistryからPULLしたい。 これを実行するとき、docker loginでACRにログインするんだろうなと考えていました。そうすると、ログイン用のクレデンシャルを保存しておかなければな…

Dockerイメージの`entrypoint`を複数引数のコマンドで上書きする

hashicorp/terraform:1.0.0のように、entrypointが指定されているコンテナイメージに対して、entrypointを上書きしたいケースがありました。 上書きするのが1引数ならdocker runに--entrypointを指定すれば良いです。 $ docker run --rm -it --entrypoint /b…

Azure PipelinesのジョブがInitialize Containersフェーズでuseradd Permission denied.で失敗する

Azure上でコンテナベースのジョブを作ったら、Initialize Containersフェーズでuseradd: Permission denied.というエラーが発生しました。 Try to create a user with UID '1001' inside the container. /usr/bin/docker exec dee61730d7328016d8d3f56d81cb0…

Azure Pipelinesでalpineベースのコンテナを使うとエラーになる

AzureでCIを行う場合はAzure Pipelinesを使うことになります。 また、最近のCIは都度同じ環境でCIを動かせるようにコンテナの上で実行するのがスタンダードです。 このため、開発しているプロダクトではalpineベースのコンテナでCIジョブを動作させていまし…

Terraform BackendのあるSubscriptionとは別のSubscriptionへリソースを構築する

SubScriptionによって環境分離を実現しようと考えています。つまり、Subscription1がQA環境、Subscription2がProd環境といった具合に。 このように各環境ごとにSubscriptionを分割し、それぞれをTerraformで管理しようとした場合、Terraform Backendをどの粒…

「Azureテクノロジ入門 2019」を読んだ

なかなか見えないAzureの全体像を把握するために読みました。 Azureテクノロジ入門 2019作者:佐藤 直生,久森 達郎,真壁 徹,安納 順一,松崎 剛,高添 修発売日: 2018/12/18メディア: Kindle版 構成 最近の悩み サービスカットで、Azureのさまざまな横断的に紹…

AzureでTerraform Backendを構成する

AzureをTerraformを使って管理する上で、Terraform BackendもAzure上に構成してみます。 AzureにおけるTerraform Backend Blob Storage ストレージアカウントの作成 実際にTerraformを実行してみる 参考文献 AzureにおけるTerraform Backend TerraformのBack…

マスクをつけていてもiPhoneロックを解除できるようになった

iPhoneのFace IDは便利な機能ではあるのですが、コロナ禍でマスクをつける時間が長くなると、Face IDでのアンロックはできなくなります。 これは非常に不便なところで、アンロックの都度いちいち手でiPhoneをアンロックするのはストレスでした。 この問題、i…

ようやくリモート会議環境を整えた

業務がリモートワーク主体になり、会議もリモート主体になりました。 その中で問題になっていたのが、リモート会議への参加がクソめんどくさい問題です。 前から頭を悩ませていたのですが、ようやく一通りの整備が終わりました。 クソめんどくさい問題とは何…

「ひと目でわかるAzure Active Directory」を読んだ

仕事でAzure周りを扱うことになりました。 有識者の方に話を聞いてみたところ、AzureはAzure Active Directory(Azure AD)を中心として構成されているそうです。そうであれば、まずはAzure ADを押さえておかないと話ができないであろうと考え、Azure ADの本を…

TerraformでMSI認証を使うというのはどういうことか

Terraformに関するAzureの認証方法はいくつかあります。これはAzure Providerのページにもまとめられています。 Authenticating to Azure using the Azure CLI Authenticating to Azure using Managed Service Identity Authenticating to Azure using a Ser…

はじめてのAzure+Terraform

TerraformでAzureを触ってみます。 最新版のTerraformのインストール Azure CLIのインストール Azureへのログイン Terraformを実行してみる Azureにログインできていなかった場合はどうなるか まとめ 先週、ついにTerraformの0.15.0がGAになりました。 最新…

「社員の力で最高のチームをつくる―――〈新版〉1分間エンパワーメント」を読んだ

社員の力で最高のチームをつくる―――〈新版〉1分間エンパワーメント作者:ケン・ブランチャード,ジョン・P・カルロス,アラン・ランドルフ発売日: 2017/02/27メディア: Kindle版 「エンパワーメント」を主題とした本。エンパワーメントとは何かというと、「は…

目の前に広がる世界にIaCがハマるのかを考える

iac

IaCについては今年度に結構考えた。自分で取り組んでみてわかったけれど、マネジメントコンソールからインフラを作っていくよりもやはり効率が良い。 環境を簡単に再現でき、だからこそ簡単に捨てられる。手動で変な変更をされるといわゆる自動化が進まなく…

SlackをRSSリーダー化してみている

ぼくはもともとRSSリーダーのヘビーユーザーでして、日々の情報収集はほぼRSSリーダーに依拠していました。 しかし、Livedoor Readerが終了し、乗り換えたInoreaderも無料枠だと150個くらいのフィードしか登録できなくなりました。 情報収集としてのRSS購読…

ブルーナボンボンが3体ある

あと1体が見えなくなった。どこにいってしまったのか。

ヘッドセットが欲しい

打ち合わせをする時間が多いのですが、ぼくはもっぱらAirPodsを使っています。 Apple AirPods with Charging Case発売日: 2019/03/27メディア: エレクトロニクス AirPodsはバッテリで動作するのですが、そんなに潤沢なバッテリは積んでいません。公式ページ…

MacでBSD版のコマンドを使う

mac

自分のMacでは動くのに他の人のMacでは動かないというスクリプトを組んでしまいました。 具体的には、以下のようなchmodの実行が動作したりしなかったりした。 $ chmod +w -R ${workdir} これは確かにコマンドオプションの順が不自然なのでぼくが埋め込んだ…

Mozilla Public License 2.0とは

Mozilla Public License 2.0とはどのようなものかを説明したい場面があったのですが、これがなかなか難しい。 ライセンスのような厳密なロジックが求められるものをまとめると、どこか誤解をもたらすのではないか、という気もします。 そういうわけなので、…

オンラインミーティングにはmiroのようなツール導入が効果的

とある業務で、オンラインホワイトボードサービスであるmiroを1年間使っていました。 リモートワークでブレインストーミングや意見出しのような打ち合わせを行う時、ぜひおすすめです。 リモートワークにおけるミーティングの問題点 オンラインミーティング…

3ヶ月ぶりの物理出社

コロナ禍でフルリモート勤務を長いことしているのですが、今日は請求書の対応やらロッカーの整理やらをしなければならず、3ヶ月程度ぶりに出社しました。 会社の同僚や先輩、上司と顔を合わせられるのはやっぱり良い。 ZoomやMicrosoft Teamsでテレビ会議を…