LoginSignup
3
2

CloudWatchAgentをインストールしてサーバーの監視を行う②(EC2への権限追加・SSMによるEC2への接続)

Last updated at Posted at 2024-02-26

前回の記事にてCloudWatchAgentで使用するVPCエンドポイントの作成を行いました。
今回は、IAMロールを作成し、EC2に対してIAMロールをアタッチします。
EC2にIAMロールをアタッチ後、SSMにてEC2に接続できることを確認します。

作業の流れ

1.VPCへCloudWatchAgentに必要なVPCエンドポイントを作成する
2.EC2を構築し、IAMロールをアタッチする(CloudWatchAgentとSSM権限の付与)←いまここ
3.EC2に対してCloudWatchAgentをインストールする
4.CloudWatchAgentのconfigファイルを設定し、CPU・メモリ・プロセスなどのメトリクスを取得する
4.CloudWatchAgentのconfigファイルを設定し、CPU・メモリ・プロセスなどのメトリクスを取得する
   Linux用CloudwatchAgent設定ファイルの生成・CloudwatchAgentの起動
  Windows用CloudwatchAgent設定ファイルの生成・CloudwatchAgentの起動
5.SNSトピックの作成
6.CloudWatchAgentで取得したメトリクスに対してCloudWatchAlarmを設定する

構成図確認
改めて構成図を確認します。
前回の記事にて、プライベートサブネット上にCloudWatchAgent・SSMにて使用するVPCエンドポイントを作成作成しました。
今回はプライベートサブネット上に構築したEC2に対してIAMロールをアタッチし、SSMによる接続確認を行います。

image.png

IAMユーザーの作成

EC2の構築方法については別記事をご参照ください。
今回はプライベートサブネット上に既存のEC2インスタンスに対して、IAMロールをアタッチします。

用語の確認

具体的な構築手順に入る前に、この記事で利用するAWSリソースについて簡単に確認します。

AWS Systems Manager(SSM)

SSMはAWSリソースの管理ツールです。
SSMを利用することでAWSリソースに対して起動停止、コマンド実行、OS更新や接続など様々な操作を行うことができます。
Linux、Windowsなど複数のOSが対応しています。(SSMで対応しているOS

SSMパラメータストア

SSMパラメータストアはSSMの機能の中の一つです。
階層型のストレージとなっており、パスワード、データベース文字列や設定ファイルなどの情報を保存できます。

IAM(AWS Identity and Access Management)

IAMは、AWSリソースへのアクセス管理を行うためのサービスです。
IAMポリシーによりアクセス権限の定義を行います。
自分でIAMポリシーの定義を行うこともできますが、デフォルトの状態でも、AWSにより事前に定義されているAWSマネージドIAMポリシーが利用できます。
定義したIAMポリシーは、IAMユーザー、IAMグループやIAMロールへと紐づけることが可能です。
IAMユーザーは、AWSアカウント上で利用できるユーザーのことです。ユーザーは特定のユーザーに一意に関連づきます。
IAMグループは、IAMユーザーをひとまとめにできるグループです。
IAMロールはIAMユーザーと少し似ています。
IAMユーザーは特定の人に紐づくのに対して、IAMロールはAWSリソースや他のAWSアカウントに紐づけ、アクセス許可を与えることが可能です。

VPCエンドポイントの作成(事前準備)

プライベートサブネット上のEC2へSSMによる接続を行う場合は、下記三つのVPCエンドポイントが必要となります。

■SSMによるEC2ログインに必要なエンドポイント
・ssm.region.amazonaws.com
・ssmmessages.region.amazonaws.com
・ec2messages.region.amazonaws.com

具体的なVPCエンドポイント作成手順については、前回の記事をご参照ください。

IAMロールの作成

まずはEC2インスタンス用のIAMロールを作成します。
IAMロールに紐づけるAWSマネージドのIAMポリシーは下記となります。

■CloudWatch関連の権限(どちらか一つ)
・CloudWatchAgentServerPolicy
・CloudWatchAgentAdminPolicy

※CloudWatchAgentServerPolicyとCloudWatchAgentAdminPolicyは、どちらもCloudwatchの利用権限が付与されています。
ただし、CloudWatchAgentAdminPolicyにはCloudwatchの権限に加え、Systems Managerの「GetParameter」「PutParameter」の権限が付与されています。
これにより、EC2内のCloudWatchAgentでConfigファイルを作成した際に、SSMのパラメータストア上にConfigファイルの内容を保存することができるようになります。

■SSM関連の権限
AmazonSSMManagedInstanceCore

IAMのサービス画面へ移動し、左メニューから「ロール」を押下します。
image.png

IAMロールの一覧が用事されます。
右上の「ロールの作成」を押下します。
image.png

IAMロールの作成画面が表示されます。
今回はEC2インスタンスがIAMロールを利用するため、
「信頼されたエンティティタイプ」には「AWSのサービス」を選択します。

image.png

「サービスまたはユースケース」のプルダウンメニューから、「EC2」を選択します。
「EC2」のチェックボックスにチェックを入れ、「次へ」を押下します。

image.png

IAMポリシーの追加画面が表示されます。
テキストボックスに「CloudWatchAgentAdminPolicy(もしくはCloudWatchAgentServerPolicy)」と入力し、エンターキーを押下します。
表示されたIAMポリシーのチェックボックスにチェックを入れます。
image.png

テキストボックスに入力した文字列を削除し、今度は「AmazonSSMManagedInstanceCore」と入力し、エンターキーを押下します。
表示されたIAMポリシーのチェックボックスにチェックを入れ、「次へ」を押下します。

image.png

ロール名の設定・確認画面が表示されます。
「ロール名」のテキストボックスにロール名を入力し、下へスクロールします。

image.png

信頼されたエンティティについては変更せず、下へスクロールします。
image.png

CloudWatchAgentAdminPolicy(もしくはCloudWatchAgentServerPolicy)・AmazonSSMManagedInstanceCoreのIAMポリシーが設定されていることを確認します。
IAMロールへタグを設定する場合は、「タグを追加」セクションにて設定が可能です。

IAMロール名・IAMポリシー・タグの設定が確認出来たら、「ロールの作成」を押下します。
image.png

IAMロールが作成されたことを確認します。
image.png

EC2へのIAMロールのアタッチ

作成したIAMロールをEC2へアタッチします。
EC2のトップページへ移動し、左メニューから「インスタンス」を押下します。

インスタンスの一覧が表示されたら、IAMロールをアタッチしたいインスタンスのチェックボックスにチェックを入れ、「アクション」を押下します。
image.png

展開されたメニューの中から「セキュリティ」を押下し、さらに「IAMロールを変更」を押下します。
image.png

IAMロールの変更画面が表示されます。
プルダウンメニューから先ほど作成したIAMロールを選択し、「IAMロールの変更」を押下します。
image.png

IAMロールがインスタンスにアタッチされたことを確認します。
image.png

EC2へのSSMエージェントのインストールについて

SSMを利用してEC2へ接続するには、EC2内にSSMAgentをインストールする必要があります。
ただし、2017 年 9 月以降のAmazonLinuxAMIを利用して作成したインスタンスには、あらかじめSSMAgentがインストールされています。(参考
Windowsサーバーの場合は、Windows Server 2016、2019、2022のインスタンスと、2016 年 11 月以降にAmazonから公開された Windows Server 2008-2012 R2のAMIを利用して作成したインスタンスには、あらかじめSSMAgentがインストールされています。(参考

それ以外のOSを利用してEC2を構築した場合は、SSMエージェントのインストールを行う必要があります。
例えば下記のようなコマンドでSSMAgentのインストールが行えます。
※コマンド内のS3URLで指定している「region」の部分は、利用するリージョンのリージョンコードを入れて実行してください。
参考:リージョン

Amazon Linuxの場合のインストールコマンド

sudo yum install -y https://s3.region.amazonaws.com/amazon-ssm-region/latest/linux_amd64/amazon-ssm-agent.rpm

SUSELinuxの場合のインストールコマンド

sudo zypper install amazon-ssm-agent

参考:Linux 用 EC2 インスタンスに手動で SSM Agent をインストールする

Windows Serverの場合のインストールコマンド(PowerShellにて実行)

[System.Net.ServicePointManager]::SecurityProtocol = 'TLS12'
$progressPreference = 'silentlyContinue'
Invoke-WebRequest `
    https://s3.amazonaws.com/ec2-downloads-windows/SSMAgent/latest/windows_amd64/AmazonSSMAgentSetup.exe `
    -OutFile $env:USERPROFILE\Desktop\SSMAgent_latest.exe

参考:Windows Server 用 EC2 インスタンスに手動で SSM Agent をインストールする

※SSMAgentのインストールを行う際は、S3へのアクセスが発生します。
プライベートサブネット上のEC2へSSMAgentのインストールを行う場合は、S3用のVPCエンドポイント構築・NATGateway構築などの対応が必要となります。NATGatewayの構築方法は、こちらの記事をご参照ください。VPCエンドポイントの作成については、前回の記事をご参照ください。VPCエンドポイントの作成時に「サービス」の検索ボックスに「S3」と入力し、表示された中から「Gateway」型の「com.amazonaws.ap-northeast-1.s3」を選択しVPCエンドポイントを作成します。ゲートウェイ型の VPC エンドポイントであればデータ処理料金や時間単位料金は発生しません。
参考:Amazon VPC の料金

SSMにてサーバーへターミナル接続する

IAMロールの設定・SSMAgentのインストールの対応が完了したら、SSMを利用してサーバーへログインできるようになります。

EC2一覧から接続したいEC2のチェックボックスにチェックを入れ、「接続」を押下します。
image.png

「インスタンスに接続」の画面が表示されます。
「セッションマネージャー」のタブへ移動し、「接続」を押下します。
image.png

サーバーにログインできると、ターミナル上からコマンドが実行できるようになります。
Windowsサーバーの場合は、コマンドプロンプトのターミナルが表示されます。
右上の「終了」ボタンを押下すると接続を終了することができます。

image.png

フリートマネージャーにてサーバーへRDP接続する

Windowsサーバーの場合は、SystemsManagerのフリートマネージャーを利用するとサーバーへのRDP接続が行えます。
SystemsManagerのトップページへ移動し、左メニューから「フリートマネージャー」を押下します。
image.png
フリートマネージャーのトップページが表示されます。「使用を開始する」を押下します。
image.png
フリートマネージャーにて接続可能なインスタンスが一覧で表示されています。
接続したいインスタンスのチェックボックスにチェックを入れます。左上の「ノードアクション」のメニューを展開し、「接続」「リモートデスクトップで接続」を押下します。
image.png
ログイン情報の入力画面が表示されます。
Windowsサーバーのログイン情報を入力し、「Connect」を押下します。
image.png

※WindowsのEC2にてAdministratorの接続情報を取得する手順はこちらをご参照ください。
フリートマネージャーからサーバーへRDP接続が行えます。
image.png
接続を終了したい場合は、左上の「アクション」から「セッションの終了」を押下します。
image.png

ここまでお読みいただきありがとうございました。
次回はサーバーへCloudWatchAgentをインストールする手順についてご紹介します。

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2