「サーバーレス」がエンジニアの仕事を奪うって本当ですか?cloudpackエバンジェリスト後藤氏が語るサーバーレスアーキテクチャの本質|TechClips[テッククリップス]

最近、『サーバーレスアーキテクチャ』というキーワードがクラウドエンジニア界隈で話題になっている。2014年にリリースされたAWSの『Lambda』に続き、2016年にはGoogleやIBM、Microsoftがこぞって参入を発表していることも、注目を集める要因になっているようだ。そこで今回は、AWSの運用支援サービス『cloudpack』のエバンジェリストであり、TechClipsの公式クリッパーも務めている後藤和貴氏に、サーバーレスアーキテクチャの概念や、これからのバックエンドエンジニアに求められるスキルについて語ってもらった。|TechClips[テッククリップス]

仮想サーバーからサーバーレス全盛時代がやってくる

「サーバーレスアーキテクチャとは、イベントをトリガーとして、コードを実行してくれるマネージドサービスのこと。もはや価値を生まないサーバーのセットアップやメンテナンスといった作業からエンジニアを解放し、ビジネスロジックやアプリケーション開発に集中させてくれる効果があります」

そう話すのは、AWSの導入や運用支援で知られるcloudpackの後藤和貴氏だ。後藤氏は、AWSが日本に上陸した直後から、クラウドをベースとしたサービス開発に携わっており、業界の草分け的存在として知られている。

「オンプレミス全盛時代には、システムのオーナー自らが、あらかじめシステムにかかる負荷を予測し、サーバー環境を整えなければなりませんでした。しかしクラウドの仮想サーバーの登場によって状況は一変します。ユーザーは、いつでも自由に仮想サーバーの構成を変更できるようになり、システムへの負荷が想定を超えるような状況に陥ったとしても、自動的にシステムがスケールするような設定も可能になったからです。エンジニアにかかる負担は激減しました」

それでも、エンジニアが行わなければならない作業が、すべてなくなったわけではなかった。アプリケーションサーバーやネットワーク、セキュリティなど、さまざまなミドルウェアのインストールや設定作業、メンテナンスや監視、障害対応は専らユーザーの責任において行わなければならなかったからだ。

また、従量課金により初期投資は大幅にダウンしたものの、仮に数分で終わる処理であっても、たとえばAmazon EC2の場合、1時間単位で利用料金を支払わねばならないため、システムの用途によってはランニングコストを下げる効果が薄い場合もあった。こうした問題を一気に解消してくれるのが、サーバーレスアーキテクチャの利点だと後藤氏は言う。

「われわれが採用しているAWS Lambdaであれば、バックエンドの面倒はAWS側がみてくれるので、エンジニアはイベントに呼応するスクリプトを用意するだけでいい。料金体系もプログラムの実行時間(100ミリ秒単位)や実行回数に対して課金されるため、使わなければその分の料金を支払う必要もありません」

その上、サーバーレスアーキテクチャは、従来から利用されているBaaS(Backend as a Service)と比較しても、自由度の高い設計が可能になるという。そのため、メンテナンス性や拡張性が求められることが多い、モバイルやIoTを活用したサービス開発への活用も期待されているのだ。

サーバーレスの実装には、向き・不向きがある

いい事ずくめに見えるサーバーレスアーキテクチャだが、システムの用途や規模によっては、向き・不向きがある。

「サーバーレスアーキテクチャを採用することで大幅なコストダウンが期待できるのは、高い負荷がかかるときと平常時の振り幅が大きいシステムや、1日のうち稼働する時間が短いシステムです。また、短いスクリプトを書くだけで使えて、運用に割く手間もほとんどかからないので、エンジニアリソースや予算が限られているスタートアップや中小企業に向けのシステム構築にも向いていると思います」

後藤氏が率いるcloudpack事業部がまとめた「サーバーレス開発ホワイトペーパー」では、エンドユーザーが投稿した写真をデータベース化し、ランダムに選択してクライアントに表示するシステムや、CSV 形式ファイルに記載されたメールアドレスにメッセージを送信するシステムの実践事例が紹介されている。サーバーレス環境下であっても、遅延処理や並列処理が不可欠なシステムでも利用できることがわかるだろう(図参照)。

「Lambdaは、AWSが提供するさまざまなサービスを貼り合わせる“糊”のような存在です。API Gatewayにフロント側の機能を担わせて、あとは連携させたLambdaを使って、サービス同士を自由に“貼り合わせる”だけで、想像以上にリッチなサービスをつくることもできるんです。エンジニアは、そのためのスクリプトを書くだけでいい。サーバーレスアーキテクチャの非常に便利で面白いところだと思います」

たとえば、ストレージに何か書き込まれたらメールするという処理をしたいときは、ストレージサービスである『Amazon S3』からデータを読み取り、メール送受信サービスの『Amazon SES』にメールの送信を依頼するというスクリプトを書くだけでいい。AWSが提供するの70を超えるサービスを自由に組み合わせることで、エンジニアは大量のコードを書かなくても目的を達することができるのだ。

一方で、現状ではAWS側のスペックやキャパシティの問題で、ディスプレイ広告のように数ミリから数十ミリ秒を競うような用途や、同時接続が数千規模で必要になる用途で使う場合には、何らかの対策は必要になるという。だがこうした問題もやがては解決されるはずだ。

「今後、大規模なシステムへの実装やレガシーなシステムと併用するケースも増えつつありますが、ベストプラクティスが確立されるのはしばらく先のことになるでしょう。ただ使いやすいフレームワークも出はじめているので、状況はより良い方向に向かっていくと考えています」

バックエンドエンジニアが半減する時代がくる

今後サーバーレスアーキテクチャが普及していくとするなら、現在バックエンドエンジニアとして働いている人たちの仕事のあり方も大きく変わるのではないだろうか。後藤氏はいう。

「バックエンドだけを専門としているエンジニアの総数は、徐々に減っていくことになると思います。ただし、日本だとその変化は緩やかなもになるでしょうから、必要以上に恐れることはないでしょう。時代の流れがオンプレミスからクラウドに移りはじめたとき、データセンターに勤めているネットワークエンジニアやインフラエンジニアは不要になるといわれていました。しかしクラウドが全盛のいまでも、そうしたエンジニアは重宝されています。物理的なハードを扱った経験や、サーバーサイドのプログラミング経験があるからこそ、解決できる問題も少なくありませんから。今後、クラウドファーストから”Lambdaファースト”へと時代がシフトしても、これまでの経験が無になることはないでしょう。逆に自分の専門領域を広げていきたいという意欲がある人には、チャンスが広がると思います」

後藤氏は、バックエンドの開発や運用に携わるエンジニアにとって、これから重要になるであろうスキルの例として顧客業務に対する知識を挙げる。

「お客様のサービス内容やアクセスパターンなど、『お客様を取り巻く事情』を正しく理解することができれば、何をどうつくればいいか、自ずと見えてきます。そうすれば、コスト的にも機能的にも満足いただけるシステムがつくれるようになるでしょう。継続的にお客様とお付き合いしていくなかで、自分で要件定義を固められるようなエンジニアこそ、これから力を発揮できるエンジニアなんだと思います」

より高性能なシステムが、より安く、より合理的につくられるようになれば、スペックが決まるまで動こうとしないエンジニアが淘汰されるのは想像に難くない。サーバーレス時代の到来は、システム開発や保守・運用に関わるすべてのエンジニアにとって、新しい働き方について考える、良いきっかけになるだろう。

cloudpackエバンジェリスト後藤氏プロフィール

筑波大学第三学群情報学類卒業後、日本オラクル入社し、データベース関連製品のカスタマーサポートを担当。米Oracle Corporation転籍後はウェブ関連製品の開発に携わる。その後ビジネス・アーキテクツに移り、技術チーム立ち上げから各プロジェクトでのディレクションを経験後、プロジェクトマネージメント担当取締役として経営にも参画。フリーランス、デザイン会社の技術リードを経て、現在はアイレットで、執行役員の傍らAWSの構築・保守運用サービス『cloudpack』のエバンジェリストを務めている。

後藤和貴氏
アイレット株式会社
執行役員
cloudpackエバンジェリスト

cloudpackサーバーレス開発ホワイトペーパー
https://cloudpack.jp/whitepaper/serverless.html