LoginSignup
2
2

More than 3 years have passed since last update.

AWS Session Managerを用いたsshレスオペレーションを、ユーザーデータでのブートストラッピングで実現する

Last updated at Posted at 2019-08-04

image.png

はじめに

こんにちわ。Wano株式会社エンジニアのnariと申します。
突然ですが、どんなec2インスタンスでもsshレスにオペレーションしたい。。
今回は、 オペレーションサーバーの場合と、ec2コンテナインスタンスの場合でのユーザーデータの設定を備忘録として記録しておきます。

前提知識

SSM エージェント は、デフォルトでは、2017 年 9 月以降の Amazon Linux 基本 AMI にインストールされます。SSM エージェント は、デフォルトで、Amazon Linux 2 AMI にもインストールされます。

Amazon ECS 対応の AMI のようにベースイメージではないその他のバージョンの Linux では、手動で SSM エージェント をインストールする必要があります。
(Amazon EC2 Linux インスタンスに SSM エージェント を手動でインストールする - AWS Systems Managerより抜粋)

オペレーションサーバーの場合

  • AMIをAmazon Linux 基本 AMIかAmazon Linux 2 AMIにすれば、ssmエージェントをインストールを記述する必要はない(前提より)
  • よって、ユーザーデータでは、dockerをinstallし、起動することでECSで使用しているimageなどを動かし検証できるようにするだけでok

ユーザーデータの設定

user_data.sh
#!/bin/sh
amazon-linux-extras install -y docker
systemctl start docker
systemctl enable docker

ecsコンテナインスタンスの場合

  • Amazon ECS 対応の AMIはssmエージェントをインストールする記述を書く必要がある(前提より)

ユーザーデータの設定

user_data.sh
#!/bin/bash

echo "ECS_CLUSTER=${cluster_name}" > /etc/ecs/ecs.config

//以下の記述で、ssmエージェントをインストールする
# Get the current region from the instance metadata
region=$(curl -s http://169.254.169.254/latest/dynamic/instance-identity/document | jq -r .region)

# Install the SSM agent RPM
yum install -y https://amazon-ssm-$region.s3.amazonaws.com/latest/linux_amd64/amazon-ssm-agent.rpm
2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2