はじめに
この記事はDevOps on AWS大全の一部です。
DevOps on AWS大全の一覧はこちら。
この記事ではAWS Service Catalogに関連する内容を超詳細にまとめています。
具体的には以下流れで説明します。
- AWS Service Catalogとは
- AWS Service Catalogの仕組み
- AWS Service Catalogのセキュリティ
- AWS Service Catalog for Advance
AWSの区分でいう「Level 200:トピックの入門知識を持っていることを前提に、ベストプラクティス、サービス機能を解説するレベル」の内容です。
この記事を読んでほしい人
- AWS Service Catalogがどういうサービスか説明できるようになりたい人
- AWS Service Catalogを採用するときのベストプラクティスを説明できるようになりたい人
- AWS Certified DevOps Engineer Professionalを目指している人
AWS Service Catalogとは
AWS Service CatalogとはAWSで起動するサービス群をカタログとして管理できるサービスです。
AWS Service Catalogを利用することで、AWSに詳しくない人でも簡単にAWS上で管理されたサービスをローンチできます。
AWSには多数のサービスがあり、設定によっては大きなセキュリティホールを作り出すことも可能です。
そのため、管理者が許可したものを許可した設定以外で使ってほしくないという要望があるでしょう、
また、初心者にとってはとりあえず使って大丈夫なものを使って大丈夫な設定で気軽に試したいという要望もあるでしょう。
これらをかなえるのがAWS Service Catalogです。
試験の際にはガバナンス/コンプライアンス/一貫性を強化するために、という文脈で登場することが多いサービスです。
AWS Service Catalogの仕組み
AWS Service Catalogは裏側に構成管理のためのCloudFormationと権限管理のためのIAMが存在しています。
CloudFormationとIAMをAWS Service Catalogという形でくるみ、管理できるようにしているので管理者側で作成できる環境の定義、利用者側で起動可能なサービスをカタログから選択、という使い方ができるようになっています。
AWS Service Catalogを構成するのは大きく2つ、ProductとPortfolioです。
Productは1つまたは複数のAWSリソースから構成されており、実体はCloudFormationテンプレートです。
Productでアーキテクチャを定義し、CloudFormationテンプレートに落とし込んでいきます。
PortfolioはProductとその設定情報が複数集まったものです。
Productをどういった設定でだれがローンチできるかを決めています。
AWS Service Catalogのセキュリティ
AWS Service Catalogには制約という機能があります。
制約にはテンプレート制約と起動制約があり、それぞれProductをデプロイする際にユーザへ許可する権限を制御できます。
テンプレート製薬はユーザが使用できる設定パラメータを制限します。
例えば起動できるインスタンスタイプを安いものだけに制限したい場合に利用できます。
一方、起動制約はProductあるいはPortfolio単位でCloudFormationの操作に制限をかけます。
例えば、EC2とRDSを使ったWebアプリケーションに関するCloudFormationだけを許可したい場合に利用できます。
AWS Service Catalog for Advance
AWS Service Catalogを用いてCDを実現する場合のアーキテクチャについて解説します。
AWS Service Catalogの実体はCloudFormationなので、バージョン管理してCI/CDによる高速かつ自動更新を実装するのがAWSのベストプラクティスです。
一番簡単に実装する場合を下図にまとめました。
ほかにもCodePipelineも使いながらCIを入れることも可能なので、プロジェクトの要件を考慮しながら追加での実装をしていきましょう。
まとめ
この記事ではAWS Service Catalogに関連する内容を超詳細にまとめました。
- AWS Service Catalogとは
- AWS Service Catalogの仕組み
- AWS Service Catalogのセキュリティ
- AWS Service Catalog for Advance
次回はElasticBeanstalkを超詳細解説します。