Amazon EC2 Systems Manager ~ハンズオン~ Amazon EC2 とオンプレミスシステムの設定と管理 2017/07/19 OpsJaws #12 株式会社サーバーワークス クラウドインテグレーション部 カスタマーサポート課 伊藤 覚宏
Amazon EC2 Systems Manager~ハンズオン~
Amazon EC2 とオンプレミスシステムの設定と管理
2017/07/19
OpsJaws #12
株式会社サーバーワークスクラウドインテグレーション部カスタマーサポート課
伊藤 覚宏
目次
1. Systems Managerによる構成情報取得
1. IAM作成
2. インスタンス構築
3. インベントリ情報の取得
2. Systems Managerによるパッチ適用
1. IAM作成
2. パッチベースラインの確認
3. 手動パッチ適用
4. パッチコンプライアントの確認
5. 定期パッチ適用設定
2
Systems Managerによる構成情報取得
3
IAM作成
Systems Managerによる構成情報取得
Systems Managerを利用して、インスタンスのインベントリ情報を収集す
る方法を紹介します
5
IAM作成
EC2インスタンス 用のIAMロールを作成します。
6
IAM作成
IAMコンソールに移動し、[新しいロールの作成]をクリックします
7
IAM作成
[AWS サービスロール]-[Amazon EC2 Role for Simple Systems
Manager]を[選択]します
8
IAM作成
管理ポリシー[AmazonEC2RoleforSSM]をアタッチします。
9
IAM作成
わかりやすい名前を付けて[ロールの作成]をします。
10
IAM作成
作成したロールを選択して管理画面を開きます。
11
IAM作成
作成したロールの[信頼関係]タブを開き[信頼関係の編集]をクリックします。
12
IAM作成
Serviceに[ssm.amazonaws.com]を追加し[信頼ポリシーの更新]をします。
13
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "",
"Effect": "Allow",
"Principal": {
"Service": "ec2.amazonaws.com"
},
"Action": "sts:AssumeRole"
}
]
}
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "",
"Effect": "Allow",
"Principal": {
"Service": [
"ec2.amazonaws.com",
"ssm.amazonaws.com"
]
},
"Action": "sts:AssumeRole"
}
]
}
IAM作成
[信頼されたエンティティ]が更新されていることを確認します。
14
EC2ローンチ
EC2ローンチ
作成したIAMロールをアタッチしてインスタンスをローンチします。
16
インスタンスローンチ時のUserDataのコマンドは以下の公式ドキュメントからコピーできます。
http://docs.aws.amazon.com/ja_jp/systems-manager/latest/userguide/ssm-agent.html
EC2ローンチ
作成したIAMロールをアタッチしてインスタンスをローンチします。
Windowsインスタンス
Amazon Linuxインスタンス
RHELインスタンス
Ubuntuインスタンス を構築します。
17
Windowsインスタンスローンチ
Windows_Server-2016-Japanese-Full-Base-2017.04.12
ami-03785464 からローンチします。
IAMロールをアタッチします。
WindowsAMIにはSSMエージェントがあらかじめインストールされている
ので、特別な対応は不要です。
18
Amazon Linuxインスタンスローンチ
Amazon Linux AMI 2017.03.1 (HVM), SSD Volume Type -
ami-3bd3c45c からローンチします。
IAMロールをアタッチします。
以下のコマンドをユーザデータに設定してローンチします。
19
#!/bin/bash
cd /tmp
sudo yum install -y https://s3.amazonaws.com/ec2-downloads-
windows/SSMAgent/latest/linux_amd64/amazon-ssm-agent.rpm
RHELインスタンスローンチ
Red Hat Enterprise Linux 7.3 (HVM), SSD Volume Type –
ami-5c9a933b からローンチします。
IAMロールをアタッチします。
以下のコマンドをユーザデータに設定してローンチします。
20
#!/bin/bash
cd /tmp
sudo yum install -y https://s3.amazonaws.com/ec2-downloads-
windows/SSMAgent/latest/linux_amd64/amazon-ssm-agent.rpm
Ubuntu Serverインスタンスローンチ
Ubuntu Server 16.04 LTS (HVM), SSD Volume Type –
ami-785c491f からローンチします。
IAMロールをアタッチします。
以下のコマンドをユーザデータに設定してローンチします。
21
#!/bin/bash
cd /tmp
wget https://s3.amazonaws.com/ec2-downloads-windows/SSMAgent/latest/debian_amd64/amazon-ssm-
agent.deb
sudo dpkg -i amazon-ssm-agent.deb
sudo systemctl enable amazon-ssm-agent
インスタンスの確認
[マネージメントインスタンス]を選択します。
IAMロールが適切に設定されており、SSMエージェントのインストールが完
了していれば、インスタンスが表示されます。
22
インベントリ情報の取得
インベントリ情報の取得
[マネージメントインスタンス]を選択し[セットアップインベントリ]をク
リックします
24
インベントリ情報の取得
[ターゲット]で[インスタンスの手動選択]を選び、作成したインスタンスを
指定します
25
インベントリ情報の取得
インベントリ情報の収集頻度を指定します
30分周期、指定時間周期、指定曜日の指定時間のいずれかが選べます
今回は[Every 30 Minutes]を選択します。
26
インベントリ情報の取得
収集する項目を選択します
今回はすべて[Enabled]にします。
27
インベントリ情報の取得
詳細設定で、実行履歴をS3に書き込むように設定ができます。
今回はスキップします。
[セットアップインベントリ]をクリックします。
28
参考:インベントリ情報の取得
[実行履歴をS3に書き込む]にチェックを付けた場合、バケット名、リージョ
ン、プレフィックスを指定します
29
インベントリ情報の取得
インベントリリクエストが設定されるので。[閉じる]をクリックします。
30
インベントリ情報の取得
[マネージドインスタンス]でインスタンスを選択し[インベントリ]タブで
[Inventory Type]を選択することで構成情報が確認します。
31
参考:インベントリ情報の取得
AWS Configを有効にしている場合、インベントリの変更履歴を管理するこ
とが出来ます
32
参考:インベントリ情報の取得
33
参考:インベントリ情報の取得
34
Systems Managerによるパッチ適用
35
IAM作成
IAM作成
定期実行のため、メンテナンスウィンドウ用のIAMを作成します。
37
IAM作成
Systems Manager[メンテナンスウィンドウ]用のIAMロールを作成します。
38
IAM作成
[AWS サービスロール]-[Amazon EC2]を選択します
39
IAM作成
管理ポリシー[AmazonSSMMaintenanceWindowRole]をアタッチします。
40
IAM作成
メンテナンスウィンドウ用とわかる名前を付けてポリシーを作成します。
41
IAM作成
[メンテナンスウィンドウ]用に作成したIAMロールの信頼関係を編集します
42
IAM作成
Serviceに[ssm.amazonaws.com]を追加し[信頼ポリシーの更新]をします。
43
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "",
"Effect": "Allow",
"Principal": {
"Service": "ec2.amazonaws.com"
},
"Action": "sts:AssumeRole"
}
]
}
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "",
"Effect": "Allow",
"Principal": {
"Service": [
"ec2.amazonaws.com",
"ssm.amazonaws.com"
]
},
"Action": "sts:AssumeRole"
}
]
}
IAM作成
IAMロールに信頼関係に[ssm.amazonaws.com]を追加します
44
パッチベースラインの確認
パッチベースラインを確認します
45
パッチベースラインの確認
46
[パッチベースライン]でベースラインを選択し、[Approval Rules]を確認し
ます。
パッチベースラインの確認
47
パッチベースラインの確認
48
パッチベースラインの確認
49
パッチベースラインの確認
50
参考:パッチベースラインの作成
[Create Pathc Baseline]をクリックします。
51
参考:パッチベースラインの作成
パッチベースラインを作成する[OS]を選択します。
52
参考:パッチベースラインの作成
パッチベースラインで適用するパッチのベースを指定します
Product: OSバージョン
Classification: パッチ分類
Severity: 重要度
Auto Approval Delay: 遅延日数
53
参考:パッチベースラインの作成
パッチベースラインで適用するパッチのベースを指定します
例外設定を行うことで、特定のパッチだけを分類や重要度を無視して適用、非適
用を指定することが可能です
54
参考:パッチベースラインの作成
EC2インスタンスの場合 [Patch Group]というタグキーを指定することに
より、パッチ適用対象をグループ化して管理することができます
マネージドインスタンスにはタグを付与する事が出来ないため[Patch Group]
は利用出来ません。インスタンス単位で指定を行います
55
参考:パッチベースラインの作成
作成したベースラインはデフォルトにするか、適用先の [Patch Group]を
指定することで利用されます
56
手動パッチ適用(Windows)
[コマンドの実行]-[コマンドの実行]をクリックします。
57
手動パッチ適用(Windows)
[コマンドのドキュメント]で[AWS-ApplyPatchBaseline]を選択します。
58
手動パッチ適用(Windows)
[ターゲットの選択]-[インスタンスの手動選択]で作成したWindows インス
タンスを選択します。
59
手動パッチ適用(Windows)
同時実行数と停止するエラーインスタンス数を指定します。
今回はどちらも[1]にします。
60
手動パッチ適用(Windows)
[Option]で[Install]を選択します。(Scanのみにすることもできます。)
61
手動パッチ適用(Windows)
S3へのログ出力オプションもあります、今回はそのまま[Run]をクリックし
ます。
62
手動パッチ適用(Windows)
コマンドIDをクリックします。
63
手動パッチ適用(Windows)
ステータスが[進行中]となります。 パッチ適用後、再起動まで行われるので
時間がかかります。
64
手動パッチ適用(Linux)
[コマンドの実行]-[コマンドの実行]をクリックします。
65
手動パッチ適用(Linux)
[コマンドのドキュメント]で[AWS-RunPatchBaseline]を選択します。
66
手動パッチ適用( Linux )
[ターゲットの選択]-[インスタンスの手動選択]で作成したLinux インスタン
スを選択します。
67
手動パッチ適用( Linux )
同時実行数と停止するエラーインスタンス数を指定します。
今回はどちらも[3]にします。
68
手動パッチ適用( Linux )
[Option]で[Install]を選択します。(Scanのみにすることもできます。)
69
手動パッチ適用( Linux )
S3へのログ出力オプションもあります、今回はそのまま[Run]をクリックし
ます。
70
手動パッチ適用( Linux )
コマンドIDをクリックします。
71
手動パッチ適用( Linux )
ステータスが[進行中]となります。 パッチ適用後、再起動まで行われるので
時間がかかります。※失敗した場合は再度流してください
72
パッチコンプライアントの確認
パッチの適用状態は[パッチコンプライアンス]で確認することができます
73
定期パッチ適用設定
パッチの適用スケジュールはメンテナンスウィンドウを利用して指定します
[メンテナンスウィンドウの作成]をクリックします。
74
定期パッチ適用設定
メンテナンスウィンドウに任意の名前を設定します。
75
定期パッチ適用設定
メンテナンスウィンドウの開始周期を設定します。
期間:メンテナンス期間
他区区の開始を停止:終了時間のn時間前から新規タスクをスタートしなく
なります。
76
定期パッチ適用設定
期間の設定が終わったら[メンテナンスウィンドウの作成]をクリックします。
77
定期パッチ適用設定
作成したメンテナンスウィンドを選択し[Action]をクリックします。
78
定期パッチ適用設定
[ターゲットの登録]をクリックします。
79
定期パッチ適用設定
[インスタンスの手動選択]で作成したLinuxインスタンスを選択します。
80
定期パッチ適用設定
インスタンスを選択したら[ターゲットの登録]をクリックします。
81
定期パッチ適用設定
同様に[ターゲットの登録]からWindowsインスタンスを登録します。
WindowsとLinuxでは適用する[ドキュメント]が異なるため、ターゲットグ
ループを分割します。[ウィンドウのターゲット ID]を覚えておきます。
82
定期パッチ適用設定
メンテナンスウィンドウに対してタスクを登録します
83
定期パッチ適用設定(Windows)
ドキュメント[AWS-ApplyPatchBaseline]を選択します
84
定期パッチ適用設定(Windows)
Windowsインスタンスを登録した[ターゲットID]を選択します。
85
定期パッチ適用設定(Windows)
パラメータを設定します。
Option:Install
ロール: [メンテナンスウィンドウ]用に作成したIAMロール
実行:1
エラー:1
86
定期パッチ適用設定(Windows)
パラメータを設定したら[タスクの登録]をクリックします。
87
定期パッチ適用設定(Linux)
ドキュメント[AWS-RunPatchBaseline]を選択します
88
定期パッチ適用設定(Linux)
Linuxインスタンスを登録した[ターゲットID]を選択します。
89
定期パッチ適用設定(Linux)
パラメータを設定します。
Option:Install
ロール: [メンテナンスウィンドウ]用に作成したIAMロール
実行:3
エラー:3
90
定期パッチ適用設定(Linux)
パラメータを設定したら[タスクの登録]をクリックします。
91
定期パッチ適用設定
メンテナンスウィンドウにタスクが2つ登録されていれば完了です。
92
参考:定期パッチ適用設定
Scan: インスタンスをスキャンして欠落しているパッチを確認できるリス
トを生成します
Install: インスタンスをスキャンし、ベースラインの承認済みパッチのリス
トとインストールされたパッチのリストを照合します
Patch Manager は、欠落しているパッチを確認すると、すべての欠落して
いるパッチをダウンロードしてインストールします。パッチをインストール
すると、Systems Manager によってインスタンスが再起動されます
93
参考:定期パッチ適用設定
パッチ適用前にAMIを取得するような機能はありません。
試験環境と本番環境で猶予期間の異なるベースラインを適用するなど計画的な
パッチ適用を設定します。
パッチ適用前にバックアップ用のAMIが必要な場合などはCloud Automatorを
組み合わせた運用設計をお進めします。
94
まとめ
Windowsインスタンス,Linuxインスタンスの構成情報(インベントリ)収
集
Windowsインスタンス,Linuxインスタンスの定期パッチのハンズオンを行
いました。
Systems Managerを利用することで構成管理、パッチ管理を自動化してい
くことができます。
Systems Managerで運用自動化を進めましょう。
95
おしらせ
96
サーバーワークスは出展いたします!
出展場所と出展概要
97
サーバーワークスが取り組む「はたらきかた改革」を一挙公開!最適なツールのご紹介や人事制度など、ミニセミナーも多数実施いたします。ぜひ会場まで足をお運びください。