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?

【AWS】踏み台サーバーとECS Execの特徴を比較してみる

Posted at

はじめに

アメリカ在住のTairaです。
昨日で実務が始まり1週間がたち色々学ぶことが多いと身に沁みて実感し、忘れないうちに記事に起こしておこうと思いました
実は、実務でDB操作する際に踏み台サーバーを使用したのですが、個人開発ではECS Execをつかって操作していたので、若干困惑しました。

なので、この記事では、踏み台サーバー と ECS Exec を 「本番DBを操作するための手段」 という観点に限定して比較します。
対象とするのは、次のようなケースです。

  • 障害調査時のデータ確認
  • DB の中身を直接確認する作業
  • 軽微な本番データ修正

アプリケーションのデプロイ方法や AWS 全体のネットワーク設計といった話題には踏み込みません。

あくまで 「DB操作をどこから行うか」 という点に絞って整理します。


踏み台サーバー(EC2 + Secrets Manager + SSO)

今回の踏み台サーバーは EC2 上に用意されており、 AWS の認証には SSO を利用します。

  • aws configure sso
  • aws sso login

を行った上で、DB 接続時に Secrets Manager から認証情報を取得します。

[Developer]
    |
    | AWS SSO
    v
[EC2 (Bastion)]
    |
    | IAM Role
    | + Secrets Manager
    v
[Database]

この構成のポイント

  • DB のユーザー名・パスワードは EC2 に保存しない
  • DB 認証情報は Secrets Manager が管理
  • EC2 は DB 操作を行うための踏み台としてのみ利用
  • アプリケーション実行環境には影響を与えない

踏み台サーバーは、 本番アプリケーションとは別の場所から DB に直接アクセスして操作するための仕組み として使われます。

DB 操作は基本的に SQL を用いた直接操作 が前提になります。


ECS Exec(DB操作の文脈)

ECS Exec は、 稼働中の ECS タスク(アプリケーションコンテナ)に入る仕組みです。

DB 操作の観点では、 アプリケーションと 同じ実行環境 で操作できる点が特徴です。

[Developer]
    |
    | AWS SSO / IAM
    v
[ECS Task (App Container)]
    |
    | IAM Role
    | + Secrets Manager
    v
[Database]

この構成のポイント

  • ECS Exec の実行権限は IAM(SSO ログイン前提)
  • DB 認証情報は Secrets Manager 管理
  • ORM を含め、アプリケーションと同じ環境で DB 操作が可能
  • 追加の EC2 は不要

ORM を使ったデータ確認や修正を 本番アプリケーションそのものの環境で行える のが ECS Exec の特徴です。


DB操作という観点での共通点

踏み台サーバー(EC2)と ECS Exec は、 DB 操作という点では次の共通点があります。

  • DB 認証情報は Secrets Manager で管理
  • AWS の認証は SSO / IAM
  • 本番 DB を直接操作する
  • 手動操作になりやすい

そのため、 Secrets 管理や AWS 認証の仕組み自体が大きな違いになるわけではありません。


DB操作のやり方としての違い

違いはシンプルで、 「DBをどこから操作するか」 に集約できます。

踏み台サーバー(EC2)

[EC2]
  ↓
 DB
  • アプリケーション実行環境とは別の場所から DB を操作
  • DB 操作がアプリケーションの実行に影響しにくい
  • SQL を使った直接操作が中心

ECS Exec

[App Container]
      ↓
     DB
  • アプリケーション実行環境に入って DB を操作
  • ORM を使った操作が可能
  • 操作内容によってはアプリケーションへの影響を考慮する必要がある

比較表(DB操作の観点のみ)

観点 踏み台サーバー(EC2) ECS Exec
AWS 認証 SSO / IAM SSO / IAM
Secrets 管理 Secrets Manager Secrets Manager
DB 操作場所 アプリとは別の EC2 アプリコンテナ
ORM 利用 ×(SQL操作)
アプリへの影響 起きにくい 起きる可能性あり
追加リソース EC2 が必要 不要

どう使い分けるか(DB操作視点)

  • アプリケーション実行環境に影響を与えず DB を操作したい
    → 踏み台サーバー(EC2)
  • アプリケーションと同じ環境で ORM を使って操作したい
    → ECS Exec

まとめ

  • 本記事は DB操作という観点に限定した比較である
  • 踏み台サーバーは
    アプリケーション実行環境に影響を与えず DB を直接操作する仕組み
  • ECS Exec は
    アプリケーション実行環境に入って DB を操作する仕組み
  • 違いは「DBをどこから操作するか」
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?