サーバーレスの意味を知っていても、まだ単なる流行り言葉としか思っていない?自分はサーバーレス開発者ではない
と思っていませんか?サーバーレスの最も素晴らしい点は、気づかないうちにサーバーレスサービスを使っているということだ!AMIからEC2インスタンスを起動したことがあるなら、それはサーバーレス・オブジェクトストアであるS3から来たものだ。サーバーレスのコンセプトは背景に隠れてしまいがちなので、サーバーレスの利点を当然だと思いがちだ。そこで、サーバーレスのメリットを前面に出してみよう!サーバーレスが注目され投資される価値がある理由は無限にあるが、まずは5つ紹介しよう。
では、なぜサーバーレスなのか?
1.サーバーレスで最速の市場投入を実現
ドアノブでいっぱいの枕カバーのようなコンフィギュレーションを経験したことがあるだろうか?ノブは楽しいが、l-i-a-b-i-l-i-t-yと綴られる危険なレベルのオプション性を伴います。例えばDynamoDBです。createTable()を実行するだけです!インスタンスタイプ、CPUアーキテクチャ、RAM、SSDの容量など、気にする必要はありません。必要なときに、必要なスケールで、必要なテーブルが用意できればいいのです。これに対して、EC2やRDSで独自のデータベースを構築する場合は、たくさんのつまみがあります。それらを正しく使いこなすには研究が必要です。それを間違えると、ビジネスを失うことにもなりかねません。
数え切れないほどのノブを取り除くことで、サーバーレスは重要なこと、つまり顧客に集中することができます。そして、サーバーレス・サービスは非常に素早く立ち上がり、雑念を排除するため、顧客の需要に合わせて迅速に反復することができます!S3で静的サイトをホストしている場合、負荷に対応するために十分なスケーリングができないことを心配する必要はありません。WordPressのバージョンを設定したり、Linuxカーネルにパッチを当てたり、ロードバランシングにELB、ALB、NLBのどれを使うか悩んだりすることもないのです。
2.サーバーレス・サービスは可用性が高い
Lambda関数のメンテナンスウィンドウは?Lambdaから「インスタンス引退」の通知を最後に受け取ったのはいつですか?これが、サーバーレス・サービスが多くの喜びを生み出す大きな理由です。サーバーレスは、24時間365日稼動しているのです。サーバーフルの世界にあるような、時代遅れの “計画的ダウンタイム “はありません。
ElastiCacheには毎週60分のメンテナンスウィンドウがあります!これは “計画的ダウンタイム “の別の言い方です。Memcachedを使用している場合、ノードは空の状態で戻ってきます。Redisを実行している場合、プライマリに十分なメモリがなかったり、書き込みトラフィックが多かったりすると、単に運が悪かっただけかもしれませんが。Amazon ElastiCache Managed Maintenance and Service Updatesのヘルプページによると、以下のようになります:
”また、書き込みトラフィックが高いままだと、レプリカが同期しない可能性もあります”
さらに、ElastiCacheのプロビジョニングされた容量は負債です。ElastiCacheに(サーバーレス以外に)ないものがあるとすれば、それは弾力性だからです。クラスタのスケールには数十分かかるので、ピークを逃す可能性があります。一方、ノードの種類や数などは自分自身で決めるため、無理にスケールさせるとどのような限界にぶつかるかわかりません。障害発生時の生々しい痛みは、ドアノブの枕カバーが本当にあなたを襲うときです。
3.サーバーレスはより安全
サーバーレス・サービスはデフォルトでセキュアになる傾向があります。サーバーフルインスタンスでは、セキュリティを調整するためのつまみがたくさんあります。ノブは危険だと言ったでしょうか?ElastiCacheを少し取り上げてみましょう。ElastiCache Redisのデフォルト設定では、エンドツーエンドの暗号化が有効になっていないノード/クラスタが提供されます。これはサーバーレスの顧客にとっては当たり前のことです!さらに悪いことに、本番稼動後にエンドツーエンドの暗号化がないことに気づいたとしましょう。スイッチを入れるだけでElastiCache Redisクラスタがトランスポートレイヤーセキュリティ(TLS)をサポートするようにすることはできません。既存のクラスタでTLSポートを有効にすることはできますが、暗号化されていないポートからTLSポートにクライアントをドレインするのに非常に注意しなければなりません。TLSは常に “YES PLEASE “に設定すべきノブのひとつです。Momentoのサービスが最初からエンドツーエンドの暗号化を備えているのはそのためです。
インスタンスにはパッチを当てる必要があり、パッチを当てるのはあなたの責任です。サーバーフル・サービスの中には、前述の「メンテナンス・ウィンドウ」の間にパッチを当ててくれるものもあるが、これはシームレスではありません。ほとんどの脆弱性については、サーバーレス・サービスが自らパッチを適用し、あなたの利用に影響を与えないように対処してくれます。
4.サーバーレスの方が安い
サーバーレスはシンプルな従量課金で成功し、スケーラビリティへの投資はゼロになります。集中力、反復速度、高い可用性を武器に、スタックのどの部分が最もスケールを必要とするかに驚くかもしれません。これはサーバーレスが素晴らしいもう1つの理由です。トラフィックがそれほど多くないサービスにお金を払う必要はないのです。よくある俗説に、サーバーレスは規模が大きくなると高価になるというものがあります。サーバーフルなサービスを常に100%の稼働率で動かしているのであれば、これは絶対に真実かもしれないが、そうではないと断言します。実際、我々が遭遇するElastiCacheのお客様のほとんどは、クラスタの平均利用率が5%以下です。利用率の問題は規模が大きくなるとさらに難しくなります。急成長フェーズに突入すると、さらにリスクを回避するようになり、顧客を失望させないために必要以上のキャパシティをプロビジョニングしたくなります。
サーバーレス・サービス != サーバーレスのみ
サーバーレス・クラブは排他的なものではありません!既存のオールサーバーレススタックでサーバーレスサービスを使うことも、完全にサーバーフルなスタックでサーバーレスサービスを使うこともできます。EC2やLambdaからDynamoDBやS3を使っても全く問題ありません。Momentoはサーバーレスキャッシングサービスを提供しているが、多くの顧客はFargate、ECS、純粋なEC2、そしてLambdaファンクションからも利用しています。
これが「なぜサーバーレスなのか」の答えです。今度は “どこで?”と聞いてみましょう。
私たちはサーバーレスの大ファンだが、あなたのユースケースでサーバーレスを活用するために大ファンである必要はありません。サーバーレスの恩恵は、サービスごとに少しずつ享受することができます。始めるのは簡単です!サーバーレス・サービスをテストドライブするためのアイデアをいくつか紹介しましょう:
1.Lambda関数を立ち上げ、API Gatewayにフックすれば、ほら!アイドル時にはほとんどコストがかからず、必要な時にスケールできるウェブサービスの完成です。このようなシンプルなマイクロサービスは、本当に素早く構築できます。私たちは日常的に、社内の便利な機能のためにSlackプラグインを作り、Lambdaにデプロイして、実行させています。
2.RDSで遅くなる?Momento CacheをAPIコールするだけでシンプルなクエリキャッシュを追加できます。また、DynamoDBをより速く、より堅牢にするために、DAXを置き換えるために使用することもできます。
3.静的なウェブサイトをホスティングしたいですか?それはS3に置きましょう。ウェブサーバーやインスタンスなどはもう必要ありません。ただ動くだけです。
私たちはお客様のサーバーレスへの移行を支援しており、一時的なデータをキャッシュすることが素晴らしいスタートになることを発見しました。サーバーレスが貴社に適しているあらゆる理由を探るツアーガイドを、ぜひ私たちにお任せください。