AWS認定資格 WEB問題集&徹底解説
ソリューションアーキテクト – アソシエイト
AWSサービスの一つであるAWS Serverless Application Repositoryはどんな内容なのでしょうか?また、AWS認定資格のソリューションアーキテクト-アソシエイト(SAA)に合格するためには、サービスのどんなポイントを押さえておけばよいのでしょうか?
ここでは、そんなあなたの疑問に回答していきたいと思います
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. アーキテクチャおよび技術要素
- 開発者がLambda、API Gateway、DynamoDB、EventBridgeなどをAWS SAMテンプレートで定義する。
- SAM CLI、コンソール、SDKでアプリケーションコードとSAMテンプレートをServerless Application Repositoryへ公開する。
- 公開範囲をパブリック、特定アカウント、組織内などに設定する。
- 利用者がリポジトリまたはLambdaコンソールからアプリケーションを検索する。
- README、ライセンス、権限、パラメータ、ソースコード、バージョンを確認する。
- パラメータを入力してデプロイすると、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. 設定・デプロイ手順(ハンズオン例)
- AWS SAMでLambda、API Gateway、DynamoDBなどを含むアプリケーションテンプレートを作成する。
- README、ライセンス、パラメータ、必要なIAM権限、ソースコードを整理する。
- SAM CLI、コンソール、SDKでServerless Application Repositoryへ公開する。
- 公開範囲をパブリック、特定アカウント、組織内共有から選択する。
- 利用者側でアプリケーションを検索し、README、権限、テンプレート、バージョンを確認する。
- 必要なパラメータを入力し、CloudFormationスタックとしてデプロイする。
- 作成された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スタック。