製品とは、AWS でデプロイに利用できるようにする AWS クラウドリソースのセットのことです。製品は、EC2 インスタンス、ストレージボリューム、データベース、モニタリング設定、ネットワークコンポーネント、パッケージ化された AWS Marketplace 製品など、1 つ以上の AWS リソースで構成できます。製品には、AWS Linux を実行する 1 つのコンピューティングインスタンス、独自の環境で実行される完全に構成された多層ウェブアプリケーション、その中間に位置するものを使用できます。AWS Service Catalog を使用すると、AWS CloudFormation テンプレートや Terraform 設定など、さまざまな方法で製品を作成できます。テンプレートと設定では、製品に必要な AWS リソース、リソース間の関係、エンドユーザーが製品を起動したときにセキュリティグループの設定、キーペアの作成、その他のカスタマイズを行うために組み込むことができるパラメータを定義します。
AWS Service Catalog 製品は、AWS CloudFormation タイプの製品、Terraform のオープンソースタイプの製品、または Terraform Cloud の製品のいずれかです。AWS CloudFormation タイプの製品は、AWS CloudFormation スタックとして起動されます。このスタックは、製品のそのインスタンスに対してプロビジョニングされる一連のリソースです。Terraform オープンソースおよび Terraform Cloud タイプの製品では、基盤となるリソースは AWS Resource Groups に保存され、タグ付けされます。AWS CloudFormation スタックと AWS Resource Groups により、製品インスタンスを単一のユニットとしてプロビジョニング、タグ付け、更新、終了できるので、製品のライフサイクルを管理しやすくなります。
ポートフォリオとは、製品の集合で、設定情報も組み込まれています。ポートフォリオは、製品の設定、特定の製品を使用できるユーザー、そのユーザーに許可される製品の使用方法の管理に役立ちます。AWS Service Catalog では、組織のユーザータイプごとにカスタマイズしたポートフォリオを作成し、適切なポートフォリオへのアクセス権を選択的に付与できます。製品の新しいバージョンをポートフォリオに追加すると、そのバージョンは、そのポートフォリオの現在のすべてのユーザーに対して自動的に利用可能になります。また、自分のポートフォリオを他の AWS アカウントと共有して、そのアカウントの管理者がそのポートフォリオに制約を加えて配布できるようにすることができます。例えば、開発者の場合、ユーザーがソフトウェアの開発とテストに使用できる承認済みのバージョンの LAMP スタックなど、開発環境のポートフォリオを定義できます。また、キャンペーンウェブサイトや市場分析アプリケーションを含む、マーケティング組織向けのポートフォリオを定義できます。ポートフォリオには、AWS CloudFormation タイプの製品や Terraform のオープンソースおよび Terraform Cloud タイプの製品など、さまざまなタイプの製品を混在させることができます。
AWS Service Catalog では、カタログで複数のバージョンの製品を管理できます。これにより、ソフトウェアの更新または設定の変更に基づいて新しいバージョンのテンプレートと関連するリソースを追加できます。新しいバージョンの製品を作成すると、その製品にアクセスできるすべてのユーザーに更新が自動的に配信されるので、ユーザーは使用する製品のバージョンを選択できます。ユーザーは、製品の実行中のインスタンスを新しいバージョンにすばやく簡単に更新できます。
ポートフォリオへのアクセス権をユーザーに付与すると、ユーザーはポートフォリオを閲覧して、それに含まれる製品を起動できます。AWS Identity and Access Management (IAM) 許可を適用して、製品とポートフォリオを表示および変更できるユーザーを制御できます。IAM アクセス許可は IAM ユーザー、グループ、ロールに割り当てることができます。ユーザーが IAM ロールが割り当てられている製品を起動すると、AWS Service Catalog では、そのロールで、製品のクラウドリソースを起動します。IAM ロールを各製品に割り当てると、承認されていない操作を実行できるアクセス許可がユーザーに割り当てられないようにすることができます。また、ユーザーは、カタログを使用してリソースをプロビジョニングできます。
制約によって、特定の AWS リソースを製品に対してデプロイする方法を制限します。制約を使用して、製品に制限を適用し、ガバナンスまたはコスト管理を実現できます。制約にはテンプレートと起動の 2 つのタイプがあります。テンプレート制約では、製品を起動したときにユーザーが使用できる設定パラメータ (EC2 インスタンスタイプ、IP 範囲など) を制限します。テンプレート制約では、汎用 Infrastructure as Code (IaC) テンプレートを製品に再利用して、製品単位またはポートフォリオ単位でテンプレートに制限を適用できます。起動制約では、ポートフォリオ内の製品に対してロールを指定できます。このロールは、起動時にリソースをプロビジョニングするときに使用されるので、ユーザーがカタログから製品をプロビジョニングする機能に影響を与えずに、ユーザーのアクセス許可を制限できます。例えば、マーケティングユーザーの場合、キャンペーンウェブサイトの作成は許可しますが、制約を使用して基盤となるデータベースをプロビジョニングするためのアクセス権を制限できます。起動制約は、Terraform オープンソースおよび Terraform Cloud タイプの製品でサポートされています。Terraform オープンソースおよび Terraform Cloud タイプの製品では、テンプレート制約はまだ使用できません。
サービスアクションを使用すると、AWS のサービスへの完全なアクセス権限を付与することなく、エンドユーザーによる一連の作業を許可できます。エンドユーザーは、運用上のタスク実行や問題のトラブルシューティング、許可されたコマンドの実行、AWS Service Catalog に対するアクセス許可の要求などを、プロビジョニング済みの製品に対して実施できます。サービスアクションの定義は、AWS Systems Manager のドキュメントを通じて行います。AWS Systems Manager ドキュメントは、Amazon EC2 の停止や再起動など、AWS のベストプラクティスを実装する定義済みアクションへのアクセスを提供します。また、カスタムアクションを定義することもできます。 Terraform オープンソースおよび Terraform Cloud タイプの製品では、まだサービスアクションは使用できません。
ビルダーは、名前、説明、アプリケーションメタデータとの関係、CloudFormation スタックとの関係などを記述して、Service Catalog AppRegistry の中でアプリケーションを定義します。お客様のエンタープライズが、アプリケーションのために作成し管理しているメタデータは、関連付けられた属性グループにより示されます。CloudFormation スタックを関連付けることで、アプリケーションに関連のある AWS リソースを表すことができます。これは、必要なインフラストラクチャとして単一の環境内で機能します。あるいは、コードレポジトリやパイプラインを含めることで、環境全体のアプリケーションをサポートすることも可能です。アプリケーションとの関連付けには、既存の CloudFormation スタックを使用することも、新しいスタックを作成することもできます。テンプレート内に記述すれば、スタックとアプリケーションの関連付けを、プロビジョニング中に自動的に実施することができます。
エンタープライズは、重要な意味のあるアプリケーションメタデータをキャプチャするための属性を、作成し管理することができます。アプリケーション属性には、オープンの JSON スキーマが使用できます。このスキーマにより、エンタープライズのメタデータでの、複雑な分類基準をキャプチャする上で必要な柔軟性が提供されます。アプリケーションの属性には、セキュリティ上の機密性、組織の所有権、アプリケーションのタイプ、コストセンター、サポート情報などの項目が含められます。ビルダーは、必要な属性を、自身のアプリケーションに関連付けます。属性に対する更新が行われると、関連するすべてのアプリケーションに対し、変更内容が自動的に反映されます。