Skip to content

Serverless

SST入門

SvelteKitをAWSのLambdaで動かす方法を探していて、ゼロコンフィグデプロイ • Docs • SvelteKitUse SvelteKit with SST | SSTが紹介されていた。

SSTってSega Sound Teamしか知らないけど、Serverless Stackの略らしい(Tはどこから?)。

で、ドキュメントに沿って動かしてみたら、いい感じにデプロイできた。

が、Prismaを使ったツールをデプロイしたら

“PrismaClientInitializationError: Prisma Client could not find its schema.prisma. This is likely caused by a bundling step, which leads to schema.prisma not being copied near the resulting bundle. We would appreciate if you could take the time to share some information with us.”,

Read more

C101PAでOracle Functionsを試す

OCHaCafe参加前に触っておこうと思い、その準備。

OCIインストール

手順は公式からコピペで。

$ bash -c "$(curl -L https://raw.githubusercontent.com/oracle/oci-cli/master/scripts/install/install.sh)"

fatal error: Python.h: No such file or directoryエラーで落ちたので、python3-devパッケージをインストール。

$ sudo apt-get install python3-dev

OCI再挑戦。先程作成したディレクトリを削除するか聞かれるので、削除(y)して継続。 ちなみにインストール先など入力は全部デフォルトで通した。 今度はfatal error: ffi.h: No such file or directoryで落ちた。

Read more

OCHaCafe2 #3 Serverlessな世界をのぞいてみよう!

https://ochacafe.connpass.com/event/147285/

ServerlessDaysで紹介されていたイベントです。

ちょうどサーバーレスの回だったので参加しました。

18:30 受付開始 

  • お菓子もらいました

19:00 オープニング

  • OCHA Cafe Premiumやるよ
    • Oracle Cloud で考える高可用性アーキテクチャ
  • ビッグデータのイベントもやるよ

19:10 セッション開始

Serverless Days Tokyo 2019

サーバーレスに特化したカンファレンスです。 4回目の開催ですが、初参戦です。

https://tokyo.serverlessdays.io/

09:00 はじめに / 諸説明

  • meetup 4年目
  • 大企業での採用が進んできている

09:10 10x Serverless Product Development for a Startup with Microsoft Azure

Yutaka Tachibana(EBILAB)

  • 飲食店の生産性向上
  • 来客人数の予測(過去実績、天気などから)
  • 入店率も計算している
    • 店頭のディスプレイでA/Bテストも可能
  • データソースが増えても追加実装は簡単
  • PowerBI Embedded
    • レポートをノンコーディングで作成できる
    • エンジニアはレポート追加にノータッチ
  • サーバーレスで実装したメリット
    • 開発運用コストが少ない
    • 将来的にスケールした場合の楽観的
    • 責務分割が自然にできる
    • 協業・分業しやすい

09:50 break

10:00 Keynote

Keisuke Nishitani (AWS)

  • EventDriven
    • 呼ぶ側と呼ばれる側が疎結合にできる
  • aurora, ecs も2014年のre:inventで発表された
  • モダンアプリケーション
    • 市場投入を加速
    • イノベーションの向上
    • 信頼性の向上
    • コスト削減
  • All you need is code
    • 付加価値を産まない重労働からの開放
  • 5年たった今も
    • We’re still writing code
  • もっとコードを減らすためには
    • どういう問題をどう解決するのか

10:40 10 min break

  • スポンサーLT

10:50 Keynote: Infinite Scaling, Finite Failures: Serverless Resiliency Patterns and Lessons Learned

Katy Shimizu (Microsoft)

  • 失敗は絶対に起こります。アプリケーションがそれらを処理する必要があります
    • Data source
    • Customer code
    • Serverless/Fass layer
    • External dependency
    • IaaS/Pass
    • Datacenter/Infra
  • 失敗例
    • レースコンディション
    • ネットワーク障害
    • レート制限
    • ハードウェア障害
  • 依存関係を知る、依存関係が失敗する方法を知る
    • デザインパターン
  • デザインパターン
    • 再試行
      • サービスに組み込まれている
    • サーキットブレーカー
      • 耐久性のあるエンティティを試す
  • 新製品を使用すると、回復力が容易になります
    • Durable Functions 2.0
    • Premium hosting plan
  • サーバーレスは改善され続けています

11:30 10 min break

11:40 グローバル展開のコネクティッドカーを支える大規模サーバーレスシステム事例

Yuya Urayama (TOYOTA), Takanori Suzuki (Acroquest Technology) and Eiichiro Uchiumi (AWS)

  • なぜサーバーレスを選んだのか
    • Connented Platform
      • 日本・中国・北米でサービス提供中
    • 無駄の削減のため
  • 夜間と日中のアクセス数の差が大きい
    • 日中のアクセス数に合わせたリソース確保→無駄
  • 長く乗られる(平均8.5年)
    • パッチあてなどの保守工数→無駄
  • 広い地域での提供
    • 各国現地にリソース確保→無駄
  • 設計指針
    • 一貫した方法でコンポーネントを分割
    • 緩やかに統合
    • プロセスをステートレスに構成
  • アーキテクチャスタイル
    • Nティアー
      • コンポーネントを役割に応じて分割する
    • ウェブキューワーカー/イベントドリブン
      • ロジック層をウェブとワーカーに分割する
    • マイクロサービス
      • ライフサイクルを共有する最小単位でコンポーネント群を複製し、自律稼働境界を設定
  • 実装パターン
    • リアクティブスケーリング型
      • API GW + Lambda
      • 基本はこっち
    • プロアクティブスケーリング型
      • ALB + Fargate
      • ある程度余裕をもたせたい、スケールをコントロールしたいとき
    • P2P
      • SQS
    • ファンアウト
      • SNS
    • イベントストリーミング
      • Kinesis Data Streams
    • ワーカープロセス
      • Lambda
  • 特徴
    • トラフィックの特性によってスケーリングパターンを選べる
  • デプロイメントはカオス
  • 課題
    • 開発量は少なくなったがテストしにくい
      • CI/CDパイプラインでのテスト実行環境の整備
      • Localstack、Karateを利用
      • イベントドリブンな部分のテスト、非同期の処理結果も確認している
    • 各機能はシンプルになったが全体が見にくい
      • X-Rayを利用
    • 自動スケールは便利だがコントロールすべき要素が出てきた
      • リトライ用Lambdaが数千並列した
        • アカウントに対する同時実行数の上限までスケールした結果、他のLambdaの起動が妨げられる
      • コールドスタート問題
        • 時間がかかる処理が重なってAPI/GWがタイムアウト
        • ENIのIP枯渇
  • 運用フェーズ
  • 激務コンテナ・サボりコンテナ問題
    • アクセスログ数を気合でカウントした結果
      • 激務もサボりもなかった
    • どんなメトリクスをどの粒度でどう見るかを予め検討する
  • 運用コストが下がった結果
    • 運用にかけていたコストを開発に回した
    • デプロイサイクルの高速化
  • 今後の展望
  • スケーリングを最適化
  • プラットフォームの挙動をより的確に把握
  • 問題が生じた際の回復を自動化

12:20 Lunch

13:20 All You Need Is JavaScript

Jensen Hussey / Cloudflare

  • Cloudflare worker
    • サーバーレス用JS実行環境
    • V8エンジン採用
      • WebAssemblyが使えるので、JS以外の言語でも開発可能
    • ユーザーの地理情報を利用してエッジで翻訳することができる

13:40 short break

13:45 Zero Scale Abstraction in Knative Serving

Tsubasa Nagasawa (CyberAgent)

https://speakerdeck.com/toversus/zero-scale-abstraction-in-knative-serving

Read more

Serverless Meetup Tokyo #14

Serverless Meetup Tokyo #14 https://serverless.connpass.com/event/143446/

19:10-19:15 Opening Talk 堀家 隆宏 (Serverless Operations LLC. CEO)

  • Serverless Daysやるよ

19:15-19:20 会場案内、告知 株式会社Speee

  • Good Coffee -> Good COde

19:20-19:40 機械学習MVPにServerless Frameworkがオススメな理由 池田 雄太郎(株式会社 KaizenPlatform)

  • 短期的・長期的ダイナミクス
  • 短期的:一時的に大量なリソースが必要
  • 長期的:やってみないとわからないやつ
  • ー>リソースのスケールが必要
    • ー>そこでserverless
  • Serverlessの悩み
    • ベンダー、性能、セキュリティ、設定・デプロイ
  • 使うBaaSが多くなりがち
    • 管理が大変
  • DevOps環境の構築が大変
  • そこでServerless Framework
    • リソース情報を一括管理できる
    • yaml の custom で定義
    • CFnも書く必要がある?

19:40-20:05 今Serverlessが面白いわけ(v19.09) 川崎 庸市(Microsoft Corporation)

  • Serverless != サーバーがない
  • Serverless = サーバーを管理する必要がない
  • Serverlessの定義
    • スケーリング
    • 管理不要
    • 本質的な作業に集中
  • 人類の問題解決
  • FaaSはインフラ進化の賜物
    • コンテナ
    • 実行単位が分離されている→セキュリティ有利
    • CGI-Bin?
    • データストアの進化
      • 水平スケール大事
      • NoSQLがマッチしている
    • 進化の方向性
      • 自動化、抽象化、標準化
  • 標準化が課題
    • ベンダーロックインの懸念
    • CNCF Serverless WGで進められている
    • Cloud Events
      • イベントスキーマ標準化のための共通仕様
    • 複雑性の抽象化
      • Terraform, plumi
  • マルチクラウド化対応
    • K8sベースのServerless環境
    • K8sがインフラを抽象化
    • Knative, KEDA
    • クラスタレス
      • バッチ処理とか
    • Virtual Kubelet
      • クラウドのリソースをK8sから管理

20:15-20:35 AWSで開発するサーバレスAPIバックエンド 三宅 暁(フリーランス)

  • AppSync,DynamoDB,Cognito でGraphQLなAPIを作る
  • GraphQL
    • スキーマファースト
  • Amplify->AWSにロックイン
  • Serverless FWにAppsyncのプラグインがある
  • VTL=Apache Velocity Template Language?
  • ノンコーディング

20:35-20:40 今日飲み物持ち込んでるエフセキュアのサーバーレス向けセキュリティ 河野 真一郎(エフセキュア株式会社)

  • AWS,GCP,Azure向けがまだない。

感想

  • Serverless Framework 使ってみよう
  • Knative も触ってみよう
  • Serverless Days 申し込もう