AWS Systems Managerを使用したEC2インスタンス管理手順

インフラ技術者の雑記

AWS Systems Managerを利用すると、サービスの管理や制御を1か所で行うことができるようになります。

以前は踏み台サーバを準備して、そこからAmazon EC2にSSHするという運用をしていましたが、AWS System Managerを使うことで、よりセキュアにログインすることが可能になります。
Azure Bastionを使用したことがある方は、どんな機能かイメージしやすいかと思います。

今回は、AWS System Managerの機能でも最も使用頻度が高そうな踏み台機能についてご紹介します。

1. セットアップ手順

以下の手順にてセットアップを行います。

  1. AWS Systems ManagerコンソールにてGet Started with System Managerをクリック
  2. Quick SetupにてCreateをクリック
  3. Choose a configuration typeにてHost ManagementにチェックしNextをクリック
  4. Install and configure the CloudWatch agent.にチェック
  5. Update the CloudWatch agent once every 30 days.にチェック
  6. Createをクリック

infraexpt01_01.png

2. 接続確認

AWC CLIを使用し、SSMの前提条件を満たしたEC2インスタンスを起動。
(ssm-agentと対応したRole)

aws ec2 run-instances `
  --image-id ami-00f045aed21a55240 `
  --count 1 `
  --instance-type t2.micro `
  --iam-instance-profile Name=AmazonSSMRoleForInstancesQuickSetup

LaunchTime(UTC)が直近のInstanceIdを確認。
(要PowerShell )

$instance = aws ec2 describe-instances | ConvertFrom-JSON
($instance.Reservations).Instances | Format-Table

AmiLaunchIndex ImageId               InstanceId          InstanceType LaunchTime         Monitoring        Placement
-------------- -------               ----------          ------------ ----------         ----------        ---------
             0 ami-00f045aed21a55240 i-06930b54e632e44b9 t2.micro     2020/12/22 9:31:17 @{State=disabled} @{Availabil…
             0 ami-00f045aed21a55240 i-01a7bd662beab9821 t2.micro     2020/12/22 9:10:52 @{State=disabled} @{Availabil…
             0 ami-00f045aed21a55240 i-0c3b7e21b9a11f4fe t2.micro     2020/12/22 9:36:25 @{State=disabled} @{Availabil…

確認したInstanceIdへSessionManager経由で接続。
(AWS CLI 用の Session Manager plugin をインストールする )

aws ssm start-session --target i-0c3b7e21b9a11f4fe

無事接続されるとssm-userでログインとなります。

infraexpt01_02.png

3. おわりに

以上の手順で無事ログインすることが出来ました。
SSH経由と比べてよりセキュアに運用することが可能で、管理も楽になるので個人的に嬉しい機能です。


■商標について
Amazon Web Services、および、かかる資料で使用されるその他のAWS商標は、米国その他の諸国における、Amazon.com, Inc.またはその関連会社の商標です。