Amazon Linux 2 on Hyper-VでSSMを利用してみた

2017.12.22

こんにちは、菊池です。

Amazon Linux 2はオンプレミスの仮想プラットフォームでも起動できます。こちらで、Windows 10上のHyper-Vで起動することができました。

Amazon Linux 2をHyper-Vで起動してみる

続いて、この仮想マシンにSSMを設定し、Systems Managerで管理してみたいと思います。ちなみに、オンプレミスの仮想マシンへのSSM設定は、以前にも紹介していますが、最近のAmazon Linuxでは、SSMの標準インストールなど、さらに簡易に設定ができるようになっています。

EC2 Systems Managerでオンプレ環境のサーバを管理する #reinvent

やってみる

以下の手順で実施します。

  • アクティベーションの作成
  • VM上でアクティベーションの実行・SSMエージェントの起動

まずはアクティベーションの作成です。EC2のメニューから、アクティベーションの作成に進みます。

表示される、アクティベーションコード/アクティベーションIDを控えておきます。

続いて、VMでの作業です。Amazon Linux 2が動作するVMにログインします。

$ ssh -i .ssh/xxx.pem ec2-user@192.168.1.140

       __|  __|_  )
       _|  (     /   Amazon Linux 2 AMI
      ___|\___|___|

https://aws.amazon.com/amazon-linux-2/
$

Amazon Linux 2にはデフォルトでSSMエージェントがインストールされています。インストールは省略して、先ほどのアクティベーションコード/IDを利用して登録します。

# amazon-ssm-agent -register \
>  -code "xxxxxxxxxxxxxxxxxxxx" \
>  -id "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" \
>  -region "ap-northeast-1"
Initializing new seelog logger
New Seelog Logger Creation Complete
2017-12-14 06:47:12 INFO Start File Watcher On: /etc/amazon/ssm/seelog.xml
2017-12-14 06:51:04 INFO Successfully registered the instance with AWS SSM using Managed instance-id: mi-xxxxxxxxxxxxxxxxx

登録できたようです。SSMエージェントを起動します。

$ sudo systemctl start amazon-ssm-agent

一応、ステータスを確認し、正常に起動していることを確かめます。

$ sudo systemctl status amazon-ssm-agent
● amazon-ssm-agent.service - amazon-ssm-agent
   Loaded: loaded (/etc/systemd/system/amazon-ssm-agent.service; enabled; vendor preset: enabled)
   Active: active (running) since 木 2017-12-14 06:56:25 UTC; 5s ago
 Main PID: 4079 (amazon-ssm-agen)
   CGroup: /system.slice/amazon-ssm-agent.service
           └─4079 /usr/bin/amazon-ssm-agent

12月 14 06:56:26 cloudimg amazon-ssm-agent[4079]: 2017-12-14 06:56:25 INFO [instanceID=mi-xxxxxxxxxxxxxxxxx] Starting associ...olling
12月 14 06:56:26 cloudimg amazon-ssm-agent[4079]: 2017-12-14 06:56:25 INFO [instanceID=mi-xxxxxxxxxxxxxxxxx] [MessagingDeliv...ervice
12月 14 06:56:26 cloudimg amazon-ssm-agent[4079]: 2017-12-14 06:56:25 INFO [instanceID=mi-xxxxxxxxxxxxxxxxx] [MessagingDeliv...alized
12月 14 06:56:27 cloudimg amazon-ssm-agent[4079]: 2017-12-14 06:56:25 INFO [instanceID=mi-xxxxxxxxxxxxxxxxx] [MessagingDeliv...andler
12月 14 06:56:27 cloudimg amazon-ssm-agent[4079]: 2017-12-14 06:56:25 INFO [instanceID=mi-xxxxxxxxxxxxxxxxx] [OfflineService...ine...
12月 14 06:56:27 cloudimg amazon-ssm-agent[4079]: 2017-12-14 06:56:25 INFO [instanceID=mi-xxxxxxxxxxxxxxxxx] [OfflineService...olling
12月 14 06:56:27 cloudimg amazon-ssm-agent[4079]: 2017-12-14 06:56:25 INFO [instanceID=mi-xxxxxxxxxxxxxxxxx] [LongRunningPlu...anager
12月 14 06:56:27 cloudimg amazon-ssm-agent[4079]: 2017-12-14 06:56:25 INFO [instanceID=mi-xxxxxxxxxxxxxxxxx] [LongRunningPlu...xecute
12月 14 06:56:27 cloudimg amazon-ssm-agent[4079]: 2017-12-14 06:56:25 INFO [instanceID=mi-xxxxxxxxxxxxxxxxx] [HealthCheck] H...ealth.
12月 14 06:56:27 cloudimg amazon-ssm-agent[4079]: 2017-12-14 06:56:25 INFO [instanceID=mi-xxxxxxxxxxxxxxxxx] [LongRunningPlu...hcheck
Hint: Some lines were ellipsized, use -l to show in full.

問題なければ、OS起動時の自動起動を有効化しておきます。

$ sudo systemctl enable amazon-ssm-agent

マネジメントコンソールを確認すると、マネージドインスタンスに登録され、オンラインになっています!

先日新しく登場した、AWS Systems Managerでも確認できます。

登録した仮想マシンに、試しにRun Commandを実行してみました。[RunShellScript]でecho "Hello Amazon Linux 2"を実行しました。

コマンドは成功し、ちゃんと実行されていました!

最後に

オンプレミスで起動したAmazon Linux 2でのSSMの設定を行いました。オンプレミスでも、同じOS、同じ管理手法を使うことができます!