紅茶が好きなサーバーサイドエンジニアの備忘録

Transactional Outbox パターンとは?データベースとメッセージングの一貫性を保つ方法

1. はじめに

なぜこの技術を学ぶのか?

マイクロサービスアーキテクチャでは、複数のシステム間でのデータの一貫性を保つことが課題になります。特に、データベースへの書き込みと外部のキューやイベントシステムへの送信を同時に行う場合、トランザクションの管理が重要になります。Transactional Outbox はこの問題を解決するための設計パターンです。

cdk (TypeScript) とLambda (Java) でHelloWorldする

概要

AWS のリソースをアプリケーションコードから作成するのに AWS CDK はとても便利です。 CDK の実装が溜まってくると、過去のプロジェクトからコードをコピーして持ってくればコンソールを触ることなく似たインフラ構成を立ち上げることができます。

アクセスログ解析 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 でレジリエントな分散システムを構築するためのデザインパターン

運用で使える咄嗟のコマンドリスト

障害対応では即時の対応が求められます。 コマンドがわからなくてあたふたしていると足手まといになってしまうので、生ログの解析に役立つコマンドを復習しました。

Page 1 of 3