ダイナミックな性質はクラウドの最もクールな特徴の一つです。クラウドのリソースは、ものの数分で作成・アタッチ・設定・利用・デタッチそして削除することができます。これらの変更には、管理者の操作によるもの、 AWS CloudFormationによって操作されるもの、Auto Scalingをトリガーにして起こるものなどがあります。リソースそのものや、その接続性・設定・その他の属性は、時が経つにつれて変化していきます。
これらの変更が起きた際、組織のリソース管理者は、クラウド上の資産管理・在庫管理・変更管理・ガバナンスといった新たなチャレンジに直面します。管理者は、いつ・どんなリソースが変更され、その変更が他のリソースにどんな影響を与えたのかを知る必要があります。変更は時として、予期しない構成変更やシステム障害、またはセキュリティインシデントによって引き起こされたものである場合もあります。変更の原因にかかわらず、正しいデータにアクセスすることは、深く、データドリブンな分析を可能にします。
従来の構成管理ツールは、リソースや関連性が頻繁には変更されない時代に作られました。これらのツールは高価で、複雑で、管理者が色々な面倒を見る必要がありました。
AWS Configの紹介
我々はこれらのチャレンジにAWS Configを利用して取り組みます。この新しいAWSサービスは、あなたのAWSリソース(まずはEC2インスタンスと関連アイテム、その他のリソースについては計画中)の初期状態と関連性のキャプチャーおよび、作成・削除・プロパティ変更の追跡をおこない、それらを分析・可視化・保管します。
AWS Configはたった2クリックで有効化できます!有効化したら、Configはリソースやレコードの現状構成とあらゆる変更を検知します。構成データはAWS Management Console上でタイムラインとして参照できます。AWS ConfigはこれらのCIも提供します。構成変更は選択したAmazon Simple Notification Service (SNS)トピックにストリームされ、6時間毎にAmazon Simple Storage Service (S3)バケットにスナップショットがとられます。また、自作ツールやパートナーの提供するツールを利用して、収集したデータの分析をおこなうことも可能です。
AWS ConfigはAWSリソース間の関連性を解釈し、追跡します。EBSボリュームはEC2インスタンスにマウントされ、そのインスタンスはセキュリティグループ、 Elastic IP Addresses、VPC、Elastic Network Interfacesなどと紐付けられます。
AWS Configを利用すると、すべてのAWSリソースを可視化することができます。時系列の変更点を監視し、リソースの構成変更履歴を参照することができます。リソース間の接続性を確認することも、あるリソースの変更が関連するリソースにどのような影響を及ぼしたのかを見ることもできます。AWS Configは 定期的な変更が求められる環境で有益な情報を提供します!
すべてのAWSリソースに対して、それが組織のポリシーに適応したものかを確認することができます。例えば、プロダクション環境のVPCに属さないリソースをすべて洗い出す、過去2週間に特定のEIPアドレスが紐付けられたインスタンスを特定する、または、特定の日時のリソースの状態を知る、といったことが可能になります。
Configの利用方法
Configはアカウントごと、リージョンごとに有効化する必要があります。Configには、AWS Management Console、AWS Command Line Interface (CLI)、そして基本的なAPIセットからアクセスすることができます。
まずは自分のアカウントで特定のリージョンを選択し、Configを有効化します。使用するSNSトピックとS3バケットはそれぞれ、新規作成、自アカウントの既存のもの、または適切な権限が設定された別のアカウントのものを利用することができます。
AWS Configに自分のAWSリソースにアクセスするためのIAMロールを割り当てる必要があります。
バケットにデータが格納されはじめ、変更通知がSNSトピックに送られます。バケットの見え方はこのような形です。
実際には、Config用の自作ツールを構築する場合を除いて、このバケット内のデータを見ることはほとんどないと思います(データ構造の詳細を知りたい場合は下記のConfigデータの内容を参照してください)。その代わりに、Configコンソールや、サードパーティ製のツールを使います。Configコンソールでは、リソースを選択し、構成変更のタイムラインを確認することができます。
パートナーサポート
AWS Partner Network (APN)の皆様は、お客様の様々なユースケースに対応できるよう、AWS Configを利用した製品を提供しています。
Configパートナーは以下のとおりです。
- 2nd Watch
- CloudCheckr
- CloudNexa
- Evident.IO
- Red Hat Cloud Forms
- RedSeal Networks
- Splunk
それでは、彼らがどんなものを提供してくれるのか、彼らからのメッセージとスクリーンショットをご紹介します!
2nd Watchエンタープライズツールは、ユーザー環境にどんな変更が起きたのかをリアルタイム/プレイバックモードのそれぞれで可視化する機能を提供します。New Relicアプリケーションの警告、Amazon CloudWatch の警告、または AWS CloudTrailのイベントも統合し、簡単なワークロード管理を実現します。
AWS Configを利用すると、ユーザー環境の監査履歴の作成・管理をおこなえるようになります。ログは、セキュリティとコンプライアンスにとても貴重な情報を提供します。しかし、クラウドのダイナミックな性質は、ログの有効活用を難しくする場合もあります。CloudCheckrのコンプライアンスポリシーエンジンは、AWS CloudWatchのメトリックとCloudTrail のログを有益な情報に整形する機能をすでに提供しています。AWS Configによって、これらの機能はさらに拡張されます。
CloudnexaはAWSアカウント内のリソースのスナップショットと、監査用の変更履歴 を取得するためにAWS Configを統合します。AWS Configを利用することで、Cloudnexaはこれらの機能を構築するためのソフトウェアとインフラの設計、構築、メンテナンスが必要ありませんでした。
Red Hat CloudFormsの利用者は、AWS Configを利用することでAmazon Web Services内で起動中のワークロードのコンプライアンス順守とポリシー強化を実現することができます。CloudFormsの利用者がすでに仮想環境とプライベートクラウドのワークロードを管理しているのと同じレベルのコントロールを、パブリッククラウドにも拡張することができます。
AWS ConfigはAmazon S3の構成変更やAmazon VPCの構成履歴を保管・追跡します。RedSealの利用者は、AWS Configを利用することで、さらに多くの情報を取得し、AWSベースのネットワークの堅牢性を強化することができます。
Splunkは、アプリケーション、サーバー、ネットワーク、センサー、あるいはその他のシステムが生成した機械データを、利用者のビジネスに有効な形で収集し、インデックス化し、利用するためのソフトウェアとクラウドサービスを提供しています。AWS Configに統合されたSplunk App for AWSは、AWSリソース構成とリソース間の関連性を、リアルタイムおよび変更履歴という形で可視化します。このアプリケーションは、AWS ConfigとAWS CloudTrailのデータを関連付け、AWSアカウントのセキュリティとコンプライアンスを包括的に表示することもできます。
Configデータの内容(開発者用)
それではConfigによって生成されるデータの中身を見て行きましょう。以下のデータは1つのEC2インスタンス構成のスナップショットデータです。このデータには、インスタンスの識別情報、割り当てられたタグ一覧および、紐付けられているセキュリティグループとEBSボリュームが記載されています。
{"configurationItemVersion":"1.0","configurationItemCaptureTime":"2014-10-28T02:30:36.989Z","configurationStateId":2,"relatedEvents":["f8cdf490-3ddc-41ac-9cfd-9e1268dfba93"],"awsAccountId":"448164394201","configurationItemStatus":"OK","resourceId":"i-7053641e","ARN":"arn:aws:ec2:us-east-1:348414629041:instance/i-7053641e","awsRegion":"us-east-1","availabilityZone":"us-east-1b","configurationStateMd5Hash":"6ae267fafa03d87827137290c8b303e2","resourceType":"AWS::EC2::Instance","resourceCreationTime":"2013-04-26T19:36:06.000Z","tags":{"UserTagDemo":"TemporaryTag","Name":"RoadTripBlogServer"},"relationships":[{"resourceId":"sg-6e371c06","resourceType":"AWS::EC2::SecurityGroup","name":"Is associated with SecurityGroup"},{"resourceId":"vol-357a5f6c","resourceType":"AWS::EC2::Volume","name":"Is attached to Volume"}]}
Configは、変更を検知するたびにSNSトピックに通知を送ります。通知の中身は、詳細情報を含んでいます。
{"configurationItemDiff":{"changedProperties":{},"changeType":"CREATE"},"configurationItem":{"configurationItemVersion":"1.0","configurationItemCaptureTime":"2014-11-04T02:28:33.146Z","configurationStateId":1,"relatedEvents":["f8cdf490-3ddc-41ac-9cfd-9e1268dfba93"],"awsAccountId":"448164394201","configurationItemStatus":"ResourceDiscovered","resourceId":"vol-02fecb4d","ARN":"arn:aws:ec2:us-east-1:348414629041:volume/vol-02fecb4d","awsRegion":"us-east-1","availabilityZone":"us-east-1a","configurationStateMd5Hash":"16772ac8f8ccc7ed493a878f3bd88f8c","resourceType":"AWS::EC2::Volume","resourceCreationTime":"2014-11-04T02:25:10.281Z","tags":{},"relationships":[],"configuration":{"volumeId":"vol-02fecb4d","size":2,"snapshotId":"","availabilityZone":"us-east-1a","state":"available","createTime":"2014-11-04T02:25:10.281Z","attachments":[],"tags":[],"volumeType":"gp2","iops":6,"encrypted":false}},"notificationCreationTime":"2014-11-04T02:28:33.345Z","messageType":"ConfigurationItemChangeNotification","recordVersion":"1.2"}
また、Configは現在の構成のスナップショットを取得した際にも通知を送ります。
Config API
Configはリソースの構成情報を取得するための2つのAPIを提供します。
- GetResourceConfigHistory - タイムレンジとリソースを指定して構成情報を取得します。
- DeliverConfigSnapshot - リソースのスナップショットを作成し、S3に保管します。
Pricing and Availability
AWS Configは現在、US East (北ヴァージニア)リージョンでリミテッドプレビューとして利用できます。残念ながら現時点では東京リージョンでは利用できませんが、将来的には全てのAWSリージョンでAWS Configを利用できるよう計画しています。
Configは、あなたのAWSアカウントでサポートされているリソースの数量と構成変更回数(構成アイテム)に応じて課金されます。初期費用は必要ありませんし、いつでも利用を停止することができます。
1000個の構成アイテムに対して1月あたり3ドル課金されます。構成履歴ファイルと構成スナップショットのストレージとして、S3の標準料金が適用されます。また、SNS経由で通知をおこなった場合、SNSの標準料金が課金されます。
もし10000個の構成アイテムが毎月作成された場合、おそらくS3の料金は1月あたり0.13ドル以下になるでしょう。1月あたり100万回のSNS通知をAWS無料利用枠で利用できます(1万個の構成アイテムがある場合、1万回の通知を受けるでしょう)。
千葉