継続は力なり

タイトル通り定期的な更新を心掛けるブログです。

Terraform で Secrets Manager に登録するレコードをコード内に直書きせず保存する

タダです. プログラムで使うトークンや DB 接続情報,鍵情報といった秘匿情報を Secrets Manager に入れています.Secrets Manager に保管してる情報を Terraform で管理しようとした時コードで直書きし,GitHub などで管理するのはリスキーなので別の方法を探…

S3 バケット内オブジェクト削除のライフサイクルをタグでコントロールする

タダです. S3 に格納しているオブジェクトの中で,タグをつけたものをライフサイクルルールで削除したいという要望が業務でありました.S3 のライフサイクルでオブジェクトを削除する時にバケット全体のオブジェクトへ適用することは経験があったのですが,ライ…

Step Functions の Map を使って ECS Fargate の並列処理を構築した

タダです. バッチ処理の中でこれまでは AWS Batch 1台のコンテナで完結していた処理があったのですが,処理時間が非常に長くかかってしまう部分があり,その処理を外出しして並列処理ができるよう Step Functions の Map を使ってみました.この記事で要点をま…

Aurora レプリカ Auto Scaling のイベントをトリガーに Lambda を発火する

タダです. Aurora レプリカ Auto Scaling で追加されたイベントをトリガーに EC2 の Apache を再起動(graceful)を実行したいと思い,Lambda を発火させるようにしてみたのでこの記事でまとめていきます. 経緯 実装 EventBridge のルール Lambda のコード Auro…

redash のコンテナログを CloudWatch Logs に出力する

タダです. redash を EC2 上のコンテナで動かしているのですが,ログを外出ししていなかったので何かあったらいちいちサーバーの中に入る必要がありました.そこで,CloudWatch Logs に出して見えた方がいいと思い,検証したのでこの記事でまとめていきます.なお…

July Tech Festa 2021 に『今日から実践!継続的に自分の軌跡を残す方法』で登壇した

タダです. 7/18 開催の「July Tech Festa 2021」にて「今日から実践!継続的に自分の軌跡を残す方法」と題して自分が取り組んできた継続的アウトプットのやり方や取り組んだことで起きた変化をお話しさせていただきました.この記事で発表を振り返ってきます.…

CodePipeline と CodeBuild で Git のタグを使ったリリースを行う

タダです. 下記の画像のような CodePipeline と CodeBuild でパイプラインを作っていた時に GitHub で登録した最新のタグでリリースを行いたいといった要望があったので試してみた内容をこの記事にまとめていきます. 前提 CodeBuild のタグリリースに関する…

ECS Fargate の AutoScaling 設定に関するコマンドをまとめておく

タダです. AWS CLI で ECS Fargate の AutoScaling 設定をしているのですが,都度調べていたりしたのでよく使うコマンドをまとめておきます. AutoScaling ポリシーを定義・更新する 関連情報 スケジューリングで AutoScaling のスケールアウト・スケールイン…

ECS Fatgate の FastAPI 関連プロセスを Mackerel で監視する

タダです. 前回の記事で Mackerel のカスタムプラグインを使った監視をやってみたんですが,EC2 の Uvicorn プロセス数の取得とプロセスの監視をしてみました.今回は前回のカスタムプラグインを使って ECS Fargate 上のプロセス監視をいれていきます. sadayos…

Mackerel のカスタムプラグインを自作して FastAPI 関連プロセスを監視してみる

タダです. Mackerel のプラグインには様々なものが既に用意されていますが,そのプラグインにないものがあれば作ってみようということで,FastAPI を動かすために必要な Uvicorn のプロセスを監視するプラグインを作ってみたのでこの記事でその模様をまとめま…

AWS Chatbot から Lambda の発火させて手動作業を自動化する

タダです. 業務で不定期ではあるけれど定型作業の依頼が非エンジニアから飛んでくる時があり,最初はすぐに済ませるため手作業で行っていたタスクを仕組み化しようと思い,AWS Chatbot を入れているので Chatbot と Lambda を使って作業を省力化したのでこの記…

Nginx + Puma + Sinatra のコンテナを ECS Fargate で起動する時にハマったことをまとめる

タダです. 業務で Nginx + Puma + Sinatra の構成を ECS Fargate で動かそうとしてハマったのでこの記事でその辺をまとめていきます. ハマったこと 設定漏れがあった箇所 Sinatra コンテナイメージビルド時のミス ECS のタスク定義の設定 設定の誤りを修正後…

コンテナ・サーバーレスアプリケーションデプロイのマネージドサービス『AWS Proton』をサンプルを動かして理解する

タダです. 「AWS Proton」が GA したので,使ってみたいと思いサンプルプロジェクトを使ってみてこの記事に所感などまとめていきます. AWS announces the general availability of AWS ProtonToday, AWS announces the general availability of AWS Proton, t…

Mackerel の『式による監視』を試した

タダです. Mackerel の機能で自分が指定した式を使った監視ルールや独自のメトリクスをダッシュボード に表示できる 「式による監視」があります.これは実験的機能と呼ばれ,正式機能ではないものの先行公開されています. mackerel.io mackerel.io 下記の記事…

『Google Cloud Certified - Associate Cloud Engineer』に合格するためにやったこと

タダです. 勉強の一環で5/27 に「Google Cloud Certified - Associate Cloud Engineer」を受けて合格しました.今回は自分がどんな勉強をしたかを振り返り,今後受験される方の勉強の参考になればと思い整理します.なお,自分は GCP は業務で一部使っている程で…

FireLens からログだけ Lambda を使って抽出し,Athena でクエリする

タダです. ECS に乗っているコンテナのログを FireLens を経由して Kinesis Firehose -> S3 にログを出しました.ただ,下記の JSON 形式でログが保存されているため,Athena でクエリしようとするとしてもログの詳細を見る時辛いなと思っていました. { "contai…

GitHub Actions で特定のワークフロー完了後に動作するワークフローを作る

タダです. GitHub Actions を使っていてこれまでは開発者からのpushやpull_requestのイベントをトリガーに動かしていましたが,特定のワークフロー完了後に別のワークフロー を動かすことをやったので設定をまとめていきます. 概要 GitHub Actions の定義 参…

S3 に保存した拡張子を取り除いた html コンテンツが閲覧ができない事象の対処

タダです. CloudFront と S3 の構成で静的ファイルの配信をすることになり,継続的なコンテンツの更新があるし GitHub Actions でコンテンツをアップロードするようにしました.その際に,静的ファイルの中で html ファイルを拡張子取り除いてアップロードした…

WordPress API を API Gateway の HTTP 統合使ってアクセスする

タダです. 業務で AWS 内から外部の WordPress のコンテンツを API 経由で取得しキャッシュもせたいというモチベーションから API Gateway の HTTP 統合を使う機会があったので,この記事で設定を備忘録として記録してきます. API Gateway の設定 参考情報 キ…

ECS Fargate で動作する FastAPI のコードを X-Ray でトレースする

タダです. 前回 Amazon Linux2 の上で FastAPI のコードに X-Ray を仕込みました.今回は ECS Fargate 上で動作する FastAPI のコードから X-Ray にトレースした情報を送る時に設定する内容をさらったので整理してきます. sadayoshi-tada.hatenablog.com ECS …

AWS のリソースを Terraform ファイルに変換する『aws2tf』を使ってみる

タダです. AWS のリポジトリを見ていたら aws2tf というツールを見つけました. Terrafrom を使ってのリソース管理をし始めたのでどんな動きをするかを知りたくてこのツールを使ってみることにしました.この記事で aws2tf のツールをさらっていければと思いま…

ECS Fargate で Mackerel コンテナエージェントによる監視設定をする

タダです. 業務で ECS Fargate の監視をしていく時に Mackerel のコンテナエージェントをセットアップするやり方を確認しました.設定方法をこの記事でまとめていきます. 確認した環境 コンテナエージェントのセットアップ Systems Manager Parmeter Store に…

FastAPI のコードを X-Ray を使ってトレーシングする

タダです. FastAPI を業務のアプリケーションで扱う割合が増えつつあるのですが,FastAPI のパフォーマンスを見えるよう可視化していくために X-Ray を試す機会があったのでこの記事にまとめていきます. X-Ray について サポートされている言語 X-Ray の用語 …

暗号化した Aurora スナップショットを別アカウントで復元する

タダです. 本番環境から別アカウントに暗号化した Aurora スナップショットを共有し,仕組み化して復元する時に少し手間取ったので対応をまとめていきます. 暗号化した Aurora スナップショットを共有する設定 共有されたアカウントでの設定 まとめ 暗号化し…

pytest と moto でモックを作ったテストを行う

タダです. 以前から気になっていた moto というツールを試す機会があったので,この記事で導入と pytest と組み合わせたテストをチュートリアルの内容を通して見ていきたいと思います. moto って? moto でモックを作り pytest でテストする まとめ moto って…

Mackerel と Amazon EventBridge を連携してアラート後のリカバリアクションを追加する

タダです. 本稼働しているサーバーの中にアクセスが多くないものの時折 CPU が 100% と高負荷になって突発的にサーバーがダウンしてしまう事象があり,その都度サーバーを再起動することが何度かありました.アクションが決まっているなら Mackerel と Amazon …

FireLens で出力されたコンテナのログを Athena でクエリする

タダです. 最近もっぱら ECS 周りを触っているんですが,コンテナのログを CloudWatch Logs に出すのはコスト的に避けたかったので FireLens 経由で S3 に出すようにしました.S3 に出しちゃえば Athena からログをクエリできると思ってやってみたのでこの記事…

『JAWS DAYS 2021 - re:Connect -』でシステムリリースフローの刷新の取り組みを話してきた

タダです. 3/20 開催の「JAWS DAYS 2021 - re:Connect -」にて「スタートアップ企業での散乱したシステムリリースフローをととのえる話」というタイトルでオンライン登壇させていただきました.開発者が安心かつスムーズなリリースフローを作り、開発生産性を…

Mackerel アンバサダーの一員になりました!

タダです. この度 Mackerel アンバサダープログラムに招待いただき,アンバサダーの一員に加えていただくことになりました! Mackerel は業務で導入することになったことがきっかけで使い始めたのですが,アンバサダープランを個人アカウントに適用いただいたの…

Aurora のクローン機能を使ったバイナリログレプリケーションを実行してみた

タダです. 以前の記事で Aurora のバイナリログを有効化して DMS の準備をする記事を書きました.ただ,DMS のトラブルシューティングを確認してみるとオブジェクトの作成ができないものがあり,ソースデータベース とターゲットデータベースが同一の場合オブジ…