スキップしてコンテンツを表示

AWS Systems Manager Automation を使用して Amazon EKS ワーカーノード AMI を更新し、セキュリティパッチを適用する方法を教えてください。

所要時間2分
0

AWS Systems Manager Automation を使用して Amazon Elastic Kubernetes Service (Amazon EKS) ワーカーノード Amazon マシンイメージ (AMI) にセキュリティパッチを適用したいと考えています。

解決策

AWS Systems Manager Automation ランブックを使用して Amazon EKS ワーカーノードにセキュリティパッチを適用します。ランブックを使用して新しいバージョンを適用し、マネージドノードグループやセルフマネージドノードのセキュリティパッチ適用とバージョンアップグレードを自動化します。

マネージドノードグループに対して AWS Systems Manager Automation を使用する

AWS-UpdateEKSManagedNodeGroup ランブックを実行するには、次の手順を実行してください。

  1. AWS マネジメントコンソールを開きます。
  2. Amazon EKS クラスターが配置されている AWS リージョンを選択します。
  3. AWS Systems Manager コンソールを開きます。
  4. ナビゲーションペインで、[オートメーション] を選択します。
  5. [ランブックを実行] を選択します。
  6. [オートメーションランブック] の検索フィールドに AWS-UpdateEKSManagedNodeGroup と入力し、[AWS-UpdateEKSManagedNodeGroup] ランブックを選択します。
    注: 新しいブラウザウィンドウでランブックの詳細タブが開きます。
  7. [オートメーションの実行] を選択します。
    注: 新しいブラウザウィンドウで [オートメーションランブックを実行する] タブが開きます。
  8. [入力パラメータ] に、次のパラメータを入力します。
    ClusterName にはノードグループを含む Amazon EKS クラスターの名前を入力します。
    NodeGroupName には、更新するノードグループの名前を入力します。
    UpdateType は、[ノードグループバージョンを更新] を選択します。
    ForceUpdate については、ポッド中断の予算に関する問題により既存のノードグループのポッドをドレインできない場合、[True] を選択します。それ以外の場合は、[False] を選択します。
    (オプション) AutomationAssumeRole には、Systems Manager Automation がユーザーに代わってアクションを実行するための AWS Identity and Access Management (IAM) ロール Amazon リソースネーム (ARN) を入力します。ロールが指定されていない場合、Systems Manager Automation はランブックを開始するユーザーのアクセス許可を使用します。
  9. 起動テンプレートからノードグループを作成しなかった場合は、次のパラメータを指定します。
    (オプション) KubernetesVersion には、ノードグループの更新先の Kubernetes バージョンを入力します。例えば、1.30 と入力します。
    (オプション) AMIReleaseVersion には、使用したい Amazon EKS 最適化 AMI のバージョンを入力します。例えば、1.30.2-20240828 と入力します。システムはデフォルトで最新バージョンを使用します。
  10. 起動テンプレートからノードグループを作成した場合は、次のパラメータを指定できます。
    (オプション) LaunchTemplateId には起動テンプレートの ID を入力します。
    (オプション) LaunchTemplateName には起動テンプレートの名前を入力します。
  11. [実行] を選択します。

セルフマネージドノードグループに対して AWS Systems Manager Automation を使用する

重要: クラスターが Auto Scaling を使用している場合は、ランブックを実行する前に、cluster-autoscaler デプロイを 2 つのレプリカにスケールダウンする必要があります。cluster-autoscaler デプロイをスケールダウンするには、次のコマンドを実行します。

kubectl scale deployments/cluster-autoscaler --replicas=2 -n kube-system

AWS-UpdateEKSSelfManagedLinuxNodeGroups ランブックを実行するには、以下の手順を実行してください。

  1. AWS マネジメントコンソールを開きます。
  2. Amazon EKS クラスターが配置されている AWS リージョンを選択します。
  3. AWS Systems Manager コンソールを開きます。
  4. ナビゲーションペインで、[オートメーション] を選択します。
  5. [ランブックを実行] を選択します。
  6. [オートメーションランブック] の検索フィールドに AWS-UpdateEKSSelfManagedLinuxNodeGroups と入力し、[AWS-UpdateEKSSelfManagedLinuxNodeGroups] ランブックを選択します。
    注: 新しいブラウザウィンドウでランブックの詳細タブが開きます。
  7. [オートメーションの実行] を選択します。
    注: 新しいブラウザウィンドウで [オートメーションランブックを実行する] タブが開きます。
  8. [入力パラメータ] に、次のパラメータを入力します。
    (オプション) AutomationAssumeRole には、Systems Manager Automation がユーザーに代わってアクションを実行するための IAM ロール ARN を入力します。ロールが指定されていない場合、Systems Manager Automation はランブックを開始するユーザーのアクセス許可を使用します。
    StackName には、セルフマネージドノード用の AWS CloudFormation スタック名を入力します。
    NodeAutoScalingGroupDesiredCapacity には、ノードグループが維持するノード数を入力します。
    NodeAutoScalingGroupMaxSize には、ノードの Auto Scaling グループの最大ノード数を入力します。
    NodeInstanceType には、ノードグループで使用するインスタンスタイプを入力します。
    NodeImageIdSSMParam には、ノードグループ AMI の Parameter Store パスを入力します。
    (オプション) NodeImageId にノードグループの AMI ID を入力すると、NodeImageIdSSMParam で指定された値がすべて上書きされます。
    DisableIMDSv1 では、IMDSv1 をオフにするかどうかを選択します。
    WaitForStackUpdateProgress には、スタックのステータスを評価する前に、起動テンプレートのスタック更新やローリングアップデートが開始されるための時間を確保するためにオートメーションが待機する時間を秒単位で入力します。
  9. [実行] を選択します。
  10. 更新が完了した後、cluster-autoscaler デプロイを必要なレプリカ数にスケールバックするには、次のコマンドを実行します。
kubectl scale deployments/cluster-autoscaler --replicas=number -n kube-system

注: number は、使用するレプリカ数に置き換えてください。

関連情報

クラスターのためにマネージドノードグループを更新する

クラスターのためにセルフマネージドノードを更新する

独自のランブックの作成

AWS公式更新しました 4ヶ月前