バナー画像

AWS configについてまとめています。

AWS Configは、リソースのインベントリと変更のモニタリングをおこなうサービス

AWS Config は、AWS リソースの設定を評価、監査、審査できるサービスです。AWS Config では、AWS リソースの設定を継続的にモニタリングして記録し、想定された設定になっているかどうかを自動的に評価。評価内容は、ビジュアル画面で表示されます。

関連)AWS Config(リソースのインベントリと変更の追跡)| AWS

社内のガイドラインに沿って運用されているのかどうかを確認できるんですね。評価の結果、このましくな設定や変更を見つけた場合は、記録された設定履歴をさかのぼって原因を確認できます。この仕組により、コンプライアンス違反となる設定を一発で発見できるんですね。コンプライアンス監査やセキュリティ分析、変更管理や運用上のトラブルシューティングに対して活用することができます。

AWS Configの料金

AWS Configは、設定したルールに沿って評価するごとに料金がかかる従量課金制。ルール評価の回数が多くなると単価が少しづつ下がります。

参考)料金 – AWS Config | AWS

AWS Configのメリット

AWS Config は、AWSリソース設定変更を継続的にモニタリングし、記録します。任意の時点で、AWS リソース、AWS リソースの設定、EC2 インスタンス内のソフトウェア設定のインベントリを実行することが可能。以前の状態からの変更が検出されると、Amazon Simple Notification Service (SNS)による通知がユーザにはいしんされます。

AWS Configによる監視ポリシーは、継続的に利用が可能です。AWSリソースのプロビジョニングや設定のルールを定義しておき、単独またはパックと呼ばれるコンプライアンス改善アクションと一緒にパッケージ化してプロビジョニングが可能。パックしておけば1回のクリックで組織全体にデプロイが可能なんですね。変更検知でAmazon SNSと、Amazon Cloud Watch Eventsがトリガーされます。結果、お客様に配信され、確認してアクションを実行できます。

関連)特徴 – AWS Config | AWS

AWS Configの使い方

AWS Configを使うには、AWS Configのページからセットアップを行います。「1-Click セットアップ」を実行すると、難しい設定を行うことなくすぐにAWS Configが使用可能になります。

AWS Configのダッシュボードが表示されます。

「高度なクエリ」では、対象の状態をSQLで取得することができるサンプルクエリが大量に用意されています。AWS Configでは、SQLクエリを実行してAWSリソースの状態を取得可能なんですね。

以下のSQLは、EC2インスタンスのうちステータスがUser initialtedとなっているものを取得します。書式は一般的なSQLのselect文ですね。

SELECT
  resourceId,
  resourceName,
  resourceType,
  configuration.stateTransitionReason,
  configuration.instanceType,
  tags,
  availabilityZone
WHERE
  resourceType = 'AWS::EC2::Instance'
  AND configuration.stateTransitionReason = 'User initiated'

関連)EC2 Instances with User initiated state transition

以下は、EC2インスタンスのうち、imageID「ami-12345」というAMIから作られたものを取得するクエリです。

【関連記事】
AWSのIAMは、AWSサービスとリソースへのアクセス管理とアクセス分析が可能

SELECT
    resourceId,
    resourceType,
    configuration.instanceType,
    configuration.placement.tenancy,
    configuration.imageId,
    availabilityZone
WHERE
    resourceType = 'AWS::EC2::Instance'
    AND configuration.imageId = 'ami-12345'

クエリ結果として、以下が取得できます。

{
    "QueryInfo": {
        "SelectFields": [
            {
                "Name": "resourceId"
            },
            {
                "Name": "resourceType"
            },
            {
                "Name": "configuration.instanceType"
            },
            {
                "Name": "configuration.placement.tenancy"
            },
            {
                "Name": "configuration.imageId"
            },
            {
                "Name": "availabilityZone"
            }
        ]
    },
    "Results": [
        "{\"resourceId\":\"resourceid\",\"configuration\":{\"imageId\":\"ami-12345\",\"instanceType\":\"t2.micro\",\"placement\":{\"tenancy\":\"default\"}},\"availabilityZone\":\"us-west-2c\",\"resourceType\":\"AWS::EC2::Instance\"}",
        "{\"resourceId\":\"resourceid\",\"configuration\":{\"imageId\":\"ami-12345\",\"instanceType\":\"t2.micro\",\"placement\":{\"tenancy\":\"default\"}},\"availabilityZone\":\"us-west-2a\",\"resourceType\":\"AWS::EC2::Instance\"}",
        "{\"resourceId\":\"resourceid\",\"configuration\":{\"imageId\":\"ami-12345\",\"instanceType\":\"t2.micro\",\"placement\":{\"tenancy\":\"default\"}},\"availabilityZone\":\"us-west-2c\",\"resourceType\":\"AWS::EC2::Instance\"}",
        "{\"resourceId\":\"resourceid\",\"configuration\":{\"imageId\":\"ami-12345\",\"instanceType\":\"t1.micro\",\"placement\":{\"tenancy\":\"default\"}},\"availabilityZone\":\"us-west-2a\",\"resourceType\":\"AWS::EC2::Instance\"}",
        "{\"resourceId\":\"resourceid\",\"configuration\":{\"imageId\":\"ami-12345\",\"instanceType\":\"t2.micro\",\"placement\":{\"tenancy\":\"default\"}},\"availabilityZone\":\"us-west-2c\",\"resourceType\":\"AWS::EC2::Instance\"}",
        "{\"resourceId\":\"resourceid\",\"configuration\":{\"imageId\":\"ami-12345\",\"instanceType\":\"t2.micro\",\"placement\":{\"tenancy\":\"default\"}},\"availabilityZone\":\"us-west-2c\",\"resourceType\":\"AWS::EC2::Instance\"}",
        "{\"resourceId\":\"resourceid\",\"configuration\":{\"imageId\":\"ami-12345\",\"instanceType\":\"t2.micro\",\"placement\":{\"tenancy\":\"default\"}},\"availabilityZone\":\"us-west-2c\",\"resourceType\":\"AWS::EC2::Instance\"}"
    ]
}

参考)クエリ例 – AWS Config

AWS Configのまとめ

ポテパンダの一言メモ
  • AWS ConfigはAWSリソースの設定変更を監視、評価できる機能
  • グラフ表示の視覚インタフェースで、想定外の変更がひと目で把握できる
  • AWSリソースの状態をSQLクエリで取得可能

エンジニアになりたい人に選ばれるプログラミングスクール「ポテパンキャンプ 」

ポテパンキャンプは卒業生の多くがWebエンジニアとして活躍している実践型プログラミングスクールです。 1000名以上が受講しており、その多くが上場企業、ベンチャー企業のWebエンジニアとして活躍しています。

基礎的な学習だけで満足せず、実際にプログラミングを覚えて実践で使えるレベルまで学習したいという方に人気です。 プログラミングを学習し実践で使うには様々な要素が必要です。

それがマルっと詰まっているポテパンキャンプでプログラミングを学習してみませんか?

卒業生の多くがWebエンジニアとして活躍

卒業生の多くがWeb企業で活躍しております。
実践的なカリキュラムをこなしているからこそ現場でも戦力となっております。
活躍する卒業生のインタビューもございますので是非御覧ください。

経験豊富なエンジニア陣が直接指導

実践的なカリキュラムと経験豊富なエンジニアが直接指導にあたります。
有名企業のエンジニアも多数在籍し品質高いWebアプリケーションを作れるようサポートします。

満足度高くコスパの高いプログラミングスクール「ポテパンキャンプ」

運営する株式会社ポテパンは10,000人以上のエンジニアのキャリアサポートを行ってきております。
そのノウハウを活かして実践的なカリキュラムを随時アップデートしております。

代表の宮崎もプログラミングを覚えサイトを作りポテパンを創業しました。
本気でプログラミングを身につけたいという方にコスパ良く受講していただきたいと思っておりますので、気になる方はぜひスクール詳細をのぞいてくださいませ。