読者の皆様へ: 皆様のご要望にお応えするべく、ノイズを削減する機能セットを開発しました。皆様が関心をお持ちのトピックを、EメールとWeb通知で受け取ることができます。新機能をぜひお試しください。
re:Invent 2017以降の短いプレビュー期間を経て、Amazon Web Services (AWS)は先頃、新たにServerless Application Repositoryの一般提供を開始した。“AWSパートナ、企業ユーザ、独立系開発者が開発したサーバレスアプリケーションを共有するための理想的な場所”を自称するAWS Lambdaコンソールを使用して、サーバレスアプリケーションとコンポーネントを探索し、設定し、展開することが可能になる。
AWSはre:Invent 2016で、“AWS上でのサーバレスアプリケーションの管理と配信を容易にする”ことを目標に、Serverless Application Model (SAM)を導入した。SAMは、AWSのインフラストラクチャ・アズ・コードサービスのCloudFoundationを、専用のリソースタイプとカスタマイズされたパッケージングおよびデプロイメント用コマンドで拡張するためのオープンソースの仕様である。続いて公開されたDockerベースのSAM Localによって、開発者はさらに、“機能をローカルでテストし、SAMテンプレートからローカルのAPI Gatewayを起動してSAMテンプレートを検証し、さまざまなイベントソース用のペイロードを生成する”ことが可能になる。(以前の記事)
AWSは今回、SAMアプリケーション専用のパッケージング、ディスカバリ、およびプロビジョニングサービスとしてServerless Application Repositoryを追加した。現在でも利用可能なblueprint機能と同じように、AWS Lambdaコンソールの“create function”ウィザードに組み込まれて、探索および展開ステップを通じてユーザをガイドする。
イメージ: Lambdaコンソール“create function”ダイアログ内のAWS Serverless Application Repository
共通点はそこまでだ。blueprintが単一の機能を’開始点として'展開するのみであるのに対して、SAMアプリケーションは、ソリューションに必要なIAMポリシとパーミッション、ベースとなるCloudFormationテンプレートの定義に沿ってプロビジョニングされたAWSリソース、そしてもちろんライセンスに従って、透過的にフォーマライズされる。そのアプリケーションの利用者は、必須および省略可能なパラメータを指定したソリューションをCloudFromationスタックとして展開する。スタックリソースはすべて、アプリケーションのAmazon Resource Name (ARN)でタグ付けされているので、AWS Management Consoleで識別および監視することができる。
さらにこのアプローチは、アプリケーション提供者のための新しい配布モデルで構成されている。このモデルでは、展開するサーバレスソリューションを、ユーザ自身のAWSアカウントで提供することも可能だ。アプリケーションへのアクセスはリソースベースのIAMポリシで管理されているので、公開者の所属する組織の特定チーム(以前の記事)にアクセスを制限したり、特定のサードパーティアカウントのみと共有したり、あるいは単純に任意のAWSユーザに対して公開することができる。
公開アプリケーションには、アプリケーションのソースコードへのリンクも必要だ。既存のblueprintの多くはサーバレスアプリケーションに変換されており、そのソースコードは、SAM GitHubリポジトリのexamples/appsフォルダで公開されている。Jeff Barr氏(AWSチーフエバンジェリスト)は、今回の新たな流通モデルの持つ、利用者のための暗黙の自由を強調する。
発展を続けるサーブレスアプリケーションとコンポーネントのエコシステムを活用することができます [...]提供されたままの形で設定して使用することも、一部を採用して機能を追加し、作者にプルリクエストを送ることも可能です。
アプリケーションを作成するには、アプリケーション名や作者、説明、readme、ラベルなど、いくつかの共通パラメータを定義した上で、'オープンソースフレンドリなSoftware Package Data Exchange (SPDX) ライセンス’を選択する必要がある。アプリケーションのバージョンは後で指定可能で、セマンティックバージョンや、もちろんSAMテンプレートも必要となる。ここで注目すべきは2つの新たな制約だ。
- グローバルに使用可能なのは、
us-east-1
またはus-east-2
のいずれかで公開されたアプリケーションに限られている。他のリージョンで公開された場合、アプリケーションの利用はそのAWSリージョンに限定される。 - 特別なSAMリソースタイプの他にServerless Application Repositoryでは、CloudFormation自体が提供するすべてのAWSリソースタイプの中から、いくつかの関連するサーバレスリソースタイプもサポートする。サポート対象の追加を要求したいユーザは、AWS Supportに連絡するように推奨されている。
Serverless Application Repositoryは、同じくAWS CloudFormationの上に構築された、より包括的なITサービスディスカバリとガバナンスのソリューションであるAWS Service Catalogを補完するものだが、より広いタイプのアプリケーションを対象とした、集中管理型のITサービスポートフォリオとライフサイクルに重点を置いているのが特徴である。AWS MarketplaceでISVやコンサルティングパートナの提供するサードパーティサービスとの統合も可能だ。
Serverless Application Repository開発者ガイドには、アプリケーションの利用と公開に関する章と、REST APIリソースのリファレンスが掲載されている。AWS CLIリファレンスと独立したFAQも入手可能だ。サポートは現在、AWS Lambdaフォーラムを通じて提供されているが、新設されるAWS Serverless Application Repositoryフォーラムへの移行が予定されている。Serverless Application Repository自体は無償で利用可能で、プロビジョンされるAPI GatewayやLambda関数、DynamoDBテーブルには、その使用量に応じて通常の課金が行われる。
この記事を評価
- 編集者評
- 編集長アクション