2021-01-01から1年間の記事一覧
新規事業の実践論を読みました。 新規事業の実践論 (NewsPicksパブリッシング)作者:麻生要一ニューズピックスAmazon この本は、いわゆるスタートアップではなく「社内起業」に関する実践的なノウハウを扱ったものです。 勤める会社を飛び出して自ら事業を起…
これまでTerraformに関するCIとしてはGitLab CI/CDを使っていました。 最近はプライベートでGitHubを利用しTerraform周りのコードを管理しており、GitHub上でのCIを色々試行錯誤しています。 ようやく以下のように、terraform planの結果等をPull Requestへ…
Terraformをローカルで実行するときには正常でも、いざGitHub ActionsやGitLab CI/CDでTerraformを実行すると以下のようなエラーと遭遇するケースがあります。 │ Error: Failed to install provider │ │ Error while installing hashicorp/aws v3.68.0: the …
これまでGitHub ActionsからAWSのリソース操作しようとすると、以下のような対応が必要でした。 権限を絞ったロールを付与したIAMユーザを作成する そのアクセスキーIDをGitHub Actionsに登録し、Jobから利用できるようにする しかし、GitHub ActionsがOIDC…
プライベートでもAWSを使っているのですが、そういえばAWS Budgetsを設定しようと思って忘れていました。 AWS Budgetsとは AWS Budgetsは、コストや使用量を追跡し、予実の可視化やコスト等が閾値を突破したときのアラートを通知してくれたりするサービスで…
日本でiPhone 3Gが発売されて以来、ずっとiPhoneユーザとして生きてきました。 それでもずっと問題だったのが、いわゆるホーム画面のアプリ1軍問題です。 ホーム画面には少数のアプリ(1軍アプリ)しか配置できず、それ以外の2軍以降のアプリは他画面に配置す…
手動でいちいちpandocを実行するのは面倒です。 Merge Requestの作成やそのbranchに変更が入ったタイミングで、Markdownファイルをdocxファイルに変換し、リポジトリにアップロードしたい。 実際にこれを実装すると、以下のようにMerge Requestに紐づく形で…
GitLabにはPackage Registryという機能があり、様々な言語のパッケージをホストできます。 Maven packages in the Package Repository | GitLab npm packages in the Package Registry | GitLab PyPI packages in the Package Registry | GitLab 一方で、言…
MarkdownのファイルをベースにPull/Merge Requestでやりとりすることが難しいケースというのは存在します。 そういった場合、指摘やそれに対する修正は、変更履歴の保存の容易なWord形式を使うのが楽でしょう。 Word での変更履歴の記録 そして、こういった…
課題 ファイル一覧の抽出については--name-onlyを使うのはよく知られているテクニックです。 例えば以下では、一週間前からコミットされたファイルを抽出しています。しかし、コミットハッシュやコミットメッセージは不要です。どうしたものでしょう。 $ git…
プログラミングTypeScriptを読みました。 プログラミングTypeScript ―スケールするJavaScriptアプリケーション開発作者:Boris Chernyオライリー・ジャパンAmazon TypsScript 最近はどこも、JavaScript書くんだったらTypeScript書いてトランスパイルという状…
「自分が会社で何をしたいのかわからない、なぜなら人生で何をしたいのか答えが出ていないからだ」というような悩みを聞くことが多くなってきて、うん分かるーという感じがします。 この種の問いに対して、なかなか上手く切り返せずにきました。 それはぼく…
新規事業開発という分野へ関わることになりました。 右も左もわからんなという状態のぼくにお薦め頂いた本、「起業の科学」を読みました。 起業の科学作者:田所 雅之日経BPAmazon 読後感 これから 読後感 一言で言えば読んで良かったです。 非常に良いなと感…
先日チームのレトロスペクティブで、タスクがチケット管理できてないよねという話があがった。 チームで仕事をするときのタスク管理はだいたいGitLabやGitHub、Azure DevOpsで行おうとするのだけれど、うまくいかないことが結構多い。 なんでうまくいかない…
Azure Database for MySQLでも、スロークエリを検出できます。 今回はこのスロークエリログをLog Analytics Workspacesに送信してみます。 Azure Database for MySQLでのスロークエリ取得 動作確認 Terraform コード Azure Database for MySQLでのスロークエ…
AzureにはApplication InsightsというAPMがあります。 Application Insights は Azure Monitor の機能であり、開発者や DevOps プロフェッショナル向けの拡張可能なアプリケーション パフォーマンス管理 (APM) サービスです。 Application Insights とは何か…
一昨年同様、@kkasaiさん、@hondaYoshitakaさんとISUCON 11へ参加しました。 一昨年はインスタンスチェックに失敗し、まさかのスコア0でフィニッシュでした。 一方で、今年はきちんとインスタンチェックも無事パスし、最終的なスコアは12,000前後という結果…
Azure Database for MySQLのリストア検証のお時間です。 Azure Database for MySQLのリストア前提 準備 PointInTimeRestore Geoリストア 注意点 Azure Database for MySQLのリストア前提 Azure Database for MySQLにおいては、データベースのバックアップは…
AWSを使っていると、変な使い方をしてると予算をオーバーしてしまいます。 このため、日次でAWS Cost Explorerを確認しているのですが、これはこれで面倒です。 面倒な行為というのはだいたい能動的な確認が求められるのから面倒であるので、 AWS Lambdaから…
Azure Database for MySQLに自分のグローバルIPアドレスから接続したいというとき、グローバルIPをCMANで確認をしていました。 さすがに面倒になって、何か良い方法がないかなと思ったら、グローバルIPアドレスを返却してくれる様々なサービスがあることを知…
TerraformでAzure Database for MySQLを構築する場合、必ず利用するであろうリソースがazurerm_mysql_databaseです。 このリソースはcharset、 collationが必須パラメータです。 それぞれ文字セット、照合順序を意味しており、MySQLを利用する方は気にしたこ…
Pull Requestが作成されたらCIを実行したい。こういったユースケースはよくあります。 Azure Pipelinesでもこの実現はできるのですが、この実現にはかなり癖があります。 結論 PR Triggerの設定は、azure-pipelines.ymlではなく、Azure ReposのBuild validat…
あれ、これ本当なのか、という挙動になったのが複数Subscriptionを扱う場合。 例えば私のアカウント状況が以下のようになっているとします。 $ az account list | jq '.[] | { "env": .name, "mail": .user.name }' { "env": "Staging", "mail": "kiririmode…
AzureをTerraformで管理する場合、TerraformのRemote Stateとして Azure Blob Storageを設定することになります。 Backend Type: azurerm | Terraform by HashiCorp ここで問題になるのはAzure Blob Storageに対する認証でしょう。 Azure Blob Storageの認証…
Azure Pipelinesでは様々なPipeline用のタスクが用意されています。例えばMaven taskだったり、 Docker taskだったりです。 Build and release tasks この中で柔軟性が高いのはCommand Line taskや Bask taskでしょう。 例えばCommand Line taskでは、以下の…
ガイド上でサンプルのドメイン名を例示したい、テストデータでダミーのメールアドレスを登録したい、 ドキュメントでサンプルのIPアドレスを示したいといったケースがあります。 こう言ったときに記述するドメイン等は、記述時点では世界中に存在していなか…
Azure Database for MySQLをTerraformで構築してみます。 Terraformの構成 サーバとデータベース ネットワークアクセス制御 ファイアウォールルール VNETサービスエンドポイント 接続確認 インターネットからの接続 VNETからの接続 まとめ Terraformの構成 …
Azure Pipelinesにおいて、ジョブを動かすコンテナイメージをAzure Container RegistryからPULLしたい。 これを実行するとき、docker loginでACRにログインするんだろうなと考えていました。そうすると、ログイン用のクレデンシャルを保存しておかなければな…
hashicorp/terraform:1.0.0のように、entrypointが指定されているコンテナイメージに対して、entrypointを上書きしたいケースがありました。 上書きするのが1引数ならdocker runに--entrypointを指定すれば良いです。 $ docker run --rm -it --entrypoint /b…
Azure上でコンテナベースのジョブを作ったら、Initialize Containersフェーズでuseradd: Permission denied.というエラーが発生しました。 Try to create a user with UID '1001' inside the container. /usr/bin/docker exec dee61730d7328016d8d3f56d81cb0…