【aws system manager】リソースグループの活用と管理

awsについて初心者エンジニアに向けて、aws system managerのリソースグループの活用と管理方法を解説します。

こんにちは。今回は、awsについて初心者エンジニアに向けて、aws system managerのリソースグループの活用と管理方法を解説します。

awsは、さまざまなサービスやリソースを提供しており、それらを効果的に管理することは、awsを運用する上で重要な課題です。aws system managerは、awsリソースの管理と自動化をサポートするためのサービスであり、その中でもリソースグループは、複数のリソースをまとめて管理するための便利な機能です。

本記事では、aws system managerのリソースグループの作成方法や構成手順、タグ付けや組織化方法、監視とアラート設定、自動化とインフラストラクチャ管理、セキュリティとアクセス制御について詳しく解説していきます。

リソースグループの作成と構成手順

リソースグループを作成するには、awsコンソールにログインし、aws system managerの画面に移動します。以下の手順でリソースグループを作成することができます。

  1. awsコンソールにログインし、aws system managerの画面に移動します。
  2. 左側のサイドバーから「リソースグループ」を選択します。
  3. 「リソースグループの作成」ボタンをクリックします。
  4. リソースグループの名前、説明、タグなど必要な情報を入力します。
  5. リソースグループに追加するリソースを選択し、追加します。
  6. リソースグループの作成を確定します。

以上の手順で、リソースグループを作成することができます。リソースグループは、まとめて管理したいリソースをグループ化するための機能であり、同じプロジェクトや目的を持つリソースを一括して管理することができます。

リソースグループのタグ付けと組織化方法

リソースグループを効果的に活用するためには、タグ付けと組織化方法が重要です。タグ付けは、リソースに情報を付加することで、検索や絞り込み、監視などの目的に活用することができます。

以下に、リソースグループのタグ付けと組織化方法のサンプルコードを示します。

import boto3

# awsクライアントの生成
ssm_client = boto3.client('ssm')

# リソースグループのタグ付け
response = ssm_client.add_tags_to_resource(
    resourcetypes=[
        'aws::ssm::resourcedatasync',
    ],
    resourceids=[
        'resource_data_sync_id',
    ],
    tags=[
        {
            'key': 'environment',
            'value': 'production'
        },
        {
            'key': 'project',
            'value': 'myproject'
        },
    ]
)

# リソースグループの組織化
response = ssm_client.create_group(
    name='mygroup',
    resourcequery={
        'type': 'tag_filters_1_0',
        'query': "{\"resourcetypefilters\":[\"aws::ssm::instanceinformation\"],\"tagfilters\":[{\"key\":\"environment\",\"values\":[\"production\"]}]}"
    }
)

このように、リソースグループにはタグを付けることができます。例えば、環境別にリソースをグループ化したい場合は、"environment"というキーでタグを付けることで、環境ごとにリソースを絞り込むことができます。

リソースグループの監視とアラート設定

リソースグループでは、リソースの監視やアラート設定も行うことができます。aws system managerのコンソール画面やcloudwatchを使用して、リソースの状態やメトリクスを監視し、必要な場合にはアラートを設定することができます。

以下に、リソースグループの監視とアラート設定のサンプルコードを示します。

import boto3

# awsクライアントの生成
cloudwatch_client = boto3.client('cloudwatch')

# メトリクスの取得
response = cloudwatch_client.get_metric_data(
    metricdataqueries=[
        {
            'id': 'm1',
            'metricstat': {
                'metric': {
                    'namespace': 'aws/ssm',
                    'metricname': 'cpuutilization',
                    'dimensions': [
                        {
                            'name': 'instanceid',
                            'value': 'i-1234567890abcdef0'
                        },
                    ]
                },
                'period': 300,
                'stat': 'average',
                'unit': 'percent'
            },
            'label': 'average cpu utilization'
        },
    ],
    starttime=datetime.datetime.utcnow() - datetime.timedelta(minutes=5),
    endtime=datetime.datetime.utcnow()
)

# アラートの設定
response = cloudwatch_client.put_metric_alarm(
    alarmname='myalarm',
    alarmdescription='this metric checks the average cpu utilization of an instance',
    actionsenabled=true,
    okactions=[
        'arn:aws:sns:ap-northeast-1:123456789012:mytopic',
    ],
    alarmactions=[
        'arn:aws:sns:ap-northeast-1:123456789012:mytopic',
    ],
    metricname='cpuutilization',
    namespace='aws/ec2',
    statistic='average',
    dimensions=[
        {
            'name': 'instanceid',
            'value': 'i-1234567890abcdef0'
        },
    ],
    period=300,
    evaluationperiods=1,
    threshold=70.0,
    comparisonoperator='greaterthanthreshold'
)

このように、cloudwatchを使用してリソースグループのメトリクスを取得し、アラートを設定することができます。

リソースグループの自動化とインフラストラクチャ管理

リソースグループを活用することで、awsのインフラストラクチャを効率的に管理することができます。awsのインフラストラクチャ管理には、aws cloudformationやaws cdkを使用することで、リソースグループを自動化することができます。

以下に、リソースグループの自動化とインフラストラクチャ管理のサンプルコードを示します。

from aws_cdk import core
from aws_cdk import aws_ssm as ssm

class mystack(core.stack):

    def __init__(self, scope: core.construct, id: str, **kwargs) -> none:
        super().__init__(scope, id, **kwargs)

        # リソースグループの作成
        resource_group = ssm.cfnresourcegroup(
            self, "myresourcegroup",
            name="mygroup",
            resource_query=ssm.cfnresourcegroup.resourcequeryproperty(
                type="tag_filters_1_0",
                query="{\"resourcetypefilters\":[\"aws::ssm::instanceinformation\"],\"tagfilters\":[{\"key\":\"environment\",\"values\":[\"production\"]}]}"
            )
        )

このように、aws cdkを使用してリソースグループを自動化することができます。aws cdkを使うことで、コードでインフラストラクチャを定義し、リソースグループを管理することができます。

リソースグループのセキュリティとアクセス制御

リソースグループには、セキュリティとアクセス制御の設定も行うことができます。aws identity and access management(iam)を使用して、リソースグループへのアクセス権限を設定することができます。

以下に、リソースグループのセキュリティとアクセス制御のサンプルコードを示します。

resources:
  myresourcegroup:
    type: aws::ssm::resourcedatasync
    properties:
      name: myresourcegroup
      resourcequery:
        type: tag_filters_1_0
        query: "{\"resourcetypefilters\":[\"aws::ssm::instanceinformation\"],\"tagfilters\":[{\"key\":\"environment\",\"values\":[\"production\"]}]}"
  mygrouprole:
    type: aws::iam::role
    properties:
      assumerolepolicydocument:
        version: '2012-10-17'
        statement:
          - effect: allow
            principal:
              service: ssm.amazonaws.com
            action: sts:assumerole
      policies:
        - policyname: mygrouppolicy
          policydocument:
            version: '2012-10-17'
            statement:
              - effect: allow
                action: ssm:describeresourcegroups
                resource: arn:aws:ssm:*:*:resource-group/myresourcegroup

このように、iamロールを作成し、リソースグループへのアクセス権限を設定することができます。iamロールを使用することで、セキュリティとアクセス制御を強化することができます。

以上が、aws system managerのリソースグループの活用と管理方法についての解説です。リソースグループを使用することで、awsのリソースを効果的に管理し、運用コストを削減することができます。初心者の方でも、この記事を参考にして、aws system managerのリソースグループを活用してください。

参考ブログ記事:

 

【AWS System Manager】関連のまとめ

【AWS System Manager】関連のまとめ
【aws system manager】基本機能と活用方法   【aws system manager】セキュリティ管理とベストプラクティス   【aws system manager】パッチ管理と自動化手法   【aws system m...

 

オンラインスクールを講師として活用する!

【完全無料】使えるプログラミングスクール体験セミナー
【完全無料】使えるプログラミングスクール体験セミナー WEB制作の無料教材がここにきてどんどん増えてきてるので、使えるものをまとめようと思います。 TecAcademy(テックアカデミー) TechAcademyの無料体験 Samurai ...

 

0円でプログラミングを学ぶという選択

タイトルとURLをコピーしました