AWS認定資格 WEB問題集&徹底解説

ソリューションアーキテクト – アソシエイト

AWS Serverless Application Repository の概要と試験出題ポイントは?

AWSサービスの一つであるAWS Serverless Application Repositoryはどんな内容なのでしょうか?また、AWS認定資格のソリューションアーキテクト-アソシエイト(SAA)に合格するためには、サービスのどんなポイントを押さえておけばよいのでしょうか?
ここでは、そんなあなたの疑問に回答していきたいと思います

AWS Serverless Application Repository 徹底解説 | AWS認定試験の頻出ポイントまとめ

1. サービス概要

AWS Serverless Application Repositoryは、AWSクラウドで動作するサーバーレスアプリケーションを検索、公開、共有、デプロイするためのマネージドリポジトリです。 Lambda関数単体だけでなく、API Gateway、DynamoDB、EventBridge、IAMロールなどを含むサーバーレスアプリケーションをAWS SAMテンプレートとしてパッケージ化できます。

試験では、再利用可能なサーバーレスアプリケーションを組織内または公開で共有したい、既存のサーバーレス部品を数クリックでデプロイしたい、という場面で選びます。 ライブラリパッケージ管理はCodeArtifact、IaCテンプレート全般はCloudFormation/CDK、サーバーレス開発フレームワークはAWS SAMと切り分けます。

2. 主な特徴と機能

2.1 サーバーレスアプリケーションの公開

開発者はAWS Management Console、AWS SAM CLI、SDKを使ってアプリケーションを公開できます。 コードとともに、アプリケーションのリソース、パラメータ、権限を記述したAWS SAMテンプレートをアップロードします。

2.2 公開共有とプライベート共有

アプリケーションはコミュニティ向けに公開したり、チーム内、特定アカウント、組織内に限定して共有したりできます。 企業利用では、承認済みのサーバーレス部品を組織内で再利用するパターンが重要です。

2.3 検索とデプロイ

ユーザーは名前、発行者、カテゴリ、イベントソースなどでアプリケーションを検索できます。 必要なパラメータを入力すると、CloudFormationを通じて対象アカウントにアプリケーションがデプロイされます。

2.4 Lambdaコンソール統合

Serverless Application RepositoryはLambdaコンソールと統合されており、サーバーレスアプリケーションを探してすぐにデプロイしやすくなっています。 Lambda初心者でも既存アプリケーションを再利用しやすい点が特徴です。

2.5 バージョン管理

公開したアプリケーションにはバージョンを持たせることができます。 利用者はREADME、ライセンス、ソースコード、必要な権限、パラメータ、バージョンを確認してデプロイします。

2.6 権限の明示

アプリケーションがIAMロール、ポリシー、カスタムリソースなどの権限を必要とする場合、デプロイ前に確認が必要です。 試験では、第三者アプリケーションを無条件にデプロイせず、CloudFormationで作成される権限を確認することが重要です。

3. アーキテクチャおよび技術要素

  1. 開発者がLambda、API Gateway、DynamoDB、EventBridgeなどをAWS SAMテンプレートで定義する。
  2. SAM CLI、コンソール、SDKでアプリケーションコードとSAMテンプレートをServerless Application Repositoryへ公開する。
  3. 公開範囲をパブリック、特定アカウント、組織内などに設定する。
  4. 利用者がリポジトリまたはLambdaコンソールからアプリケーションを検索する。
  5. README、ライセンス、権限、パラメータ、ソースコード、バージョンを確認する。
  6. パラメータを入力してデプロイすると、CloudFormationスタックとしてサーバーレスリソースが作成される。

Serverless Application Repositoryは、サーバーレスアプリケーションの「配布カタログ」です。 実際のリソース作成、更新、削除はCloudFormationスタックとして管理されます。

4. セキュリティと認証・認可

  • IAM権限確認: アプリケーションが作成するIAMロール、ポリシー、権限昇格リスクをデプロイ前に確認する。
  • 共有範囲: パブリック公開、アカウント共有、組織共有の範囲を最小化する。
  • 発行者の信頼性: 公開アプリケーションは発行者、README、ソースコード、ライセンスを確認して利用する。
  • CloudFormationレビュー: 作成されるリソース、CAPABILITY_IAM/CAPABILITY_NAMED_IAM、パラメータを確認する。
  • 暗号化: アプリケーションがS3、DynamoDB、KMS、Secrets Managerなどを使う場合、各サービスで暗号化を設定する。
  • 監査: CloudTrail、CloudFormationイベント、Lambdaログ、作成リソースのログで操作と実行を追跡する。

5. 料金形態

Serverless Application Repository自体の利用に追加料金はありません。 料金は、デプロイしたアプリケーションが利用するAWSリソースに対して発生します。

  • 実行リソース: Lambda、API Gateway、DynamoDB、SQS、SNS、EventBridgeなどの利用料金。
  • 保存/ログ: S3、CloudWatch Logs、ECR、DynamoDBストレージなどの料金。
  • ネットワーク: データ転送、NAT Gateway、VPCエンドポイントなどの料金。
  • 運用: CloudFormationスタック、アラーム、ログ保持、バックアップなど周辺サービスの料金。
  • 最適化: デプロイ前にテンプレートの作成リソースを確認し、不要なスタックやログを削除する。

6. よくあるアーキテクチャ・設計パターン

  • 組織内テンプレート共有: 認証、監査、通知、データ処理などの共通サーバーレス部品を社内で再利用する。
  • 公開サンプル配布: OSSやAWSサンプルのサーバーレスアプリケーションを公開し、利用者が短時間でデプロイできるようにする。
  • イベント駆動処理: S3イベント、EventBridge、SNS/SQSを使うLambdaアプリをカタログ化する。
  • APIバックエンド: API Gateway + Lambda + DynamoDBの小規模APIを共有可能なアプリケーションとして公開する。
  • 運用自動化: ログ処理、定期ジョブ、通知、セキュリティ自動化を再利用可能なアプリとして配布する。
  • 検証環境の素早い作成: サンプルアプリをデプロイして学習、検証、PoCに利用し、不要になったらスタックごと削除する。

7. 設定・デプロイ手順(ハンズオン例)

  1. AWS SAMでLambda、API Gateway、DynamoDBなどを含むアプリケーションテンプレートを作成する。
  2. README、ライセンス、パラメータ、必要なIAM権限、ソースコードを整理する。
  3. SAM CLI、コンソール、SDKでServerless Application Repositoryへ公開する。
  4. 公開範囲をパブリック、特定アカウント、組織内共有から選択する。
  5. 利用者側でアプリケーションを検索し、README、権限、テンプレート、バージョンを確認する。
  6. 必要なパラメータを入力し、CloudFormationスタックとしてデプロイする。
  7. 作成されたLambda、API Gateway、DynamoDB、IAM、CloudWatch Logsを確認し、不要時はスタックを削除する。

8. 試験で問われやすいポイント

8.1 サービス選択

  • Q: AWS Serverless Application Repositoryの主な用途は?
    A: サーバーレスアプリケーションを検索、公開、共有、デプロイすること。
  • Q: Serverless Application Repositoryで使うアプリケーション定義形式は?
    A: AWS SAMテンプレート。
  • Q: ライブラリやビルド依存パッケージを管理するサービスは?
    A: AWS CodeArtifact。Serverless Application Repositoryはサーバーレスアプリケーション共有が対象。

8.2 デプロイと共有

  • Q: Serverless Application Repositoryのアプリはどの仕組みでAWSリソースを作成する?
    A: CloudFormationスタックとしてデプロイされる。
  • Q: アプリケーションは誰に共有できる?
    A: パブリック、特定アカウント、チーム、組織内などに共有できる。
  • Q: Lambda初心者が既存サーバーレスアプリを探してデプロイしやすい理由は?
    A: Lambdaコンソールと統合され、検索して必要項目を入力するだけでデプロイしやすいから。

8.3 セキュリティと料金

  • Q: 第三者のサーバーレスアプリをデプロイする前に確認すべきことは?
    A: 発行者、README、ソースコード、ライセンス、作成されるIAM権限、CloudFormationテンプレート。
  • Q: Serverless Application Repository自体に追加料金はかかる?
    A: いいえ。デプロイしたLambda、API Gateway、DynamoDB、CloudWatch Logsなどに料金が発生する。
  • Q: 不要になったアプリケーションを削除する基本単位は?
    A: デプロイ時に作成されたCloudFormationスタック。