AWSのエキスパートになる方法【Lambda編】 プロ集団「アイレット」の現役エンジニアにインタビュー

アイレットは、Amazon Web Services(AWS)を利用するユーザーに対し、AWSの各種プロダクトの導入から、設計、運用保守までのフルマネージドサービス「cloudpack」 を提供する国内有数のインテグレーター。AWS導入においては国内有数の実績を誇っている。そこで今回は、同社のカスタマー支援事業部R&Dセクションのセクションリーダーである高橋慎一氏に、サーバーレスアーキテクチャの代表格として知られるAWS Lambdaの使いこなしや学び方のコツを聞く。

<お話を伺った方>
アイレット株式会社
カスタマー支援事業部
R&Dセクション セクションリーダー
高橋慎一氏

<ご略歴>
オープンソースECプラットフォームの開発者などを経て、2016年、アイレットに入社。現在、先進テクノロジーのビジネス活用を推進するR&Dセクションのリーダーを務めている。

そもそもAWS Lambdaとは?

AWS Lambda(以下、Lambda)は、Amazonが2014年から提供しているFaaS型のプラットフォームサービス。サーバーを用意したり管理したりする必要がなく、Node.js、Java、C#、Go、Pythonで書かれたコードをデプロイするだけで、実行環境が整えられる。Lambdaは指定されたイベントをトリガーにコードをコンテナとして実行し、終了時にデータを破棄する仕組みのため、仮にコードを実行することで何らかの問題が発生しても、他のプロセスに悪影響をおよぼすことがない。またシステムが現在の状態を表すデータを持たないため、容易にスケールできるのも特徴の1つ。そのためユーザーはビジネスロジックの開発に集中できるという利点を享受できる。利用料金についてはコードを実行した時間に対してのみ課金されるため、コードが実行されない限り料金はかからない。→ 公式ページ

Lambda活用でビジネス目標の達成に専念できる

「Lambdaを何か別のものにたとえるとするなら、AWSの各機能やサービスとサービスをつなぐ“糊”のような役割を果たすものではないかと感じます」

そう話すのは、カスタマー支援事業部R&Dセクションでセクションリーダーを務める高橋慎一氏。高橋氏はアイレットのR&Dエンジニアとして、AWSを活用した先進的なプロジェクトの実現に向けた技術検証や技術支援に携わっている。

アイレットでは2017年に、大阪の毎日放送(MBS)が手掛ける定額制有料動画配信サービス『MBS動画イズム444』のシステム基盤をLambdaによるサーバーレス環境で構築し、大幅なコスト削減を実現させた実績を持っている。→ 詳しい事例紹介はこちら

高橋氏がLambdaを「糊」と評するのは、Lambdaが指定されたイベントをトリガーに次々とコードを自動的に実行するという性質を持っているからだ。

「LambdaはいわゆるFaaS(Function as a Service)の一種。PaaS(Platform as a Service)に比べるとできることは非常に限られていますが、制約が多いだけにやれることが明確です。エンジニアはLambdaを“糊”として用いることによって、一般的なマネージドサービスの使い方では手が届かない機能の実現などを通じ、どうしたらビジネス目標を達成できるかに専念することができます」

使いこなしのポイントは、技術的な面よりむしろビジネス的な面にあるのではないかと高橋氏はみている。

「Lambdaはとてもシンプルな仕組みなので、Lambdaの使い方によって恐ろしい事態が引き起こされることはほとんどありません。ただ、LambdaにマネージドリレーショナルデータベースのAmazon RDSを採用する際、セキュリティを担保した上で導入すると、ネットワークの問題などにより思ったほどパフォーマンスが出ず、ビジネスに悪影響を与えることがあります。また、せっかくシステムの運用コストの削減を目指して導入したのに、うまく実際のビジネスに適合させることができず、かえってコスト高に陥ってしまった他社事例をよく耳にします。こうした現象を事前に予測し、どの程度までなら許容できるか、ビジネス部門の責任者と話し合っておくこともLambdaを使いこなす上ではとても重要です」

Lambdaは開発言語とネットワーク知識があれば始められる

「Lambdaはコードを実行するサービスなので、公式にサポートされているNode.jsやJava、C#、Go、Pythonを習得しているエンジニアであれば仕組みを理解するのは容易だと高橋氏は話す。

「これらの言語をある程度使いこなせる人なら、小さなツールをつくることから始めるのがいいでしょう。またLambdaのマネージメントコンソールを開くとあらかじめ用意されているイベントが見られるので、開発経験があるエンジニアであれば、その一覧を眺めているだけでもなんとなく感触がつかめるはずです」

サポートされている開発言語の経験と基本的なネットワーク知識さえあれば、Lambdaを使いこなす上での技術的なハードルは、ほぼクリアできていると高橋氏はいう。むしろどのような使い方があるか、さまざまな事例など参考にしながら新たなLambdaの活用法を探ることが重要だと高橋氏は強調する。

「弊社のようにクラウドを得意としている開発会社の公開事例などから情報を得たり、サーバーレスアーキテクチャを用いたアプリケーション構築のノウハウを共有している『Serverlessconf Tokyo』などに参加したりすると、Lambdaの使いこなす上で欠かせない発想力が磨かれると思います」

AWSが提供している公式ドキュメントAWSクラウドサービス活用資料集なども有用な情報源になるのはいうまでもないだろう。

「公式オンラインセミナーの『AWS Black Belt Online Seminar』を受講するのもいい勉強になると思います。いずれにしても実際に手を動かしながら学ぶのがおすすめです」

日本でもサーバーレスアーキテクチャというキーワードが話題になってから数年が経つが、日常的にオンプレミス環境にどっぷりつかっているインフラエンジニアにはまだまだ敷居が高そうに見えるかもしれない。

しかし、実際にはオンプレミス経験しかなかったエンジニアが転身し、続々と先進的なシステムを誕生させているのだ。

クラウドネイティブなインフラエンジニアを目指すなら、ぜひ一度、アイレットのエンジニアブログ( https://cloudpack.media/tech )にアクセスしてほしい。あなたのキャリアを大きく前進させるきっかけになるはずだ。