クラウドを使いこなす - マネージド/サーバーレスで運用/保守中心の作業から脱却し、機能開発/サービス提供に注力したいと考える企業が増えています。情報はあちこちにあるけれどどこから始めたら良いかわからない、そんな開発者のための「今から始めるサーバーレス」情報です(随時更新)。

サーバーレスを始めよう  ≫   エンジニア/開発者の方へ  |  アーキテクトの方へ  |  プロジェクト責任者の方へ

NoServerManagement

サーバー管理が不要
(準備、OS 保守)

 
Scalability

柔軟なスケーリング
(拡張/縮退)

 
Availability

十二分に考慮された
高可用性

 
NoIdel

アイドル時の
リソース確保が不要

 

 

 

「なぜサーバーレス?」 それに対する答えとなるビジネス上の意味はいくつかあります。

  • 代表的な効果
      - 開発生産性
          [実例] 33% の生産性向上
      - 運用・保守の効率化
          [実例] ほぼゼロの運用作業
      - アジリティ
          [実例] 展開スピード 5 倍向上
  • あらためて、サーバーレスを理解する
     
    - サーバーレスのおさらい(PDF資料)
  • 参考ホワイトペーパー
      - 企業エコノミクスの最適化
       (技術的な観点から経済的な効果を解説)

次のステップ: 開発環境やフレームワークを整備するとともに、典型的なパターンを認識すれば全体デザインを迅速に進められます。

タブを選択してその情報にアクセスしてください。

  • 1. 開発環境・フレームワーク、サービスの理解

     

    • 利用する開発言語を選ぶ : 好みの言語で始められます
       - Java、Go、Node.js、.NET(C#/PowerShell)、Python、Ruby
       - または、カスタムランタイムで言語を持ち込むこともできます
         (C++RustPHPElixirErlangHaskell...)
       - [New] または、Web Adapter で Webアプリをそのまま動かそう
       - [参考: 中級/上級者向け] AWSome Lambda Layers
          有志によるライブラリ/カスタムランタイム集
    • デプロイ方式を選ぶ
       - zip型(コードを固めて配置)
       - コンテナ型(動画 | 資料

         - ローカル PC 開発環境の整備

            お手元の PC 環境でサーバーレス
            アプリの開発とデバッグを進める
            手順をご紹介します。


    チーム開発・CI/CD 環境の整備
    • すでにご利用のビルド環境に組み込む
      GitHub、Jenkins などと統合したパイプライン構築が可能です
      - [New] SAM Pipeline(参考記事
      - モバイル Web アプリなどの個別 Project 向けお手軽版 : Amplify コンソール
        - [Tutorial] フロントエンドとともにバックエンドをデプロイ
    • 新規に CI/CD を作りたい人向け:
      テンプレートベースのサーバーレス App 作成
      ユースケースを選ぶと、対応した App テンプレートと CI/CD 環境を一気に作成。フレームワークや CI/CD 環境にこだわりがなければ便利!  こちらで機能を紹介しています。

    [1st Step] サーバーレス自己学習ガイド 
    これからの人向けの典型的ステップ

    本ページ上部でご紹介しているハンズオンのその後で参考にすると良い技術資料や次のステップとなるハンズオンを、おすすめの順番で紹介しています(こちら)。

    [Next step] 正規トレーニングコース
    クラスルームおよびデジタルコースを多数ご用意(こちら

    [New] ローコード型: Application Composer
    視覚的なエディタでサーバーレスアプリを設計!  イチからの開発だけでなく、テンプレートを読み込んで見通しよく開発・保守できます
    記事 | Tutorial | 動画

     
  • 2. ユースケースパターン

    動的Webシステム、REST API、ログデータ処理、データの連続加工処理など、
    やりたいこと(ユースケース)から典型的なパターンを選択して、その形/アーキテクチャをベースに検討できます。

  • 3. データ設計・エラー制御・監視・再利用

     

     

  • 4. その他の考慮事項

     

    • アンチパターン
      • [注目!] VPC Lambda はもうアンチパターンではなくなりました!
          → こちら(2019/09)
      • [注目!] Lambda + RDS はもうアンチパターンではない!
          → 利用方法 、技術情報(2020/08)
      • [注目!] Lambda コールドスタートはもはや対処可能です!
          → 1. Provisioned Concurrency 機能の利用(2019/12)
          → 2. 待望の SnapStart 機能(2023/01)
      • [参考: 旧] アンチパターンとチューニング
        - 同時実行数、コールドスタートなどを解説
         → こちら(2017/06資料)
             ただし、記載のアンチパターンはもう過去のものです
    • 本番を想定した負荷テストに関する注意事項
      • 毎秒 x,000 リクエストのような高負荷が予測されるケース(キャンペーン用 Web サイトなど)では、アプリケーション全体として問題ないかどうかをテストする必要があります。これはサーバーレスアプリでも例外ではありません。
      • 実際に負荷をかけると、サーバーレス型サービスで設定されているデフォルトの上限設定で流量制御されてしまう可能性もありますし、サーバーレス型サービス以外の部分が詰まって処理が流れないという可能性もあります。これを確認するには、ある程度を負荷をかけてテストするのが一番です(机上の計算では見落としがよく発生します)。
      • AWS の担当窓口ではこうしたご相談の対応しております。ぜひご相談ください。

     

    • よくある質問: 技術観点
      • Lambda 実行時間: 最大 15分 に処理を区切って設計する。サービス単位のマイクロ化の一つの指針として使うこともできます。
        ファイル処理のケースで 15分を超えそうな場合は、分割並列実行をしてくれる Distributed Map 機能も一案です。
      • Lambda 同時実行数: 初期設定はアカウントで 1,000。
        上限緩和が可能です。高負荷テストなどは、徐々に負荷を上げながら緩和リクエストしていただくことをオススメします。
        関数ごとに同時実行数の上限を設定して処理の優先度を管理することもできます。
      • 処理が細分化すると問題が起きたときの識別やエラー制御が難しい: Step Functions を使うのが一案です。一連のフローの可視化やエラー制御として有効です。
      • 処理が細分化すると問題分析やパフォーマンス分析が難しい: X-RayCloudWatch ServiceLens を使うのが一案です。処理横断型での処理状況の可視化ができます。
      • その他: こちらも参照ください
    • よくある質問: プロジェクト観点
      • 見積もりが難しい
        サーバーレスアプリは複数の異なる AWS サービスの組み合わせとなるので利用料の見積もり計算が煩雑になりがちです。プロジェクトの初期フェーズでまだ詳細アーキテクチャが固まっていない段階での詳細計算をやっても、ブレが出ますのでは労力に見合わない可能性があります。以下のようなテクニックを使っているお客様もいらっしゃるので参考にしてください。
        1. 概算見積もり(およその予算感が求められる段階)では、精緻な計算をするよりも、対象ユースケースに近い見積もり例を参考に、それとご自身のケースの規模感の差異(倍率)で概算します。
          • 例: 会員向けサイトを想定の場合、自身の対象のアクティブ会員が 8万だとしたら、こちらの例(アクティブ会員 1万のケース)を 8倍にして予算感を把握します。このようなユースケース別の見積もり例はいくつかあり、ユースケースパターンのページから辿ることができす。
        2. 概算見積もりで企画が通った後、機能確認目的も兼ねて、小さなプロトタイプを作ってみます。これでアーキテクチャの調整をしながら、小さい実負荷で費用感を確認できます。本番の想定負荷の比率を掛け算することでより実利用に近い費用予測をたてられます。
 

 


関連情報・ご相談

サーバーレスのビジネス価値を数字で理解
 ≫ 「サーバーレスのビジネス効果とは

アーキテクト・設計担当にご紹介したい
全体設計の考え方のページ
 ≫ 「形で考えるサーバーレス設計

資料請求やユースケース相談がしたい
 ≫  AWS クラウドの無料相談

技術的なディスカッションがしたい
 ≫  AWS Loft Tokyo - Ask an Expert
     などが利用可能です