1. はじめに
こんにちは!株式会社Definerのライターチームです!
今回は、Systems ManagerでAmazon EC2メンテナンスを楽に実行する方法について気になりますよね。
実際の画面や、資源を見ながら詳しく解説していきましょう。
2. 目的・ユースケース
この記事では、「EC2のメンテナンスを楽にする」という目的に向けて、Systems Managerという技術を活用します。
ITの現場で、Systems ManagerでEC2のメンテナンスを楽に実行したいときに、参考になる情報やプラクティスをまとめています。
3. SSMのセットアップ
早速、AWS Systems Managerを使ってEC2にパッチを適用していきます。
まずは下準備からです。SSM経由でEC2を管理できるようにしていきます。
①EC2にSSM権限が付与されたIAMロールをアタッチする。
EC2のIAMロールに、「AmazonSSMManagedInstanceCore」というマネージドポリシーをアタッチします。
もしくは、以下のJSONを直接ポリシーを記載してもOKです。
②SSMコンソールにEC2が表示されていることを確認する。
表示されない場合は、EC2やSSM agentを再起動してみてください。
AWSのAmazon linux 2やUbuntuのイメージには、デフォルトでSSM agentが入っています。
また、EC2はインターネットに出られる必要があります。
グローバルIPを使用できない場合は、VPCエンドポイントかNat Gatewayの使用を検討しましょう。
SSMを使用可能にするポリシー例
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"ssm:DescribeAssociation",
"ssm:GetDeployablePatchSnapshotForInstance",
"ssm:GetDocument",
"ssm:DescribeDocument",
"ssm:GetManifest",
"ssm:GetParameter",
"ssm:GetParameters",
"ssm:ListAssociations",
"ssm:ListInstanceAssociations",
"ssm:PutInventory",
"ssm:PutComplianceItems",
"ssm:PutConfigurePackageResult",
"ssm:UpdateAssociationStatus",
"ssm:UpdateInstanceAssociationStatus",
"ssm:UpdateInstanceInformation"
],
"Resource": "*"
},
{
"Effect": "Allow",
"Action": [
"ssmmessages:CreateControlChannel",
"ssmmessages:CreateDataChannel",
"ssmmessages:OpenControlChannel",
"ssmmessages:OpenDataChannel"
],
"Resource": "*"
},
{
"Effect": "Allow",
"Action": [
"ec2messages:AcknowledgeMessage",
"ec2messages:DeleteMessage",
"ec2messages:FailMessage",
"ec2messages:GetEndpoint",
"ec2messages:GetMessages",
"ec2messages:SendReply"
],
"Resource": "*"
}
]
}
## SSM agent再起動コマンド
sudo systemctl restart amazon-ssm-agent
4. Systems Manger Maintenance Windowsの設定
それでは続いて、本命のMaintenance Windowsの設定を進めていきます。
①メンテナンスウィンドウの作成
「Systems Manager」→「メンテナンスウィンドウ」→「作成」
cronで日時をセットし、「作成」をクリックします。
②ターゲットEC2インスタンスの選択
メンテナンスウィンドウの「詳細」→「ターゲット」→「ターゲットの登録」
この画面で、パッチを適用するEC2を選択します。
③タスクの設定
メンテナンスウィンドウの「詳細」→「タスク」→「タスクの登録」
今回は「AWS-RunShellScript」を選択します。
実行したいコマンドを、インプットに入力します。
今回は、以下のコマンドを使用しました。
## 実行コマンド例
## ubuntu
sudo apt update -y
sudo apt upgrade -y
## Amazon Linux 2
sudo yum update -y
sudo yum upgrade -y
コマンドの実行結果を確認すると、無事にコマンドが実行されたことがわかります。
パッチ適用成功です!
パッチ適用成功です!
5. 引用・参考記事
6. 独自ソリューション「PrismScaler」について
PrismScalerは、開発・運用を要さずにたった3ステップで、AWSやAzure、GCPなどのマルチクラウド基盤構築を実現するWebサービスです。
エンジニアの大変な作業を肩代わり
・自動構築
・自動監視
・構成可視化
クラウド基盤に関わる作業を以上のように効率化します。
SRE/DevOpsエンジニアが行う大変な作業を肩代わりします。
高品質な汎用クラウド基盤の実現
・クラウド基盤構築/クラウド移行
・クラウドの保守運用・コスト最適化
など幅広い利用シーンを想定しています。IaaSやPaaSを適切に組み合わせた数百を超える高品質な汎用クラウド基盤を容易に実現できます。
興味を持たれた方には、無料で資料を提供しております。
お気軽にご相談ください。
7. お問合せ
株式会社Definerでは、
・ITの上流から下流まで一気通貫のワンストップソリューションをご提供。
・AIやクラウドのITインフラなど、先進的なIT技術のコンサルティングから要件定義 / 設計開発 / 実装、保守運用に至るまでの統合的な支援にコミット。
・少ないエンジニアで事業が成長する仕組みづくりの実現。
・エンジニアが喜ぶ、採用しやすい環境づくりの実現。
・高速なアジャイル開発環境の実現。
・自社プロダクトとしてPrismScalerを展開。
上記事業内容を進行しております。
※「開発者ブログ」では、エンジニアの入門編として有益な情報を無料公開しています。
ご相談やお問い合わせは「株式会社Definer」へ。
8. Definerに関して。
・ Definer Incは、ITの上流から下流まで一気通貫のワンストップソリューションをご提供しております。
・ AIやクラウドのITインフラなど、先進的なIT技術のコンサルティングから要件定義 / 設計開発 / 実装、保守運用に至るまでの統合的な支援にコミットしています。
・ DevOpsとCI/CDコンサルティングにより「少ないエンジニアで事業が成長する仕組みづくり」「エンジニアが喜ぶ、採用しやすい環境づくり」「高速なアジャイル開発環境」を実現しています。
・ また、自社プロダクトとしてPrismScalerを展開しております。PrismScalerは、AWS、Azure、GCPなどのマルチクラウド / ITインフラの高品質かつ迅速な、「自動構築」「自動監視」「問題検知」「構成可視化」を実現します。