Sionの技術ブログ

SREとして日々の学習を書いて行きます。twitterは@sion_cojp

Go

SREとバックエンドを統合してバックエンドに転向しました

はじめに タイトルの通り、SRE歴だと6年 + 5社目ですが、株式会社チカクのSREからバックエンドに転向して2ヶ月経ちました。 この2ヶ月、フェーズが変わったプロダクトに追従出来ていなかったチームの開発プロセスを刷新することにメンバーと注力していました…

Fargateで異常終了したコンテナをLambda(Go)でslackに通知する仕組みをTerraformで管理する

TL;DR どんな感じに通知されるの? Architecture Code 実装時のポイント 事前にSlackのappを作る シークレット情報はLambdaのEnvironmentに設定できない terraformからGoで書かれたlambdaをdeployするのが難しい Goがインストールされてなくてもbuild, go ge…

AWS S3の特定パスにある大量のオブジェクトをGoで並列に別バケットに移動する

はじめに TL;DR バケット構成 Why 移動? How 進め方 コストの洗い出しとGlacier or DeepArchive コード どれくらいかかった? 障害が起こってないかの確認 終わったときのslack通知 移動時と移動後の値段 起こった問題について 1. インスタンス耐えれなかっ…

golang.org/x/sync/ を使ったGoの並列処理

Go

はじめに syncパッケージのコード golang.org/x/sync/ のコード はじめに 昔はsyncパッケージを使う必要があり、若干分かりづらいコードになってましたが、 golang.org/x/sync/ で実装すると分かりやすく改善されてたのでサンプルコードをおいてみます。 並…

GoでSlackに定常アラートが出たら、スレッドで自動コメントする

Go

github.com Slackに定常アラートが出たら、スレッドで自動コメントするGoのプログラムです。 今はアラート撲滅に着手出来ないけど、それまで周りに分かりやすいようにコメントを自動でしたい!という時に便利に使えるなぁと思って作りました。 動作 例えばこ…

ECSのタスク切り替りを通知させる

本記事は、FOLIOアドベントカレンダーの13日目の記事になります。 ことの始め なるほど。 つまりALBにぶら下がってるコンテナが、現在のコンテナがなくなって、新しいコンテナだけになったときに通知があれば嬉しいってことですね。 棄却した案: cloudwatch…

terraform-provider-awsの開発からPRを出すまでの手順

github.com 些細ではありますが、出したPRがmergeされました。 開発方法よくわからないなぁ。と思う人が多いと思うので、私が実際に行ったことを書いて見ます。 開発方法 # go get。今回は本家で修正して試して、その差分をあとでfork先に適用する感じ。 # …

tomlファイルをParameterStoreからdecodeするtomlssmを作った

Go

github.com GitHub - suzuken/yamlssm と同様にtomlでも出来るようにしました。 やってることは AWS System Managerで、Parameter Storeでを設定する(例えばxxxという名前でsecure stringで設定します) "ssm://xxxx" と書いてると、toml読み込み時にxxxの…

Go - AWS SSM Parameter Storeのデータを復号化とmockテストの書き方

SSMとは? SSM ParameterStoreとは? 実際にやってみよう 1. ParameterStoreの登録 2. aws-cliで試してみる 3. Goで動かす 4. テストを書く SSMとは? インフラ運用を便利にするサービス SSM ParameterStoreとは? パスワードなど値を管理 SecureStringsは裏…