電気ひつじ牧場

技術メモ

Ubieにおけるプラットフォームエンジニアリングの取り組み2023

Ubie Engineering Advent Calendar 2023 の22日目の記事では、Ubieのプラットフォームで生じていた課題と、それを解決するためにサービステンプレーティングツールを開発・導入した取り組みについて紹介します。

Ubieに入社していました

はじめに ヘルステックスタートアップのUbieに転職してから3ヶ月が経過したので、転職のきっかけや実際に入社して感じたことなどを書き連ねました。いわゆる入社エントリというやつです。

Cloud Pub/SubとCloud Functions gen2の連携(with DLQ)

Pub/Subに届いたメッセージをトリガーにしてCloud Functionsを呼び出す方法について Terraformを使うケースを想定する

CircleCIのfailをSlackにメンション付きで通知する

初めに CIがコケたらSlackに通知するというのは一般的なユースケースだと思います。 特に、失敗したビルドを実行したユーザにだけメンションが飛ばせると便利ですね。 ここでは会社のメールアドレス = Slackの登録メールアドレス = CircleCIの登録メールアド…

Terraformのvariables.tfを生成するツールを作った

Terraformのvariablesあるある(?) できたもの 例 my_resource.tf variables.tf dev.tfvars できないこと Terraformのvariablesあるある(?) variablesブロックを変数ごとに書くのがめんどくさい。 色々インフラの変更をした結果、未使用のvariablesが放…

Request is missing Authentication Token: OperationErrorになる

AWS

StepFunctionをlambda(Go 1.x)からキックするようなコードを書いてる時に、StartExecutionを呼び出すと次のようなエラーが出た。 operation error SFN: StartExecution, https response error StatusCode: 400, RequestID: xxxx-xxxx-xxx-xxxx, api error Mi…

ECSヘルスチェックベストプラクティス

AWS

ECSの文脈でヘルスチェックといえば、次の2通りが挙げられる。 ELBのターゲットグループで指定するヘルスチェック タスク定義のコンテナ定義パラメータで指定するヘルスチェック 1はECSではなくELBの機能なので、これら2つを組み合わせて使う場合に限定され…

ISUCON11のベンチマーカーを高速化

Go

ISUCON12に向けて過去問をやっていたら、ISUCON11のベンチマーカーの実行に時間がかかっていたので高速化してみました。

TerraformerでNewRelicのリソースをTerraformに取り込めるようにした

あるプロダクトの監視にはNewRelicを使っているが、手作業で作られたNewRelicのアラートが大量に放置されていた。 そのため、どのアラートが作成されているのかがわからない、不要なものもわからない、レビューがやりにくいといった問題があった。 そこでTer…

AWS SESで信頼性の高いメール送信(SPF, DKIM, DMARC) with Terraform

メール認証の仕組みと、SESでのTerraformを使った設定方法について紹介します。

バッチ処理の基盤をEC2からECSに移行する

AWS

バッチ処理基盤をEC2からECSへと移行させるにあたって考えたこと、Terraformでの構築方法をメモしておきます。本稿で単にECSと書いた場合は全てECS Fargateを指しています。

【zsh】pure-promptをM1 macで使う

zshのプロンプトをいい感じにするのに普段pureを使っている。 しかし新調したM1 macbookだとインストールガイドの通りにやっても上手く読み込んでくれなかった

CircleCIのcheckoutステップで失敗する

Git

CircleCIでcheckoutしたらいきなりこんなエラーが出てきた。 error cloning repository: unknown error: ERROR: You're using an RSA key with SHA-1, which is no longer allowed. Please use a newer client or a different key type.

外部のプライベートリポジトリへの依存がある時にCircleCIでビルドする

組織内部で管理しているプライベートリポジトリのライブラリなどを使いたい時は、CircleCIがそのリポジトリに対するアクセス権限を持っている必要があります。普通にプロジェクトをセットアップした場合、CCIのExecutorはそのプロジェクトに対するアクセス権…

JSONを書くのが1ミリくらい楽になるシンタックスチェッカーを書いた

Go

JSONのチェックくらいjqでやればええやろ、そう思っていた時期が私にもありました。

cloudfrontでログバケットにログが流れてこない

cloudfrontでコンテンツ配信をする際、Terraformであれば次のようにlogging_configを指定することでアクセスログを残すことができる。

isucon11予選に参戦してきました

「何もしてないのに壊れました」というふざけたチーム名で会社の同期(kypくん、shikiさん)とisucon11の予選に参戦しました。 使用言語はGo、結果は42525点、93位/約600チームで予選敗退でした。 前日までにやったこと 当日 -20分 0分 +30分 +2時間 +4時間 +6…

Post: "https://cognito-idp.ap-northeast-1.amazonaws.com/": x509: certificate signed by unknown authority" となるエラー

概要 Post \"https://cognito-idp.ap-northeast-1.amazonaws.com/\": x509: certificate signed by unknown authority" プログラムからAWSのリソース(今回はcognito)にアクセスしようとしたときにこのようなエラーになった。 利用していたDockerfileは次の…

Software Design誌に約半年間連載を書いていました

Twitterなどで散々言っていましたが、今年の1月〜7月号までの7回、技術評論社さんのSoftware Designに連載記事を寄稿していました。自分の中では今年上半期のビッグイベントだったので振り返ってみます。

DNSレコードを設定した後の確認

結論 www.blacksheep.link IN A 13.231.154.170のようなレコードを権威サーバに設定したとする。

【Terraform】CIでinitした時にdoesn't match any of the checksums previously recorded in the dependency lock fileとなる

codebuildでterraform initをした時に下記のようなエラーが出力されて落ちた Initializing provider plugins... - Reusing previous version of hashicorp/aws from the dependency lock file - Installing hashicorp/aws v3.42.0... Error: Failed to insta…

【Elasticsearch】時間経過でインデックスを削除・設定変更

ログデータにはある種の鮮度のようなものがあります。一般的に1年前のログと2日前のログだと、おそらく後者の方が取り出される頻度も重要度も大きいため、より早く、確実に取得したいと考えるでしょう。 そのため、これらのデータを同様のストレージに同様の…

シェル色付け対応早見表

ターミナルに文字を出力する際に $ echo -e "\033[<パラメータ>m <表示する文字> \033[0m" とすることでパラメータに応じた文字色、背景色をつけることができる。パラメータは;で区切ることで複数種類指定することが可能。

CircleCIでyarn installした時に出る"EPERM: operation not permitted, copyfile ~"みたいなエラー

CircleCIでnodeアプリケーションのイメージをビルドしている時にエラーが出てfailした時の対処法メモ

vectorでelasticsearchにEchoのログを収集してみる

この記事について golangのechoが吐き出すログをvectorで収集し、opendistro版 Elasticsearchに収集、可視化する方法についてメモ

技術書典10で「Rustで始めるTCP自作入門」を頒布してます

どんな本か 最終的に出来上がるもの 対象読者について 各章について 1章 2章 3章 4章 頒布先リンク 書籍で解説しているソースコード おわりに

Rustでbrainf*ckインタプリタ作ってみた

この記事は,HUITアドベントカレンダー2020の20日目の記事です.一昨年はスクリプト言語「Sheep」を作ってみた - Qiitaを書きました.去年は卒論で戦死してたのでアドカレがあったのかどうかも知らないです().

Rust エラー処理2020

このエントリは,Rust 3 Advent Calendar 2020の8日目の記事です.

Gitでコミットを分割する

Git

ハッシュがa6e0229のコミットは関係ない2ファイルを同時にコミットしており,これを1ファイルずつのコミットに分割したいとする.コミットログはこのようになっている.

旅行記【箱根・下部温泉編】

8~10月の間ずっとインターンやら何やらをしていて休みという休みがなかったので,3密に気を付けながらgotoしてきました.自分が5年後くらいに見返して懐かしむ用の記事なので内容は期待しないでください. 前回↓ cha-shu00.hatenablog.com