Sionの技術ブログ

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

AWS

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 rootアカウントに二要素認証の必要性と有効化する手順

二要素認証の必要性 nullcon HackIM 2020 Writeup - Lateral Movement - こんとろーるしーこんとろーるぶい こちらのCTF writeupを拝見したところ、下記のような内容でした。 1. script.jsを見て変なHTTPヘッダーを見つける 2. HTTPヘッダーに値をセットして…

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

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

RDS MySQLをAuroraに移行したお話

はじめに TL;DR Why Aurora? その他の改善項目 過去に1回チャレンジして失敗している How 進め方 移行中のデータ欠損対策 peeringの確認 RDS接続用のprivateドメインを作ってインフラ側で制御する dumpの手順 DB名を変更する手順 ユーザ通知や社外調整 手順…

AWS S3 Glacierの取り出しをRubyで検証してみる

What S3のGlacier, Glacier Deep Archiveがあるが、実際に取り出したことがあまりない 取り出すにはリクエストが必要 今働いてる chikaku がrailsをメインにしてるので、rubyで検証しました Glacier周りの料金や仕様 S3にあるオブジェクトは保存するのにお金…

CodeBuild + PackerでAMIを焼く

CodeBuild + Packerを使って、AmazonLinuxベースのimageを焼きます。 完成品こちらです github.com 構成図 CodeBuildの準備 Terraformでセットアップします。 https://github.com/sioncojp/codebuild-packer/tree/master/terraform/codebuild/packer を参考…

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

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

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

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

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

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