omuronの備忘録

個人的な備忘録

「クラスメソッドの最新開発ノウハウを学ぶ勉強会 サーバーサイド編」に参加してきました

クラスメソッドの最新開発ノウハウを学ぶ勉強会 サーバーサイド編

classmethod.connpass.com

肥後橋のクラスメソッドさんの勉強会にいってきました。
お菓子と飲み物が準備されているのが嬉しいですね。

セッション

フロントエンドからバックエンドまで、直近のリアルな技術選定について

西田将幸さん

  • 構成
    • CloudFront + ALB + Fargate + Aurora
    • フロント : Next.js
    • コンテンツ : microCMS
    • CI/CD : Github Actions
  • モダン化?
    • フロントは TypeScript しか考えられられない
    • バックエンドと両方使える TypeScript 採用
    • React を CX 事業部ではメインで使っている
  • SEO 要件
    • SEO が重要なので SSR が必要だった
    • bot でクローリングできないケースと高速化のために SSR を採用
  • Next.js
    • React で SSR するならデファクト
    • 反面 SPA のように S3 + CloudFront でほっとけない
  • Fargate
    • もともとあった VPC 内の RDS を参照するため
    • Lambda より安定するから ECS 採用
    • Node.js 実行基
  • NestJS
    • バックエンドは NestJS で内部 Route53 をたてて Fargate で実行
    • ルーティングに Internal ALB は使ってない
    • Next.js の API Routes を BFF として使用
  • バックエンドエンジニアが多い
    • バックエンドエンジニアもフロントエンドにコミットできるようにした
    • Turborepo を使ったモノレポ構成
    • CI/CD はパスもチェック
    • Zod を利用

SPA で済むならそれでもよかったけど、SEO が重要なので SSR にしたとのこと。
SSR にすると動かす基盤が必要で、そのときに Fargate 使うならプラットフォームは気になくていいけど、Node.js のアップデート対応が気になるなー。

AWSの次世代プロセッサ Graviton2(Arm64)をLambdaとFargateで使うために考えるべきこと

濱田孝治(ハマコー)さん

speakerdeck.com

マルチアーキテクチャは buildx 入れるのがめんどくさいので一旦諦め。
マルチアーキテクチャにせずに Arm でビルドして Fargate使ったけど、意外と誰も Graviton は本番利用してないのね。

P33 の Lambda のランタイム一覧で、Go に赤枠ついてないけど、Go も Arm 対応してないですね。
Image 作って動かすことならできます。

CloudWatch Logsだけじゃない?要件・制約から考えるログ収集・監視アーキテクチャパターン

新澤忠士さん

  • ログの要件
  • CloudWatch Logs
    • Subscription Fileter で Firehose から S3 へ配置
      • Lambda で Text からバイナリ変換
  • ログの量が多くなると
    • NAT Gateway ではなく VPC Endpoint を通したほうが安い
  • Fargate で Fluentbit を動かして Firehose でバッファリングさせて S3 に吐く
    • CloudWatch を通さずに節約
    • Lambda の場合、標準で CloudWatch に出力させるので IAM で止めてしまう

Log はとりあえず設定して、料金が上位にきてしまうというあるあるなケースに陥ることが多いです。
よほど費用がやばくない限り、コストをかけて改善するかは迷うところ。

所感

参加している人が少なめではありましたが、関西では顔なじみな人が多かったですね。
今回は、ハマコーさんと懇親会でたくさん喋れたのがよかったです。
たぶん、re:Invent 以来でした。