BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース AWSがServerless Application Repositoryを一般公開

AWSがServerless Application Repositoryを一般公開

ブックマーク

原文(投稿日:2018/02/28)へのリンク

読者の皆様へ: 皆様のご要望にお応えするべく、ノイズを削減する機能セットを開発しました。皆様が関心をお持ちのトピックを、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テーブルには、その使用量に応じて通常の課金が行われる。

 
 

この記事を評価

採用ステージ
スタイル
 
 

この記事に星をつける

おすすめ度
スタイル

BT