出力を入力へ

プログラミングに関する自分が考えた事を中心にまとめます

「チームトポロジー」を読んだ

もともと発売当初に購入して流し読みだけしていたけど最後まで読み切れていなかった。 あらためて内容を詳細に把握しておきたいということで読み切った。 チームトポロジー 価値あるソフトウェアをすばやく届ける適応型組織設計作者:マシュー・スケルトン,マ…

Kubernetes The Hard Wayをやった

Kubernetsを学ぶ上での鉄板教材であるKubernetes The Hard Wayをやった。 Kubernetes関連の書籍は数冊読んでいるが、運用経験は無く、もう少し内部コンポーネントについて理解を深めたかった。 以前(5年以上前)はいつかやりたいなで終わってしまったので、今…

SRE NEXT 2024(オンライン)に参加しました

2024-08-03(土) - 2024-08-04(日)で開催されたSRE NEXT 2024にオンライン参加した。 気になったセッション 試聴したセッションのうち、特に気になった/記憶に残ったセッションは以下の通り 資料まとめは 以下にある。発表アーカイブも後日配信されるとのこと…

書評: 入門 監視

過去に一度目は通していたけど精読していなかったし、今後改めて監視強化したいと考えたので読み直した。 入門 監視 ―モダンなモニタリングのためのデザインパターン作者:Mike JulianオライリージャパンAmazon 気になったところ 「監視の原則」の重要性 監視…

第1回 AWSコスト削減 天下一武道会 に参加しました

コスト削減は永遠のテーマだし、これから注力しないといけないトピックでもあるので改めて情報収集のために参加した。 100社のコスト診断から見えてきた、コスト削減の王道とケモノ道 コスト削減をサービスとして提供しているdelta社の取り組み。 みんなでや…

terraformでAWS IAM ロールにポリシーを付与するためにmanaged_role_arnsを利用する

terraformでAWS でIAMロールを構築するとき、ロールとポリシーの設定方法として複数の手段がある。 aws_iam_roleのmanaged_policy_arns属性を利用する aws_iam_roleのinline_policy属性を利用する aws_iam_role_policy_attachment を利用する aws_iam_role_p…

Incident Response Meetup vol.1に参加しました

自社の障害対応が場当たり的になっているのでもう少しどうにかしたいと思って参加した。 やはりどこの会社も事前準備がきちんとできており、障害対応に対する心構えとか、障害対応時に余計な判断をさせない対応はすばらしいと感じた。 incident-response.con…

2023年のふりかえりと2024年の抱負

2023年のふりかえり できたこと 実用性を意識した個人開発 & 腕力で実装する もともとの目的である、課題を解決する実装をやりきる点については満足とは言えないが、ひたすら実装することは今まで以上に取り組めた。 特に、成果をOSSとして公開するところま…

go-tfeで単体テスト

go-tfe概要 go-tfeはTerraform Cloud (およびTerraform Enterprise)のためのGo SDK。 go-tfeを利用することで、Terraform Cloudの各種APIを利用したツールを実装することができる。 github.com go-tfeのテスト go-tfeを利用したツールを実装するときに単体テ…

Emacs環境のアップデート

自分のメインの開発環境(エディタ)としてはEmacsを利用し続けている。部分的にはVSCodeやIntelliJなどを使いつつもEmacsメインであることは10年以上変わっていない。 とはいえ、最近はあまりelispまわりの整備が行えておらず、良い開発環境にはなっていなか…

EC2インスタンスIDを取得するec2idをリリースした

AWS EC2インスタンスのインスタンスIDをNameタグから逆引きするCLIツールec2idを作ってリリースした。 github.com インスタンスIDを取得したい AWS EC2インスタンスを一意に識別する情報はインスタンスIDであり、AWS SSMセッションズマネージャーでログイン…

2022年のふりかえりと2023年の抱負

2022年のふりかえり 目標に対してはあまり上手くいった年ではなかった。 できたこと テスト ものすごく上手くいったわけではないが、いろいろ取り組むことができた。 IaCに対しては静的解析やPolicy as Codeに、ソフトウェアに対しては特にgo言語を中心に、…

GoでSDK呼び出しをモックできるコードを書く

Go

AWS SDK for GoなどのSDKを利用する場合のユニットテストの書き方およびプロダクトコードの実装方法が難しい。 AWS公式には Unit Testing with the AWS SDK for Go V2 にて解説があり、モックで差し替えられるようにAPIのインタフェースを利用してテストで差…

デスクトップ環境をUbuntu22.04にアップデートした

日頃利用するデスクトップ開発環境としてUbuntuを利用しているが、これをUbuntu 20.04→Ubuntu22.04にアップデートした。 旧環境の課題 原因不明の動作不具合がいくつかあり、これを解消したかった。 音声入出力の不安定 映像出力は問題ないが、音声入出力が…

SRE NEXT 2022に参加しました

2022-05-14 - 2022-05-15の2日間で開催されていた SRE NEXT 2022に参加しました。 各社のさまざまな工夫や取組みが共有され、学びのある2日間でした。 運営、発表者、スポンサーのみなさま、ありがとうございました。 以下視聴したセッションのうち特に気に…

書評: Jetpack ComposeによるAndroid MVVMアーキテクチャ入門

久しぶりにAndoridアプリ開発がしたくて始めたけれど、 Jetpack Composeがよくわからなかった。 いろいろ調べているうちにこの本を見付けて、よさそうだったので読んだ。 概要 Android アプリ開発においてMVVMアーキテクチャを採用する方法として、Jetpack C…

2021年のふりかえりと2022年の抱負

2021年のふりかえり 2021年は2020年と比べて失敗経験を積めた年だった。 2020年は新しい環境で、今までにない経験を積むことができたのに比べて、2021年は今までの取り組みをより良くするために試行錯誤してきた。結果、上手くいったものもあれば、上手くい…

GitHub PRにRedmine issueへのリンクを記載したらコメント通知するactionを書いた

初めてのGitHub Actionsの開発。 github.com Actions開発の背景 タスク管理にGitHub issueではなくRedmine issueを利用しているのだけれど、プルリクを作成したときにRedmine issueへのリンクを記載することがよくある。 git コミットにissue番号を記載して…

lambda関数のコンテナイメージサポートをterraformで構築する

AWS Lambda関数をコンテナイメージでデプロイする環境をterraformで構築したい。 特にterraformでは対象のコンテナイメージを管理から外したい場合における 初期構築方法について検証する。 検証コードはこちら。 github.com lambda関数によるイメージ指定 L…

Terraform Cloudでリソースインポート時の変数参照

TerraformのバックエンドにTerraform Cloudを利用しているときに リソースインポートでエラーが発生して困っていた。 これについて調べていたら、リソースインポート時の変数参照についていろいろわかったのでそのまとめ。 Terraform 0.15.5で検証。 発生し…

ansibleのEC2 dynamic inventoryで異なるタグがまとめられる不具合

Ansibleの AWS EC2 dynamic inventoryにおけるタグ管理はあまり賢くないなと思ったのでそのまとめ。 タグで変なことやるとどこかでバグらせそう。 ちなみに、ansibleはバージョン体系等を大きく変更しようとしているので ansibleのバージョンによって挙動が…

GitHubのプルリクエストにRedmineチケットへのリンクがあったら対象チケットにプルリク情報をコメントする

RedmineとGitHubの連携を実現するためにいろいろ試行錯誤したのでそのまとめ。 課題トラッカーとしてRedmineを利用する 課題トラッカーとしてGitHub issueではなくRedmineを利用する場合、 ソフトウェア開発との連携が課題になる。 具体的にはプルリクエスト…

SimpleCovを並列実行した結果をマージする

CircleCI実践入門で紹介されていたRubyアプリケーションのCI事例について、 SimpleCovでカバレッジを計測するとき、CircleCIを並列実行すると結果が分かれてしまうので 並列実行した結果をマージする必要がある。 このマージの実装が古くなっており動作しな…

railsアプリでdatadog logレベルをhttpのステータスコード依存にする

datadogに転送したアクセスログのログレベルを変更したいだけだったのに かなり時間を取られたのでそのまとめ。 やりたいこと 現在、railsアプリのログをdatadogに転送して可視化しているが、 このうち、webアクセスログの内容に応じてログレベルを変更した…

TerraformでAWS ELBリスナーに登録されているターゲットグループを再生成する

やっとのことALBロードバランサをTerraform管理しようとしたら 設定変更や再生成まわりで時間を取られたのでそのまとめ。 ターゲットグループの設定変更の問題 AWSロードバランサにおけるターゲットグループがリスナーとしてロードバランサに登録されている…

2020年のふりかえりと2021年の抱負

2020年のふりかえり 2020年は転職して(転職自体は2019年だけど)さまざまな経験を積めた1年だった。 コロナ過によるフルリモート体制への移行やこれに伴う開発・コミュニケーション方法の試行錯誤など なかなか上手くいかない点も多かったけど、それも含めて…

Terraform Cloudをterraformで管理する

Terraform CloudにおけるWorkspaceの管理 Terraform Cloudはtfstateの管理だけでなくterraformの実行を管理してくれる. このため,自前でTerraformのCI環境を構築する必要なしに簡単にTerraformを導入できる. 一方で,tfstateの分割単位であるworkspaceが…

Rails+Vuetify+ActiveAdminでボタンのスタイルが崩れる

Vuetifyにおけるスタイル崩れ Rails6 + Vue + Vuetify でVuetify入門してた. Vuetifyのレイアウトでいろいろ試してみたところ, ハンバーガーメニューのスタイル崩れが発生した. スタイル崩れが発生したハンバーガーメニュー Vuetify App Barsのナビゲーシ…

GitHub Secretsの更新をgithub-secrets-writerで自動化する

GitHub Actionsでクレデンシャル情報を利用するためにGitHub Secretsを利用しているわけだけど, この値の設定や更新を自動化したい. 具体的には AWS_ACCESS_KEY_ID と AWS_SECRET_ACCESS_KEY の更新を自動化したい. また,現状は単一のbotユーザの権限で…

wheneverのカスタムjob_typeで月末バッチを実現する

cronジョブをRubyで書くためのgem wheneverで 月末バッチを実現するためのカスタムスクリプトを実装したい. このとき,wheneverのカスタムjob_typeで実現したのでそのまとめ. 月末バッチの実装 cronで月末バッチをスケジュールする場合,月末の判定が面倒…