0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

EC2をSessionManagerで接続してみた

Posted at

はじめに

こんにちは、小林です。
今回はEC2を構築し、マネージドインスタンス設定をしましたので記事としてまとめます。

Cloudformaitonを使っての構築方法をまとめたので、参考にする際には下記のYamlテンプレートを使ってみてください。

前提条件

EC2でSessionManagerを使用して接続する際に必要な条件を下記に記します。

・EC2インスタンスプロファイルにSystemsManagerへ接続するための権限があること。
・インスタンスにssm-agentがインストールされていて起動していること。
・OSがLinux、Windows、macのいずれかであること。
・EC2からSystemsManagerへの通信経路が確立されていること(ルートテーブル、インターネットゲートウェイ、エンドポイントなど)

SessionManagerの構成

ssmAgent.drawio.png
上図が今回構築するシステムの構成になります。
前提としてVPC、サブネット、セキュリティグループ、ルートテーブルは構築済みとします。

Yamlテンプレート

下記が今回構築に使用したYamlテンプレートになります。
必要に応じて設定値を書き換えれば使いまわせます。
注意:記載のない設定項目はすべてデフォルト値になります。

qiita.rb
AWSTemplateFormatVersion: '2010-09-09'
Resources:
  MyEC2Instance:
    Type: 'AWS::EC2::Instance'
    Properties:
      InstanceType: '{対象のインスタンスタイプ}'
      ImageId: '{対象のImageid}' 
      KeyName: '{keypair名}' 
      IamInstanceProfile: !Ref InstanceProfile
      SubnetId: サブネットID
      UserData:
        Fn::Base64: !Sub |
          #!/bin/bash
          yum update -y
          yum install -y amazon-ssm-agent  #ssm-agentをインストール
          systemctl enable amazon-ssm-agent #ssm-agent有効か
          systemctl start amazon-ssm-agent #ssm-agent起動


#下記はEC2にアタッチするIAMロールの設定
  InstanceProfile:
    Type: 'AWS::IAM::InstanceProfile'
    Properties:
      Roles:
        - !Ref SSMRole

  SSMRole:
    Type: 'AWS::IAM::Role'
    Properties:
      AssumeRolePolicyDocument:
        Version: '2012-10-17'
        Statement:
          - Effect: 'Allow'
            Principal:
              Service: 'ec2.amazonaws.com'
            Action: 'sts:AssumeRole'
      Path: '/'
      Policies:
        - PolicyName: 'SSMPolicy'
          PolicyDocument:
            Version: '2012-10-17'
            Statement:
              - Effect: 'Allow'
                Action:
                  - 'ssm:*'
                  - 'ec2messages:*'
                  - 'cloudwatch:*'
                Resource: '*'

  SSMInstanceProfile:
   Type: 'AWS::IAM::InstanceProfile'
   Properties:
     Path: '/'
     Roles: 
       - !Ref 'SSMRole'

#下記がキーペアの記載
  EC2KeyPair:
   Type: AWS::EC2::KeyPair 
   Properties:
    KeyName: '{KeyPai名}'

確認

Cloudformation_02.JPG
対象のインスタンスから、セッションマネージャーで接続出来たら設定完了になります。
以上の設定でSystemsManagerの機能を使用してEC2のノード管理が可能になります。SystemsManagerには多様な機能があるため、いろいろ試してみて理解を深めようと思います。

おわりに

以上がEC2でSessionManager接続するために必要な設定になります。
今回は使用しませんでしたが、YamlテンプレートのOutputセクションを記載すると、他のテンプレートから設定値を参照できるようになるので次回から活用していきたいです。

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?