💬

AWS初心者がJAWS DAYS に初参加した話 #jawsdays2024

2024/03/03に公開

はじめに

先日池袋サンシャインシティで開催された JAWS DAYS 2024に参加してきました
とにかく何かアウトプットしたい気持ちになったので聴講したセッションや感想をまとめます

https://x.com/tasks_sch/status/1763729040748523583?s=20

JAWS DAYS って何?

https://jawsdays2024.jaws-ug.jp

JAWS DAYS という単語を初めて聞く方もおられると思うので,簡単に説明します

JAWS-UG(AWS Users Group - Japan)のメンバーが中心となって開催する技術コミュニティイベントで,全国各地のエンジニアたちが AWS にまつわる最新技術や活動などを共有,交流する場となっています
JAWS DAYS は特に規模の大きいイベントで,40 を超えるセッションが実施されました.

JAWS-UG って何?

https://jaws-ug.jp/about-us/

JAWS-UG とは、AWS (Amazon Web Services) が提供するクラウドコンピューティングを利用する人々の集まり(コミュニティ)です。
一人ではできない学びや交流を目的としてボランティアによる勉強会の開催や交流イベントなどを行なっています。
私たちは日本全国に「支部」の形でグループを持ち、それぞれのテーマに基づいて活動を行なっています。
このコミュニティーは、非営利目的で活動しています。

参加したセッションと感想

参加したセッションの中で特に印象的だったものを

ぼくのかんがえたさいきょうの AWS へのリソースデプロイ

https://jawsdays2024.jaws-ug.jp/sessions/timetable/C-1/

Infrastructure as code(IaC)を実現するためのツールや,デプロイ方法などについて,参加者へのリアルタイムなアンケートも交えたパネルディスカッション形式のセッションでした.
特にツール選択で悩みがちな,terraform と aws 謹製ツール(Cloudformation, cdk など)のそれぞれの強みについて聞けたことや,新規でプロジェクトを建てるときにどのツールを選ぶか,といった話が面白かったです.

これまであまり触っていなかった Code Catalyst の話なども聞けて良かったです.今度個人で触ってみたいと思います.
(もっと話を聞きたかった...)

CDK conferrence 2024 が 07/20 に目黒で開催されるそうなので,予定があえば行きたいですね

当時のメモ

IaC のツール選択とディスカッション

  • Cfn
  • terraform
  • CDK
    • custom resouce(lambda 実行でデプロイ)が実装
  • SAM
  • pulumi
    • pulumi -> terraform のラッパー
    • マルチクラウド, saas に展開可

辛いところ

  • terraform
    記述量が多くなる
    lambda のデプロイが難しい
    (Python デプロイとか辛い)

provider によってはクオリティのブレが大きい

  • cdk
    抽象化しすぎて,知らない SG やロールができてる

とっつきやすい

sam(サーバレスに限ってはやりやすい)
terraform(HCL の学習コスト, json は無理)
cdk-tf (cdk を terraform に, json 形式)

other
Lambda でやることが多い時,serverless framework を使う(有料)

デプロイ

  • OIDC で github actions 実行

  • terraform cloud について

    • terraform を組織で実行するもの
    • workspace に state ファイルを保存
    • workspace と actions を紐付ける
    • エンタープライズ目的,Policy as code を実現(secure に管理)
  • code catalyst

    • コード管理,ci/cd,issue の管理を一つのサービスで実現する
    • actions と似たような感じで workflow を作成する
    • blueprint というサンプルコードが 18 種類ぐらいある
  • pipecd

    • gitops を実現
    • コンテナイメージを見に行って変更があったらデプロイされる
    • pull 型のデプロイ
    • pull vs push
      • push 型の方がシンプル
      • github にコードが変更されたら deploy
      • pull 型のメリット:権限委譲ができる(開発者は弱い権限,デプロイは強い権限)

新しい環境で何を選ぶか

  • cdk が多い

    • コンストラクトを流用すればあまり記述しなくてもカスタムリソースがデプロイしやすい
    • yaml よりもコードで制約したりリンターを利用できるのが良い
  • terraform

    • デプロイが早い
    • コードで制約 - スキルレベルで記述感がばらつく
    • コードの品質がある意味一定になりやすい
    • Actions に精通していないので,terraform cloud で pipe line が定義しやすい
    • intellij でサポートを受けられる
  • 型定義で縛るか,パラメータ値を並べる方が良いか

  • Console -> IaC Generator -> Cfn

  • Application Composer > SAM

  • CDK > Cfn > Application composer

さいきょうのデプロイ

OIDC で tempolarry credential
VPC 内のリソースアクセス(アプリケーションのテスト)

  • Self hosted runner (VPC 内に EC2 を建てる)
  • Code build を VPC 内にデプロイしてテストする
  • Code catalyst で VPC 内のリソースにアクセス

モノレポの話

terraform の場合は分ける

  • atlantis(Fargate 上にデプロイし GitHub の状態を check する)

ローカルデプロイ vs pipeline 一個建てる

フル AWS のマルチテナント SaaS 生成 AI アプリ「かぐたん」開発秘話

https://jawsdays2024.jaws-ug.jp/sessions/timetable/C-5/

私自身も業務で生成 AI アプリを開発しているので,とても興味があるセッションでした.
個人的には LLM と API Gateway の 30 秒タイムアウト制約に苦しんでいるので ECS on Fargate でコンテナアプリ化するのもアリだなと思って聞いてました.

また,マルチテナントのデプロイどうする問題や RAG 用のデータはどうするのかといった共通の課題も出ていたので,いつかのイベントで話せたらいいなぁ...

Believe In Serverless ~真のサーバレスを目指して~

https://jawsdays2024.jaws-ug.jp/sessions/timetable/E-8/

前半は Momento という会社や提供するサービス,後半は Serverless との向き合い方などに関するパネルディスカッションでした

Momento については以下をどうぞ

https://jp.gomomento.com/
https://zenn.dev/topics/momento

セッションの中で繰り返されていて印象的だったのは,クラウドをクラウドらしく使うのが Serverless であり,クラウドのメリットを最大限活かせる方法を考えた時に自然と採用されるパターンだということでした.
Serverless は最小限の労力でやりたいことを実現していく方法であり,これまで歩んできたということを噛み締めたいと思います

当時のメモ

Serverless とは

サーバーレスの特徴

  • サーバーを意識する必要がない
  • イベントドリブン
  • イベント単位に使った分だけ

クラウドをクラウドらしく使う方法 > serverless

  • Lambda を使うとか使わないとかの話ではない

10 年後,どういうアーキテクチャでどんなサービスを提供しているのか,という視点で考えたら自然に serverless になった

serverless > やりたいことをすぐに実現できるのが良いところ > いかに簡単にやるのか(ec2 建てる方がやれることは多い)
いかに簡単にやりたいことを実現するためにやってきたのかというのがこれまでの歴史

とにかく爆速でサービスを展開したい
労力を最小限に最大のサービスを

今のサーバーレスのトレンドって?
API GW, Lambda, DynamoDB だけが Serverless アーキテクチャだけではない
laravel on lambda でサーバレス運用だってできる
https://bref.sh/

AWS LLM 開発支援プログラム:開発者から学ぶ、LLM 開発の最前線

https://jawsdays2024.jaws-ug.jp/sessions/timetable/D-9/

独自 LLM 開発のための AWS 支援プログラムに参加された開発者のパネルディスカッションでした.
ビジネスのコンテキストを理解して回答させるモデルや,より流暢な回答を行うモデル,マルチモーダルのモデルなどいくつもの種類のモデルがこの支援プログラムを通じてリリースされており,今後もこういったリリースが増えていくんだろうなと思わされる内容でした.
特に LLM の学習には膨大なパラメータを調整するためのコンピューティングリソースが必要なので,短期間で強力な計算資源を用意できるクラウドは相性が良いんだろうなと思いました.

当時のメモ

stockmark
llm 開発のモチベーション.汎用型 llm が世間では人気だが,特定領域「ビジネス」に強い llm を作成する
ビジネスに関するデータセットを持ってモデルを作成した
既存のモデルよりビジネス分野の知識を持つ

nvidia A100 よりも AWS Trainium を使うことで迅速にリソースを確保できた
分散学習を行うためのインフラが用意されている
end 2 end で学習をおこなうこおgあできた

カラクリ
カスタマーサポートを助ける
how to llm

  • llama2 ベースの事前学習
  • 独自収集した customer service 特化コーパス
  • fine tuning
  • trainium

1000 万円程度の計算量

Japanese mt bench で最高性能
英語を維持しつつ日本語も対応

hugging face で配布
70B で汎用的な性能を維持

steerLM によるパラメータの調整幅がある

next...
軽量化,json モード対応
AWS Marketplace 対応
独自 llm 開発支援.特化型 llm 作成

turing
複雑な交通環境に対応するためのマルチモーダル llm
運転に関するデータを判断する
視覚情報を入力として複雑な判断を任せる

AWS で学習リソースと分散学習

運転ドメインに特化させるために...

パネルディスカッション

モデルの特徴

カラクリ

  • カスタマーサポートメインなので,日本語が流暢であることが重要(機械翻訳を利用しない)

stockmark

  • ビジネスに関連するデータを持っている
  • クリーニングのノウハウが溜まっている

turing
安全性,堅牢性を高めることが大事
モデルサイズをどうしていくかが課題

モデル開発の難しさ

パラメータを増やせば能力は上がるが,コンピューティングリソースが肥大化する

turing
LLM を載せるためにコンピュータを載せるので,価格,コンピューティングリソースも大きくなる

パラメータを小さくしたいが期待する能力が出ない...

stockmark

大きなモデルと小さいモデルを別々に用意する.個別最適にモデルを利用させる

カラクリ
推論時のコストが課題
パラメータが大きくなると,用意に必要なデータ増える
学習より推論に課題感

70B モデルを作成した理由

  • 当時最大サイズ.実用レベルに達する見込み
  • 7B, 13B との明確な違いはあるか?
  • 使うと体感全然違う

モデル利用者から見たときに
モデルが大きくなると難しくなることは?

  • コスト
  • モデルを作ることに色々コスト(何回も試行できないし,最後どうなるか分からないのが辛い)
  • リアルタイム性やスループットが課題(5,6 秒もかかる)
    • 車に載せるにはパラメータサイズは小さくしたい

NeuronSDK について

開発環境が AWS 謹製なのでやりやすい
分散学習の手法については試行錯誤が必要だったけど,一回走り始めたら順調だった

使い勝手はまだ...
コスト効率は良い

たくさん短期間で使う

今後の LLM について

multi-modal llm について
自動運転以外の展望,展開について

今はテキストチャットが主
画像,動画で使えるともっと利用シーンが増える

携帯の写真や音声メッセージなど,もっとシームレスに統合される

これから生成 AI を活用していく開発者に対して
どういうところにニーズがあるのかを絞って検討していく
どういうものをクリアすればニーズを満たせるのかを持つ
ベンチマークのスコアに現れない指標を満たせるのかを考える

Serverless を高速化しよう!試して感じるパフォーマンスチューニング

https://jawsdays2024.jaws-ug.jp/sessions/timetable/E-11/

DAYS 最後のセッションはハンズオン形式で Serverless リソースのデプロイとチューニングを体験できる内容でした
↓ 当日のリポジトリ
https://github.com/seike460/serverless-performance-handson

普段あんまり負荷テストを実施したりパフォーマンスチューニングをしたことがなかったので,こんなことができるんだ! という驚きと,普段の業務でもパフォーマンスを気にしないとという意識が芽生えました.
明日からでも応用できそうな内容でとても参考になりました.

懇親会

全セッション終了後,参加者同士で交流を行う懇親会がありました.
そこでは,過去の JAWS-UG のイベントで出会った方と再会できたり,新しい出会いがあったりと,とても楽しく過ごすことができました.

が,

半分ぐらいの時間はぼっちだったり,登壇者に質問できてなかったりと,少々悔いの残る時間になってしまいました...
初心者かつソロ参加はなかなか厳しくなってきたので,今度は社内 or 社外の人と一緒に行けたら良いなぁ...

まとめ

色んな話を聞けてとても濃い 1 日を過ごすことができました.
またイベントがあれば参加したいですし,いつか私も登壇したい!!
次こそはもっと色んな人と話すぞ!!!!!!!!!!!

GitHubで編集を提案

Discussion