AWS Lambda、サーバーレスコンピューティングフレームワーク:チートシート - TechRepublic

AWS Lambda、サーバーレスコンピューティングフレームワーク:チートシート - TechRepublic

画像: iStock/Jakub Jirsak

クラウドコンピューティングの本来の売り文句は、組織のニーズと成長に合わせてコンピューティング能力を拡張できることです。物理ハードウェアを事前にプロビジョニングしたり、インストール、ハードウェアのメンテナンス、そして最終的な廃止といったライフサイクルタスクに対処したりする必要がなくなります。「サーバーレス」コンピューティングサービス、中でもAWS Lambdaは、コンピューティングリソースを提供する「as a service」モデルにおける論理的な次のステップです。(注: AWS Lambdaに関するこの記事は、無料のPDFダウンロードとしてもご利用いただけます。)

TechRepublic による AWS Lambda 入門は、サーバーレスコンピューティングフレームワークの入門です。この記事は、最新のアップデートや統合を反映するために定期的に改訂されます。

参照:サーバーレスコンピューティングへの準備(ZDNet 特別レポート) |レポートを PDF 形式でダウンロード(TechRepublic)

AWS Lambda とは何ですか?

AWS LambdaはAWSカタログのサーバーレスコンピューティングコンポーネントであり、開発者は「フル」サーバーやAmazon EC2のようなコンピューティングインスタンスをプロビジョニング・管理することなく、任意のコードをオンデマンドで実行できます。AWS Lambdaタスクはトリガーされると、通常数ミリ秒以内に実行されます。AWS Lambdaオペレーションの処理時間は300秒に制限されており、使用量に応じて課金されます。課金はミリ秒単位で切り上げられます。

他のクラウド コンピューティング サービスと同様に、課金は実際に使用されたコンピューティング リソースの量を反映します。タスクが実行されていない場合は料金は発生しません。

追加リソース:

  • サーバーレスコンピューティング:ITリーダー向けガイド(TechRepublic Premium)
  • サーバーレスコンピューティングについて知っておくべき5つのこと(TechRepublic)
  • サーバーレスの世界が進化するにつれ、AWS Lambda が関心を集め、本番環境のワークロードが増加 (ZDNet)
  • ミニ用語集:知っておくべきクラウドコンピューティング用語(TechRepublic)
  • Amazon Web Services: インサイダーズガイド (無料 PDF) (TechRepublic)

AWS Lambda を使用する利点は何ですか?

アプリケーションワークフローにAWS Lambdaをスマートに導入することで、タスクがLambda関数にオフロードされるため、組織内の既存インフラストラクチャのパフォーマンスを向上させることができます。AWS Lambda関数は、アプリケーションから呼び出されるとオンデマンドで実行されるため、クラウドホスト型の仮想マシン(VM)ライフサイクル管理ルールでは実現できない、極めて可変性の高い自己管理型ワークロードを実現します。アプリケーションをサーバーレス関数に依存するように設計することで、開発者はEC2の可変ワークロードをLambdaにオフロードできるユースケースにおいて、クラウド導入コストを削減し、十分に活用されていない大容量インスタンスを削減できます。

参照: クラウド コンピューティング ポリシー (TechRepublic Premium)

AWS Lambdaは、様々な種類のデータを扱うクラウド向けプロセスの処理に役立ちます。例えば、写真共有ウェブサイトでは、写真がAmazon S3バケットに追加された際にAWS Lambdaを呼び出してサムネイル用の画像サイズを変更できます。AWS Lambdaオペレーションは、AWSのあらゆるAPI呼び出しに応じてトリガーできます。

AWS Lambdaは、Java、Go、PowerShell、Node.js、C#、Python、Rubyのコードをネイティブにサポートしており、追加のランタイムAPIにより、より多くのプログラミング言語に対応しています。Lambdaの課金単位は100msであるため、実行開始時に追加のオーバーヘッドが発生するJavaなどの言語の使用は推奨されません。AWS Lambdaは、Amazon Linuxでサポートされている任意のプロセスを呼び出すために使用できます。

EC2などのクラウドホスト型VMと比較すると、メンテナンス時間と運用コストはプラットフォーム運用者の責任となります。サーバーのプロビジョニング、オペレーティングシステムのインストールと設定、関連ライセンスの管理、ロードバランサーの導入といったタスクは、AWS Lambdaを含むサーバーレスプラットフォームでは考慮する必要はありません。

このため、サーバーレスセキュリティ企業PureSecのCTOであるOry Segal氏は、「AWS Lambdaを使用すると、EC2などの従来のVM/コンテナベースのサービスと比較して、約3分の1から10分の1程度コストが削減されます。ただし、これは特定の種類のワークロードにのみ当てはまります。最悪の場合、AWS LambdaのコストはEC2と同程度か、わずかに高くなる可能性があります。結局のところ、AWS Lambdaの使用方法が重要です。組織は、実行する必要があるワークロードの種類を慎重に評価し、最も適切なコンピューティングオプションを選択する必要があります。」と述べています。

参照: AWS Lambda、サーバーレスコンピューティングフレームワーク: チートシート (無料 PDF) (TechRepublic)

追加リソース:

  • クラウドからクライアントへ直接:サーバーレスコンピューティングが中間コストを削減(ZDNet)
  • RightScale によると、クラウド コンピューティング支出の 35% が無駄になっている (ZDNet)
  • AWS はケチな人のクラウドではないが、Amazon は気にしない (TechRepublic)

AWS Lambda の開発は他のクラウドサービスとどう違うのでしょうか?

サーバーレスコンピューティングは、EC2のようなクラウドホスト型仮想マシンとはアーキテクチャが大きく異なります。仮想マシンでは、タスクをパイプライン化してシリアル実行することで、単一のタスクワーカーがVMのコンピューティング能力を独占するのを防ぐことができます。AWS Lambdaのようなサーバーレスプラットフォームでは、並列処理がパフォーマンスとコスト削減の鍵となります。

シーガル氏によると、「実行間で簡単に再利用できる特定の『アクション』があります」。これには「データベースなどのクラウドリソースへの接続、永続的なネットワーク接続などが含まれます。リソースと接続を賢く再利用すれば、それらはコールドスタート時に一度だけ実行されるため、貴重なコンピューティング時間を節約できます。」

シーガル氏は続けて、「複数の小さな関数を並行して実行するようにアプリケーションを設計するように努めるべきです」とし、「メモリの割り当てを増やすと、全体的な計算時間が大幅に短縮される可能性がある」ため、関数に十分な量のメモリを割り当てるべきだと述べています。

EC2の時間単位課金における「時は金なり」という側面は、100ミリ秒単位で課金されるAWS Lambdaにおいてはより深刻な懸念事項です。Lambdaを効果的に活用するには、サーバーレスファーストの考え方に基づいてアプリケーションを開発することが不可欠です。また、リソース消費を削減すると予算が大幅に圧迫されることにも留意する必要があります。

参照: TechRepublic のすべてのチートシートと賢い人向けガイド

AWS Lambdaをはじめとするサーバーレスコンピューティングプラットフォームのセキュリティ対策は、従来の手法とは明確に異なります。AWS Lambda関数が処理できるイベントソースの多様性により、攻撃対象領域が拡大します。Segal氏は、「サーバーレスアーキテクチャのセキュリティ監視は、標準的なソフトウェア環境よりも依然として複雑であり、サーバーレスネイティブのセキュリティソリューションを使用していない組織には盲点が生じています」と指摘し、「自動スキャンツールは、現時点ではサーバーレスアプリケーションの検査に適していません」と述べています。

追加リソース:

  • エッジコンピューティングは2021年に新たなクラウドとなるか?(TechRepublic)
  • ネットワークベンダーはサーバーレスセキュリティを無視しているのか?(TechRepublic)
  • サーバーレスコンピューティング環境でハッカーが暗号通貨をマイニングする方法(TechRepublic)

AWS Lambda は誰に影響を与えますか?

開発者は、AWS Lambda などのサーバーレス コンピューティング プラットフォームを活用して、増加するワークロードや変化するワークロードに合わせて拡張できるアプリケーションを作成できます。このスケーラビリティにより、企業での使用におけるアプリの運用コストを効果的に削減できます。

従来のクラウド サービスを使用すると、通常、オンプレミス サーバーの管理の必要性が減り、データセンター管理者の作業負荷が軽減されますが、AWS Lambda を使用すると、従来のクラウド サービスでホストされている VM の適切な動作を確保する責任を負う運用管理者の負荷が軽減されます。

名目上、サーバーレスコンピューティングプラットフォームの利用は、それを利用するアプリケーションのエンドユーザーにとって透過的であるべきです。AWS Lambdaのオンデマンドスケーラビリティは、VMによくあるしきい値スケーリングやオンプレミスサーバー展開の比較的固定されたキャパシティよりも応答性に優れています。効率的に利用することで、高負荷時のダウンタイムの可能性を低減します。

追加リソース:

  • Amazon、F1と提携し2020年の新レースパフォーマンス統計を発表(TechRepublic)
  • AWS でお気に入りの言語をサーバーレス開発に導入できるようになりました (ZDNet)
  • 調査:サーバーレスコンピューティングは今のところ順調(ZDNet)
  • 複数のクラウドを管理するには、慎重な選択とアーキテクチャ計画が必要 (TechRepublic)

AWS Lambda はいつリリースされましたか?

AWS Lambdaは、2014年11月に開催された年次カンファレンスAWS re:Inventで発表されました。開発者がプラットフォームに慣れてきたことで、近年では実環境への導入が増加しています。Amazonは、AWS Lambdaの早期導入企業として、VidRoll、Localytics、MLB Advanced Media、The Washington Post、Zillowをケーススタディで紹介しています。

2014年のリリース以来、Lambdaは様々な面で進化を遂げてきました。最近では、re:Invent 2020において、Amazonは課金体系の変更を発表しました。これにより、使用コストは100ミリ秒単位から1ミリ秒単位へと削減され、最大10GBのLambdaコンテナイメージのサポートと、CloudWatch Lambda Insightsダッシュボードの一般公開が行われました。

追加リソース:

  • AWS: コンテナ、サーバーレス、そしてクラウドネイティブコンピューティング! (ZDNet)
  • AWSの方向性:あらゆる機能をマネージドクラウドサービスとして実現(ZDNet)
  • AWS クラウド コンピューティング オペレーション、データ センター、130 万台のサーバーが効率化のフライホイールを形成 (ZDNet)
  • AWS への大規模クラウド移行を成功させるための 5 つのステップ (TechRepublic)
  • CSIRO、サーバーレスコンピューティングを使用してヒトゲノムを解析(ZDNet)

AWS Lambda と競合するサービスはどれですか?

AWS Lambdaは、パブリッククラウドプロバイダーによる初のサーバーレスまたはイベントドリブンコンピューティング製品でした。その先駆者としての地位により、AWS Lambdaは他のプロバイダーよりも広範なサードパーティ統合エコシステムを備えた、最も包括的で成熟したプラットフォームを提供しています。

Google Cloud Platform 向けの Google の競合製品である Cloud Functions は、2016 年に導入されました。JavaScript (Node.js)、Python、Go で記述された関数をサポートしています。

参照:マルチクラウドの管理(ZDNet/TechRepublic 特集) |無料 PDF 版をダウンロード(TechRepublic)

MicrosoftのAzure Functionsサービスは、AWS Lambdaの直接的な競合サービスです。さらに、Azure Service FabricはAzureアプリケーションをマイクロサービスに分離する機能を提供し、基盤となるインフラストラクチャとは独立して呼び出し・保守できます。これは、DockerスタイルのコンテナとAWS Lambdaのようなサーバーレスコンピューティングサービスを抽象的に組み合わせたような機能です。

Lambdaのオープンソースの代替として、Apache OpenWhiskがあります。OpenWhiskは、どこにでもデプロイでき、様々な一般的な言語のコードに対応し、スケーラブルで、関数をパッケージ化できるため他のサービスとの統合が容易であるとされています。

追加リソース:

  • AWS Lambdaとサーバーレスコンピューティングが企業におけるDockerの台頭を阻まない理由(TechRepublic)
  • AWS vs Microsoft Azure: サーバーレスアプリケーションのトレンドを理解する (TechRepublic)
  • Microsoft、Linux 向け Service Fabric マイクロサービス プラットフォームのパブリック プレビューを準備中 (ZDNet)
  • TriggerMesh が AWS Lambda サーバーレスコンピューティングを Kubernetes に導入 (ZDNet)

AWS Lambda を入手するにはどうすればよいですか?

Amazonアカウントをお持ちの方ならどなたでもAWSにサインアップでき、AWS Lambdaへのアクセスも含まれます。AWS無料利用枠では、毎月100万件の無料リクエストと最大320万秒のコンピューティング時間をご利用いただけます。AWS無料利用枠の他のサービスとは異なり、AWS Lambdaへのアクセスは1年経過しても期限切れになりません。Lambdaの料金は、各リクエストに割り当てられるRAMの量によって決まり、1ミリ秒単位で課金されます。

スタートアップ企業向けに、Activateプログラムでは、承認された新規事業に対して2つの異なるレベルのAWSクレジットを提供しています。Foundersパッケージでは、最大2年間有効の1,000ドル相当のAWSプロモーションクレジットと350ドル相当のAWS開発者サポートクレジットが提供されます。一方、Portfolioパッケージでは、最大10万ドル相当のAWSプロモーションクレジット、最大1万ドル相当のAWSビジネスサポートクレジット、Qwiklabsクレジット80クレジット、そして「メンバー限定の特典へのアクセス」が提供されます。

AWS Activateを利用するには申請が必要で、承認される保証はありません。Lambdaやその他のAWSサービスに興味のあるスタートアップ企業にとって、Activateは申請書の記入に費やす時間の価値が間違いなくあります。Amazonによると、申請書の記入は数分で完了するそうです。

追加リソース:

  • どのクラウドが最もコストパフォーマンスに優れているでしょうか? (ZDNet)
  • クラウドの教訓:AWS に移行する企業のための 5 つのヒント (TechRepublic)
  • コンプライアンスがクラウド導入を阻害する可能性がある:その対処法(TechRepublic)
  • ネイティブ AWS ツールでクラウドをハッキングから守る方法 (TechRepublic)
Tagged: