採用時に確認すべきチュートリアル
「サーバレスアーキテクチャ」初心者ガイド まず検討すべき3大要素とは?
サーバレスアーキテクチャは開発チームに大きなメリットをもたらす一方で、採用の際には検討すべき要素が幾つかある。主要な3つの検討要素を紹介しよう。
従来のアプリケーションと比べて、「サーバレスアーキテクチャ」に基づくアプリケーション(以下、サーバレスアプリケーション)のメリットは多岐にわたる。特に物理サーバと仮想サーバのプロビジョニングやメンテナンスから開発者を解放できる点が大きい。サーバレスアーキテクチャは、アプリケーションサーバの存在を意識せずに開発可能なアプリケーションのアーキテクチャだ。
サーバレスアプリケーションでは、OSの更新など一般的なスケーリング作業やメンテナンス作業全てにクラウドベンダーが対処する。従来のアーキテクチャに基づくアプリケーションでは、開発者側がこうした作業をする必要があった。開発者はインスタンス(仮想マシン)の種類やリソースのスケーリング、アイドル状態のコンピューティングコストなどを気にする必要もなくなる。自身のアプリケーションの独自性や、その機能を高める特徴の開発に専念できる。
開発チームはサーバレスアーキテクチャを導入する前に、重要な決断を下さなければならない。チームスタッフの編成や開発フレームワーク(特定の設計手法に基づく機能群をまとめたソフトウェア)の選択、テスト方法などがその例だ。本稿はサーバレスアーキテクチャのチュートリアルとして、事前に検討すべき3つの重要な要素を取り上げる。
目次
- 検討要素1.開発チーム
- 検討要素2.フレームワークの選択(会員限定)
- 検討要素3.テスト方法(会員限定)
併せて読みたいお薦め記事
「サーバレスアーキテクチャ」とは何か
サーバレスアーキテクチャ導入事例
検討要素1.開発チーム
「サーバレスアーキテクチャを導入する際は開発者が中心的な役割を果たす」ことを最初に理解しておく必要がある。サーバレスアプリケーションのプロトタイプ開発では、コードをあまり使わない方法もある。ただしサーバレスアプリケーションの主役は、必要なカスタムロジックを構築する開発者だ。特にオープンソースの「Serverless Framework」、Amazon Web Services(AWS)の「AWS Serverless Application Model」(SAM)、「AWS Chalice」などのフレームワークを理解しているチームリーダーが必要だ。
チームには、アプリケーションの特定要素ごとに開発者が必要になる。API(アプリケーションプログラミングインタフェース)のコンポーネントとフロントエンドのコンポーネントがあるとしよう。この場合、個別の開発者チームを2つ作り、各チームが2つのコンポーネントのいずれかを担当する。従来のアプリケーションと同じように、個別の開発チームを全て連携させることがチームリーダーの役割になる。
検討要素2.フレームワークの選択
次に重要なのが「フレームワーク選び」だ。サーバレスアプリケーションの各フレームワークには長所と短所がある。前述の3つの一般的なフレームワークも例外ではない。
主に検討するのは、選んだフレームワークで、開発時間をそれほど増やさずにアプリケーションの特定の要件に対処可能かどうかだ。例えばAWS Chaliceはプログラミング言語「Python」を使用する開発者にとっては優れている。だがJavaScript実行環境「Node.js」を使用する開発者にとってはそれほど優れていない可能性がある。
Serverless FrameworkはNode.jsに関しては優れているものの、AWS ChaliceほどはPythonの使い勝手が良くない。SAMはAWSの同名クラウドサービス群での利用には最適だが、他社のクラウドサービスでは機能しない。
開発チームが最も使いやすいと感じるフレームワークが、最善の選択肢になることが一般的だ。開発チームが各フレームワークを試し、開発スタイルに最適なものを確認する。
検討要素3.テスト方法
最後は「テスト」だ。SAMやServerless Frameworkのようなフレームワークを選んだ場合、運用環境を緻密にシミュレーションできるテスト環境の作成が重要になる。開発者には各プラットフォームに各自のアカウントを設定してもらい、定義済みの運用環境を模倣できるようにする。例えばAWSでは、運用前に変更をテストするために、開発者が個別のアカウントを作成できる。
この方法はリスクを伴う恐れがある。アクセスキーなどの機密情報は一般的なコードリポジトリの外に保持する必要がある。こうした機密情報にアクセスするための手段として、機密情報を暗号化して保存する階層型ストレージサービスの「AWS Systems Manager Parameter Store」や、データベース管理サービス「Amazon DynamoDB」の暗号化されたテーブルなど、安全な保管環境を用意する。ローカル開発中でもそれは変わらない。環境変数に機密情報を格納しなければならない場合は、それらを暗号化し、AWSの「AWS Key Management Service」などの暗号鍵管理の仕組みを使用することだ。
個別の単体テストに加えて、自動化されたエンドツーエンドテスト(E2Eテスト:エンドユーザーによる画面操作を自動化して出力結果を確認するテスト)を実施する必要もある。例えばAWSのAPI管理サービス「Amazon API Gateway」でバイナリを出力するように構成していないのに、イベント駆動型コード実行サービス「AWS Lambda」の関数でPNGファイルを出力しようとしたらどうなるだろうか。一見、単体テスト中は適切に機能しているように見える。だがAmazon API Gatewayはプレーンテキストを出力しようとするため、PNGファイルの出力が文字化けのような状態になってしまう。
「Ghost Inspector」「New Relic」などの監視ソフトウェアを使用して変更を積極的に監視し、「Sentry」(開発:Functional Software)や「IOpipe」などのログ記録ソフトウェアをインストールして、実際のユーザーエラーを監視することが重要になる。
サーバレスアーキテクチャは最新のアプリケーションの開発や管理にとって優れた選択肢になる。ただし、それは適切に構成した場合に限られる。このチュートリアルにまとめたアドバイスを参考に、紹介したツールを最大限に活用してほしい。
Copyright © ITmedia, Inc. All Rights Reserved.
この記事の著者
関連記事
こんなメディアも見られています
TechTargetジャパンに関連する情報をお探しであれば、こちらのメディアもお役に立てるかもしれません。
ベンダーコンテンツ PR
From Informa TechTarget
SpecialPR
アクセスランキング
-
1
「Excel至上主義」の終わらせ方 丸2日の手作業地獄から情シスと現場を救うには
-
2
取手市がVDIと決別した理由 更改費用「4倍超」を約1.7倍に圧縮
-
3
「Microsoft 365のセキュリティ運用」に関するアンケート
-
4
急増する「AIはこう言ってる」マン 判断を狂わせる「AI忖度」を防ぐには?
-
5
221人調査で分かった「情シス最大のストレス」は?
-
6
「Salesforceのテスト自動化ツール」に関するアンケート
-
7
「データストレージの活用方法」に関するアンケート
-
8
「AI時代の統合基盤・エンタープライズAI管理」に関するアンケート
-
9
AIで人を減らした企業がもう心変わり 「AIブーメラン現象」の実態
-
10
自宅のWi-Fiが「遅い」「途切れる」本当の原因は? Dellが推奨する鉄則
ホワイトペーパーランキング PR
-
1
年収2000万「クラウドセキュリティのプロ」になれる資格とは
-
2
セキュリティソフトをすり抜ける標的型攻撃メール、不審メールの見破り方とは?
-
3
Windows Updateの通信集中で回線が逼迫、ネットワーク刷新事例に学ぶ解決策
-
4
財務を戦略的組織へ進化させるAI活用術、4つの主要な障壁と解消方法
-
5
「NAS」「SAN」「DAS」は何が違う? いまさら聞けないストレージの基礎
-
6
“あのファイル転送”で暗躍するノーウェアランサム
-
7
標的型攻撃メールを見破るには? サンプル文面を例に傾向を解説
-
8
商用利用の安全性を確保し大量のコンテンツを高速で生成する、AI活用の秘訣
-
9
マンガで解説、1日で生成AI環境を構築できるワークショップの中身とは?
-
10
Dark AIが台頭する時代の新発想、「より高度なAIで対抗する」具体的方法とは?
TechTargetジャパン SNS
インフォメーション
注目情報をチェック
TechTargetジャパンをフォロー