Lambdaに関連するキーワード
AWS Lambdaについて
AWS Lambdaとは?
AWS Lambdaとは、AWSのクラウドを利用したサーバーです。これを利用することにより、利用者はサーバーレス、つまりサーバーを自社で保有する必要がなくなります。これまでサーバー本体を準備して、接続、設定、管理してきたほとんどすべての手間をなくし、コードを実行できるようになりました。スケーリングと言われる処理能力の増減は物理的な機器や部品の増設、削減をする必要がなくなり処理量に合わせて柔軟に増減することが可能です。
このようにAWS Lambdaを導入することのメリットは大きいと言えるでしょう。しかし、AWS Lambdaはメリットだけではありません。そこでサーバーレスのクラウド型とサーバー設置型のオンプレミス型の2つを比較してみます。
クラウド型
AWS Lambdaもクラウド型に属します。サーバーレスなので運用がいらずスケーリングが柔軟。サーバーがダウンする可能性が低く可用性が高い。従量課金制を採用するケースが多く、処理実行時のみ料金が発生するためコストが抑えられる。といったメリットがあります。また、導入期間が圧倒的に短い点も忘れてはならないでしょう。
一方でサーバーレスのため、クラウドサービスを提供しているベンダー(会社)に依存する部分が出てくるため、完全に自由な設計ができるわけではありません。また、システムを移行する際にも移行作業が困難なケースが多いため、機能に精通した担当者が必要となります。
オンプレミス型
クラウドとは対照的にオンプレミスという言葉があります。オンプレミスとは自社内でサーバーやネットワーク、ソフトウェアなどの設備を導入運用することです。オンプレミス型のメリットは、自由にカスタマイズすることが可能で、自社のビジネスに合わせてサーバー、ハードウェア、ソフトウェアなどを構築できます。
一方で自社内で設備を導入する必要があるため導入コストがかかり、立ち上げまでに時間を要します。運用保守も自社で行う必要があるためコストがかかります。
以上、クラウド型とオンプレミス型のメリットデメリットで比較してみました。AWS Lambdaはクラウドを利用したサーバーです。デメリットもありますが提供するサービスによってクラウド型かオンプレミス型かを選択し、クラウド型にするのであれば、クラウドサーバーの選択肢の1つにAWS Lambdaを検討してみてはいかがでしょうか。
AWS Lambdaで使える言語
AWS Lambdaでは使用できるプログラミング言語が数多くあります。
- Java
- Go
- PowerShell
- Node.js
- C#
- Python
- Ruby
さらにLambdaレイヤーという拡張機能を利用することで
- Erlang
- Elixir
- COBOL
- PHP
- C++
- Rust
COBOLとありますが、その歴史は古く1959年に事務処理用に開発されたプログラミング言語です。多くは金融機関や政府機関、自治体で利用されているため、システムを移行することは容易ではなく、今もなお使用され続けています。また現役のCOBOLプログラマーが高齢化し、若い世代のプログラマーが不足している現状もあります。そのため近年、COBOLプログラマーの需要も増しているようなので、この機会にCOBOLにチャレンジしてみるのも良いかもしれません。
AWS Lambdaの使い方
AWS Lambdaはどんな使い方をされているのか、ユースケースをご紹介します。AWS Lambdaを導入している企業は世界で多く、日本でも有名企業が導入しています。
リアルタイムファイル処理
以下の処理をリアルタイムで実行できます。
- 画像のサムネイル作成
- ビデオのコード変換
- ファイルのインデックス作成
- ログの処理
- コンテンツの検証
- データの収集
- フィルタリング
リアルタイムストリーム処理
リアルタイムのストリーミングデータを以下のように実行できます。
- アプリケーションのアクティビティのトラッキング
- 注文のトランザクション処理
- クリックストリーム分析
- データクレンジング
- メトリクスの生成
- ログのフィルタリング
- インデックス作成
- ソーシャルメディア分析
- IoT データのテレメトリと測定
IoT バックエンド
以下のサーバーレスバックエンドを構築できます。
- ウェブ
- モバイル
- IoT
まとめ
AWS Lambdaについて解説してきましたがいかがでしたでしょうか。使用可能な言語は拡張機能を利用すれば、現時点(2020年4月)で13種類あります。Java、Python、Ruby、PHP、C++など、触れたことのある言語が多いのではないでしょうか。
AWS Lambdaは導入における初期コストと時間がほとんどかからないため、試験的に導入してみるのもありだと思います。