紅茶が好きなサーバーサイドエンジニアの備忘録
Transactional Outbox パターンとは?データベースとメッセージングの一貫性を保つ方法
1. はじめに
なぜこの技術を学ぶのか?
マイクロサービスアーキテクチャでは、複数のシステム間でのデータの一貫性を保つことが課題になります。特に、データベースへの書き込みと外部のキューやイベントシステムへの送信を同時に行う場合、トランザクションの管理が重要になります。Transactional Outbox はこの問題を解決するための設計パターンです。
gh copilotでshellコマンドをCLI上で補完/説明してくれる
Github CLIのghコマンドの拡張機能で、shellコマンドをcopilotで補完/説明してくれる機能がある。 曖昧なコマンドを検索せずにターミナル内でコマンドを生成できるので便利だった。
AWS CDKでブログ用の写真をホストするモジュールを作る
概要
ブログ用の写真をアップロードするにあたり、S3とCloudFrontを使って自分で写真をホストすることを検討した。
構成
写真アップロードシステムの機能と構成は以下となる。
cdk (TypeScript) とLambda (Java) でHelloWorldする
概要
AWS のリソースをアプリケーションコードから作成するのに AWS CDK はとても便利です。 CDK の実装が溜まってくると、過去のプロジェクトからコードをコピーして持ってくればコンソールを触ることなく似たインフラ構成を立ち上げることができます。
ISUCON14に参加して23位になりました (28156点)
アクセスログ解析 alpの正規表現Tips
alp とは
alp は Web アプリケーションのアクセスログを解析するためのツールです。 主に リクエストのパスやクエリ文字列 を抽出し、パフォーマンス分析やボトルネックの特定に使用されます。
Developers Summit 2024 Summer参加記
はじめに
Developers Summit 2024 summer に行ってきました。 色々なバズり記事や twitter のリンクがスライドに多く、インターネット上のコンテンツ自体が観客と登壇者との間での共通認識として使うことができているのと感じたのが新鮮でした。
[Ubuntu] Lambdaのローカル実行 (sam local invoke) でdockerが認識されない
事象
AWS SAM (Serverless Application Model)を利用してlambda関数をローカル実行しようとした際、次のエラーが発生しました。
$ echo {} | sam local invoke HelloWorldFunction
/usr/lib/python3/dist-packages/paramiko/transport.py:237: CryptographyDeprecationWarning: Blowfish has been deprecated and will be removed in a future release
"class": algorithms.Blowfish,
Error: Running AWS SAM projects locally requires Docker. Have you got it installed and running?
dockerのインストールができていない場合はdockerをインストールしてください。 ここでは、dockerは起動しているもののSAM CLIがdockerを認識していない場合の対応について解説します。 次のコマンドを実行することでdocker daemonが起動しているかどうかを確認できます。 筆者の環境はUbuntu 22.04です。
AWS Summit 2024のまとめ
AWS Summit 2024に参加してきました。以下は印象に残ったセッションのメモとなります。
目次
- AWS Summit とは?
- 個人的キーポイント
- セッションハイライト
- レジリエントなサービス
- 非同期システム
- 超高負荷サービスを提供する工夫 (1 億台同時接続)
- 実践的な知識
- 監視設計
- AmazonQ
- 感想
AWSSummit Japan とは?
- AWS を利用する人々が集まる年 1 の イベント
- ベンチャー/SI/ユーザー企業がそれぞれの目線でシステムについて語る
- 登録者 5 万人/150 以上のセッション/250 以上の展示
- 10 以上のセッション (40min) が常時開催 6 term 2 day
- どの会場も一杯で立ち見が発生する/事前予約必須
- 展示はシステムのアーキテクチャの紹介やログ基盤/開発環境に関するツール企業 (NewRelic CloudFlare, HashiCorp etc.) など
- 早く行けば座布団と弁当がもらえる
- DJ の Live, QuizKnock のイベントもある
- お土産もたくさんもらえる
キーポイント
- 生成 AI
- AWS は ChatGPT のような frontend アプリや API, 学習/推論の基盤など様々なフェーズをサポートできるように抑えている
- サーバーレス
- サーバーを常時起動しない/オートスケーリングのサービス
- 実行時間やリクエスト量に応じて課金
- サーバーレスを活かしたアーキテクチャ紹介も多い
- レジリエントな (障害に強い) アーキテクチャ
- AWS のデータセンターのいくつかが止まってもサービスは提供し続けることができるか
- 突発的な負荷や外部要因による影響を最小限に留めることができるか
ハイライトセッション
レジリエントなサービス
AWS-14 AWS でレジリエントな分散システムを構築するためのデザインパターン
運用で使える咄嗟のコマンドリスト
障害対応では即時の対応が求められます。 コマンドがわからなくてあたふたしていると足手まといになってしまうので、生ログの解析に役立つコマンドを復習しました。