tracpath:Works
  • 検索
  • 開発
  • CI/CD
  • ストーリー
  • Cloud
  • ブログについて
  • プライバシーポリシー
  • ホーム[↑]

AWS Lambdaを活用したサーバーレスアーキテクチャのメリットをざっくり理解する

By tracpath • 2016-09-15 • Cloud

はじめに

AWSのクラウドサービスがエンタープライズで利用されるようになり、Amazon EC2による仮想サーバーとしての利用からさらに進み、サーバーレスアーキテクチャを採用する場面が増えてきました。

サーバーレスアーキテクチャは適材適所で大きなメリットがあります。

サーバーのコストを削減する方法・少しでも減らすための設計が必要ですか?

Amazon EC2などのクラウドサーバーは、時間単位の課金のため、一見料金が安く見えます。しかし長時間稼働させるサービスでは、たとえリクエストが1時間に1回しかなくても起動時間分の料金を支払わなくてはいけません。これはかなり非効率ですね。結局、クラウドサーバーにしても料金が高くついてしまうことはよくあります。サーバーのコストに悩まされているなら、「AWS Lambda」の導入を検討してみましょう。

この記事では、サーバーのコストを削減したいエンジニアの方のために、AWS Lambdaの概要や特徴、料金体制などについてお伝えしていきます。ぜひご一読して、サーバーのコストダウンに役立ててください。

AWS Lambdaはどんなサービスなのか?

公式サイト:https://aws.amazon.com/jp/lambda/

AWS Lambdaは、Amazon Web Services(AWS)のひとつで、コードを実行することに特化したサービスです。類似のサービスには、Google Cloud FunctionsやMicrosoft Azure Functionsなどがあります。実行するコードは、AWS Lambdaのプログラミングモデルに合わせて、Node.js(JavaScript)やJava、Pythonで記述します。後は記述したコードをアップロードするだけで、自動的にサーバーをプロビジョニングして実行してくれます。Lambda(ラムダ)という名前の通り、実行できるのはステートレスな(状態を持たない)関数です。状態は、Amazon S3やDynamoDBなど他のAWSサービスに保存します。

AWS Lambdaの特徴

サーバーを管理する必要がない

Amazon EC2のように、自分でサーバーをプロビジョニングしたり、管理したりする必要はありません。コードを実行するサーバーは、AWS Lambdaが自動的に作成し、リクエスト数に応じて自動的にスケールしてくれます。これにより、エンジニアはコードを書くことに集中でき、サーバーの心配をする必要がありません。

AWS Lambdaではリクエスト数と実行時間に応じて課金される

EC2では、サーバーの起動時間に応じて1時間単位で課金されるため、数分使用するだけでも1時間分として請求されます。また、リクエストが少ないサービスであっても、リクエストを待ち受けるために、常に起動しておかなければならずムダが生じてしまいます。AWS Lambdaは、リクエスト数とコードの実行時間に応じた料金体制になっており、本当に必要なリソースだけに料金を支払えます。サービスによっては、大幅なコストダウンが望めることでしょう。

AWSの各サービスと簡単に連携できる

AWS Lambdaは、一般的に他のAWSサービスと組み合わせて使われます。そのため、各AWSサービスと簡単に連携できるようになっています。たとえば、S3やDynamoDB、Kinesisなどです。他のAWSサービスの状態の変化やリクエストに反応して、AWS Lambdaのコードが実行されます。コードが実行される条件は、AWSの管理コンソールから設定します。

AWS Lambdaはいつ実行されるのか?

プルイベントモデル

プルイベントモデルは、AWS Lambdaがイベントソースをポーリングして、イベントを検出しコードを実行する方式です。イベントソースには、KinesisやDynamoDB Streamsなどが指定できます。たとえば、Kinesisストリームにレコードが書き込まれたときに、AWS Lambdaのコードを実行するように設定できます。

プッシュイベントモデル

プッシュイベントモデルは、他のAWSサービスからAWS Lambdaにイベントを発行してコードを実行する方式です。イベントソースには、S3やSNS、Cognito、Echoなどが使えます。たとえば、S3のバケットに書き込みがあったときに、対象のオブジェクトに対してAWS Lambdaのコードを実行できます。

また、Amazon API Gatewayと組み合わせると、REST API呼び出しに反応して、コードを実行しレスポンスを返すようにできます。活用方法としては、APIサーバーの置き換えが考えられます。

サーバーレスアーキテクチャにも活用されている

AWS Lambdaが注目を集めている理由のひとつには、「サーバーレスアーキテクチャ」があります。サーバーレスアーキテクチャは、運用コストがかかるサーバーをなくしてしまおうという考え方です。とはいえ、現実問題なんらかのサーバーは必要不可欠です。ではどうするかというと、EC2の代わりにAWS Lambdaを使って、管理が必要なサーバーをなくします。これで運用コストを削減できます。

AWS Lambdaの料金体系と無料枠


(Photo by:Viaggio Routard)

AWS Lambdaの料金体系は無料枠が充実しており、小規模なサービスであれば無料枠だけでもまかなえます。しかも、12ヶ月の制限がないため、いつまでも無料枠を使い続けることが可能です。課金は、次の2つの要素によって行われます。

リクエスト数による課金

100万リクエスト当たり0.2ドルが課金されます。つまり、1リクエスト当たり0.0000002ドルです。月当たり100万リクエストまでは無料で利用できます。

コードの実行時間(メモリ割り当て量)による課金

AWS Lambdaでコードを実行する際には、割り当てるメモリのサイズを128MB~1536MBの範囲で設定できます。課金はメモリの割当量に対して行われるため、メモリの割当を増やすと、必然的に時間当たりの料金が高くなります。メモリ1GB-秒当たりの料金は、0.00001667ドルです。月当たり400,000GB-秒までは無料で利用できます。つまり、128MBのメモリ割り当て設定でコードを実行する場合、320万秒分が無料になります。

まとめ

あなたのサービスにAWS Lambdaは活用できそうでしょうか?多くはアーキテクチャの変更を必要とするため、既存のサービスを簡単には移行できないかもしれません。影響の少ない部分から徐々に移行していくとよいでしょう。また、新規サービスを設計する際に、AWS Lambdaを活用できないか検討してみることをおすすめします。慣れたアーキテクチャよりも開発コストは増えますが、最終的な運用コストで取り戻せるでしょう。あなたのサービスをAWS Lambdaでよりモダンにしてみませんか?


本ブログは、Git / Subversion のクラウド型ホスティングサービス「tracpath(トラックパス)」を提供している株式会社オープングルーヴが運営しています。

開発の効率化をしたい!もっと便利なツールを使いたい!そんなお悩みをtracpathで解決!

「tracpath(トラックパス)」は、企業内の情報システム部門や、ソフトウェア開発・アプリケーション開発チームに対して、開発の効率化を支援し、品質向上を実現します。
さらに、システム運用の効率化・自動化支援サービスも提供しています。
”つくる情熱を支えるサービス”を提供し、まるで専属のインフラエンジニアのように、あなたのチームを支えていきます。

クラウド型バグ管理・バージョン管理ソフトの「tracpath(トラックパス)」を提供しているオープングルーヴが運営しています

AWSAWS Lambda
Tweet
0
トヨタに学ぶ!リーンソフトウェア開発の7つの原則
Docker による環境構築に必要なコンテナイメージの管理を考える、Amazon ECR と Docker Hub の料金を比較も解説

About the Author

tracpath

You Might Also Like

  • Tortoise Gitをもっと使いこなす〜発展編〜

  • Gitの実践的運用について〜git-flow/GitHub flow〜

  • クラウド化を考える。オンプレミスの考え方とマネージドサービスを活用する考え方、クラウドサービスのメリットを享受しよう

  • AWSの監視に専用ツールは不要!AWS CloudWatchで運用監視

No Comments

    Leave a Reply Cancel Reply

    This site uses Akismet to reduce spam. Learn how your comment data is processed.

    チーム開発のノウハウ資料ダウンロード


    tracpathのサービス内容とチーム開発に必要なノウハウを紹介した限定資料

    twitterでフォロー

    @tracpathさんをフォロー

    Twitter

    Tweets by tracpath

    最近の投稿

    • Visual Basic.NET(VB.NET)の基礎

      2021-07-08
    • ソースコードを静的解析するオープンソースのSourcetrailで効率よく解析

      2021-07-02
    • YAML入門

      2021-06-30
    • doxygen入門

      2021-06-29
    • JSON入門

      2021-06-18

    DevOps導入:tracpath

    人気の記事

    WindowsにJobSchedulerをインストールする手順を解説

    On 2015-10-15
    01

    IPAのウェブアプリケーション・セキュリティ要件を確認する(セキュリティ要件確認支援ツール)

    On 2015-07-31
    02

    商用利用OK!オープンソースの日本語フリーフォントをご紹介

    On 2015-07-09
    03

    スマホやタブレットに最適なグラフ描画ライブラリの紹介(オープンソース)

    On 2015-08-07
    04

    オバマ大統領「プログラミングを学ぶことは自分のためだけではない。国の将来がかかっているのだ。」

    On 2015-05-28
    05

    〜お気軽にご相談ください〜

    〜採用情報〜

    こちらのサイトを運営している株式会社オープングルーヴでは、技術者の求人を募集しています。
    開発者のためのバージョン管理・プロジェクト管理ツールtracpathを一緒に作りませんか?
    採用情報の詳細はこちら
    Git/Mercurial/Subversionのクラウド型ホスティングサービス
    詳細を見る

    © 2019 tracpath.com All rights reserved.