EC2 Instance Connect Endpoint と Session Managerの違いをまとめてみた

EC2 Instance Connect Endpoint(以降EIC エンドポイント)とAWS Systems Manager Session Manager(以降セッションマネージャー)には、どのような違いがあるかまとめました
2023.06.14

はじめに

先日、EIC エンドポイントがリリースされました。

EIC エンドポイントを使用すると、パブリック IP アドレスを使用せずに プライベート サブネット内のEC2 インスタンスに SSH および RDP 接続できます。

ただし、セッションマネージャーと何が違うのか、どのように使い分けるとよいか分からなかったため、比較しまとめました。

EIC エンドポイントについては、以下を参考ください。

構築で必要な作業

EIC エンドポイントとセッションマネージャーで、構築作業のうち、共通の作業は除きます。

作業自体は、EIC エンドポイントの方が楽ですね。

EIC エンドポイント

  • EIC エンドポイント作成する

セッションマネージャー

  • EC2 インスタンス用のIAMロールを作成し、EC2 インスタンスにアタッチする
  • 以下のVPCエンドポイントを作成
    • ec2messages.region.amazonaws.com
    • ssm.region.amazonaws.com
    • ssmmessages.region.amazonaws.com

可用性

EIC エンドポイントは、AZ障害時は利用できなくなるため、セッションマネージャーに軍配が上がります。

EIC エンドポイント

1つのVPCに1つのEIC エンドポイントしか作成できないため、EICのエンドポイントがあるサブネットにAZ障害が起きると使えない

セッションマネージャー

複数のサブネットにVPCエンドポイントが作成できるため、1つのAZで障害が起きても使える

ログ出力

セッションマネージャーは、Amazon CloudWatch Logs、Amazon S3などの複数に操作ログを出力できます。

EIC エンドポイント

  • AWS CloudTrailのみです。

接続ログは出力できますが、操作ログは出力できません。

セッションマネージャー

  • AWS CloudTrail、Amazon CloudWatch Logs、Amazon S3にログを保存できます。

下記の記事の通り、操作ログも保存できます。

接続の制御

EIC エンドポイント

EIC エンドポイントへのアクセスは、IAMユーザー側で制限できます。

セキュリティグループにより、特定のCIDRにあるEIC エンドポイントのみを接続するなどの制限も可能です

セッションマネージャー

セッションマネージャーの利用には、IAMユーザーやEC2インスタンスにアタッチされたIAMロールによる制限が可能です。

セキュリティグループ

セッションマネージャーは、セキュリティグループのインバウンドルールの設定が不要なので、よりセキュアです。

EIC エンドポイント

接続するEC2インスタンスのセキュリティグループは、EIC エンドポイントからのインバウンドルールで、ポート22を開ける必要があります。

セッションマネージャー

接続するEC2インスタンスのセキュリティグループは、インバウンドルールは不要です。

料金

EIC エンドポイントの利用料金が無料なのは、驚きです

もちろん、データの転送料金はどちらもかかります。

EIC エンドポイント

EIC エンドポイントは、利用料金が無料です!

セッションマネージャー

  • インターフェース型VPCエンドポイントの利用料金
    • 0.014 USD/時間 * 3 (VPCエンドポイント数)
    • 月に30 USDほど。可用性を高めるため、2つのAZに作成する場合、おおよそ60 USDかかります。

制約

1つのVPCの複数のサブネットで、EIC エンドポイントが作成できず、残念です。

EIC エンドポイント

  • AWS アカウントごとに作成できるEIC エンドポイントは、5つまで
  • VPCごとに作成できるEIC エンドポイントは、1つ
    • 1つのサブネットにしか作成できないため、AZ障害時、接続できない可能性があります。

セッションマネージャー

  • VPCごとに作成できるインターフェイス型エンドポイントは、50。上限緩和可能

対応するAWSリソース

セッションマネージャーは、エージェントをインストールするとオンプレミスのサーバーでも利用できます

EIC エンドポイント

EC2 インスタンスのみ

セッションマネージャー

EC2 インスタンス、オンプレミスのサーバー

EC2 インスタンスに必要なエージェント

EIC エンドポイント

EC2 Instance Connect 利用するには、EC2 Instance Connect パッケージ(EICパッケージ)がEC2 インスタンスにインストールされている必要があります。

AWSが提供する以下のOSバージョンでは、EICパッケージがインストール済みの可能性が高いです

  • Amazon Linux 2 2.0.20190618 以降
  • Ubuntu 20.04以降

AWSが提供する以下のOSバージョンには、EICパッケージのインストールが必要です

  • Amazon Linux 2 2.0.20190618 以前
  • Ubuntu 16.04以降~20.04以前

インストール方法は、こちらを参照ください

セッションマネージャー

セッションマネージャーを利用するには、AWS Systems Manager エージェント (SSM Agent)がEC2 インスタンスにインストールされている必要があります。

AWSが提供する以下のOSバージョンには、SSM Agentがインストール済みの可能性が高いです

  • 2017 年 9 月以降の Amazon Linux Base AMI
  • Amazon Linux 2
  • Amazon Linux 2 ECS に最適化されたベース AMIs
  • Amazon Linux 2023 (AL2023)
  • Amazon EKS 最適化 Amazon Linux AMIs
  • macOS 10.14.x (Mojave)、10.15.x (Catalina)、11.x (Big Sur)
  • SUSE Linux Enterprise Server(SLES) 12 と 15
  • Ubuntu Server 16.04、18.04、および 20.04
  • 2016 年 11 月以降に公開された Windows Server 2008-2012 R2 AMIs
  • Windows Server 2016、2019、および 2022

インストールされていない場合、以下のドキュメントを参考にインストールしてください

最大セッション時間

EIC エンドポイント

最大1時間です

セッションマネージャー

最大24時間です

アイドルセッションタイムアウトは、最大60分までです。

アイドルセッションタイムアウトとは、セッションが終了するまでにユーザーが非アクティブでいられる時間のことです

最後に

色々な違いがあることがわかりました。

個人的には、可用性重視の場合は、セッションマネージャーを選択し、コスト重視であれば、EIC エンドポイントを選択するのがよいかと思いました。

ぜひ参考にしてみてください。