1クール続けるブログ

とりあえず1クール続けるソフトウェアエンジニアの備忘録

2021-01-01から1年間の記事一覧

静的ウェブサイトホスティングにおけるCloudFront+S3 vs S3単体で比較

AWS

記事一覧はこちら 背景・モチベーション CloudFront+S3 vs S3 Only コスト S3単体にかかるコスト S3+CloudFrontにかかるコスト ユースケースごとの課金 セキュリティ パフォーマンス Maintenability デプロイ まとめ 背景・モチベーション 「S3の静的ウェブ…

MongoDBのReplicaSetでInitial Syncを実行するか判断している処理を追う

記事一覧はこちら 背景・モチベーション Initial Syncとは データをコピーしてSecondaryのメンバをseedする処理 Initial Syncを実行するか判断する処理を追う Initial Syncを実行するかどうかを明示的に判断している処理 エントリポイントから追っていき、ど…

ZenHubのPrometheus Exporter作ってみた

記事一覧はこちら 背景・モチベーション 本編 exporterのデフォルトのポート番号を選ぶ Exporterを実装する上で気をつけたいこと Configuration Metrics Collector Deployment 上記踏まえて ZenHub Exporter 作った まとめ(雑記?) 背景・モチベーション …

MongoDB UniversityのM103を修めた

記事一覧はこちら Table of Contents 背景・モチベーション M103 Chapter 1: The Mongod What is mongod Default Configuration Configuration file File Structure Basic Commands Logging Profilers Security Authentication Authorization Localhost Exce…

Terraformの基礎を学んだ

記事一覧はこちら Table of Contents 背景・モチベーション 参考文献 Terraform Resources Input Variables Declare variables Assign Values Reference Values Output Values Locals Dependency Lock File Module What are modules for? What is a Terrafor…

お休み1ヶ月振り返り

記事一覧はこちら なぜ1ヶ月お休み? この1ヶ月でやったこと 読書 データ指向アプリケーションデザイン Site Reliability Workbook スイッチ! 趣味 分散システムの勉強(中途半端) 手動かしたもの 自作OS本 React/GatsbyJSに入門 式場探し 新しいノートテ…

WSL1でみかん本を進める上で躓いたところ

背景・モチベーション WSL1を使うに至った経緯 WSL1で躓いたところ ディスクイメージをマウント出来ない 仮想マシンで生成されたファイルの中身が見れない 番外編: QEMUが動かない 背景・モチベーション 低レイヤを理解したいというのは、ソフトウェアエンジ…

s3selectを実行するGo製CLI を作ってみての気づきとか

背景・モチベーション CLIについて エラーハンドリングについて CLIで共通利用する設定はひとまとめにする テストについて 外部APIを利用するテストにはgomockを使う 設定ファイル読み込み関数はテストはStubを用意するのも一つの手 go testするときに -race…

CDK for TerraformがGoをサポートしたので試してみた

記事一覧はこちら 背景・モチベーション 参考文献 CDK For Terraform とは Getting Started 実装の初期段階まで Goのコードで実装 デプロイしてみる 使ってみての所感 背景・モチベーション CDKには元々興味がありました!CloudFormationでのyaml記述はやは…

sqlcを利用してGoのDB周りの処理を扱う

記事一覧はこちら 背景・モチベーション sqlcとは sqlcを利用する方法 sqlcのメリット database/sqlパッケージを直接利用することのデメリット gormなどの高レベルライブラリを利用することのデメリット sqlcを実際使ってみての感想 sqlcを実際に動かしてみ…

kustomizeでCRDのpatchesStrategicMergeを動かしてみる

記事一覧はこちら 背景・モチベーション 参考文献 どのようにCRDでpatchesStrategicMergeを実現するのか Kubernetes本体ではv1.16からCRDのapplyがJMPからSMPに変わっている kustomizeでCRDのSMPを行う方法 スキーマのfetchの問題点 実際にCRDでpatchesStrat…

conftestで複数ファイルを横断してチェックする

記事一覧はこちら 背景・モチベーション --combineオプションを利用する --combineオプションとは --combineオプションを利用した時のinputの内容が変わる 複数ドキュメントを横断してチェックしてみる 背景・モチベーション 以前にconftestの概要をざっくり…

kubebuilderを利用して簡素なk8sのControllerを作ってみる

k8s

記事一覧はこちら 背景・モチベーション Controllerを作るときの指針 参考文献 Controllerの作り方について Controllerの仕事 kubebuilderを利用して雛形を作り不要なものを捨てる Controllerの実装 実装の大枠 動作確認 背景・モチベーション Controllerを…

GitHub Actionsでmarkdownをpdfで出力する

記事一覧はこちら 背景・モチベーション MarkdownのファイルをPDFに変換するのはVS Codeのエクステンションで出来るけど、Github Actionsでpushするごとに自動で生成してくれたら楽だなあと思いやってみました。 ついでにパブリックベータで提供されている、…

競プロの勉強するときにテストも書く with Go言語

記事一覧はこちら 背景・モチベーション 前半をさっと流し読みだけで止まってしまっている問題解決力を鍛える!アルゴリズムとデータ構造をちゃんと解きながらやろう!と思い、重い腰を上げて取り組み始めました。 始めたはいいものの、入力と出力がそれぞれ…

GoのhttpサーバにおけるMiddlewareとは

記事一覧はこちら 背景・モチベーション 参考文献 GoのHTTPサーバの処理の流れ Middlewareの実装について 背景・モチベーション go-chi を好んで使うのですが、ふんわりとした理解でMiddlewareを宣言していました。Middlewareという名称も個人的にはあんまり…

ArgoCDでArgoCD自身を管理する

記事一覧はこちら 背景/モチベーション ArgoCDについて 概要 アーキテクチャ Core Concepts ArgoCDでArgoCD自身を管理する 方針 実践 動作確認 背景/モチベーション 業務で利用し始めたArgoCDリソースを個人でも試しておこうという試みです。ArgoCDをArgoCD…

docker buildxがマルチアーキテクチャでビルドできる仕組みをさらっと確認してみた

記事一覧はこちら 背景/モチベーション buildxとは 概要 ビルダーインスタンスとは マルチプラットフォームビルド QEMU で異なるアーキテクチャのコンテナイメージをビルドする QEMUとは dockerからQEMUが呼ばれる仕組み 果たしてbitbucket pipelineでマルチ…

external-dnsの仕組みを少し覗いてみる

記事一覧はこちら 背景・モチベーション EKS(or GKE)を運用するときにお世話になる external-dns をふんわりとだけ理解て利用してきたのですが、どのようにDNSレコードを操作しているのかをちゃんと理解したいと思ったのがきっかけです。 使い始めた当初は…

sealed-secrets 学んだ

記事一覧はこちら 背景・モチベーション ArgoCD導入時に、リポジトリやk8sクラスタの認証情報といったセンシティブな情報をk8sのSecretとして保存する必要が出てきました。さらにそれらをGitOpsで管理しなければなりません。 SecretをマニフェストとしてGit…

conftest学んで試してみた

記事一覧はこちら 要約 Conftestとは Open Policy Agentとは OPA Document Modelについて Rego Languageとは インストール方法 実行方法 Conftestが認識するルール ConftestでKubernetesのマニフェストをテストする Deploymentにポリシーを設定してみる 要約…

Grafanaのダッシュボードをgrafonnetを使って管理する

記事一覧はこちら 要約 jsonnetとは grafonnetとは jsonnet+grafonnet でダッシュボードを作成してみる 要約 Grafanaはすごくパワフルな可視化ツールですよね。 例えば、kuberntesやECSのクラスタ1つごとにダッシュボードを作成することも多いかと思います。…

EKSでのAWSユーザorロール認証の流れを追う

EKS

記事一覧はこちら 要約 EKSにおけるAuthentification(認証) aws-authの定義の仕方 要約 下記の記事で、k8s内のリソースからAWSのリソースを操作する時の権限のマッピングについて書いたけど、今回はIAMロールorユーザがk8sのリソースを操作する時の権限のマ…

EKSにおけるPodレベルでのIAMロール割当

記事一覧はこちら NodeレベルでのIAMロール割当しちゃってる… Kubernetesの中での権限制御 Kubernetesからawsリソースを操作する時の権限制御 ノード単位での権限制御 pod単位での権限制御 IAM Roles for Service Accounts OIDC (OpenID Connect) Service Ac…

mtail事始め

記事一覧はこちら mtail使っているけどちゃんと理解できていないかも… mtailについて 概要 入手方法 実行方法 メトリクスの公開先 mtailの設定DSL mtailのテスト 他にも色々機能がある… mtail使っているけどちゃんと理解できていないかも… という僕がmtailを…

mavenキャッシュをDockerコンテナに閉じ込めてビルド高速化を図る

最近、全く更新出来ていなかった。 もう少し一つ一つの記事を軽い気持ちで書いてみてもいいのかもしれない(個人ブログだし)。 記事一覧はこちら 概要 方法 概要 JenkinsやCodeBuildなど、Dockerデーモンを叩ける環境でMavenを使ったJavaアプリケーションの…