1
0

Amazon ECSについて勉強してみた

Posted at

前提

  • SAA-C03合格済み!
  • 合格までの道のりはこちらを参照してみてください
  • 普段の業務ではLambdaを使ってサーバーレスアプリケーションを開発
  • SAA合格はしたけど、知識定着のために定期的に記事を書くことにしました
  • ECSについて勉強したのでまとめてみる

ECSとは

  • AWSが提供するコンテナオーケストレーションサービス
  • コンテナを管理する
  • コンテナ化されたアプリケーションを簡単にデプロイ、管理、スケールするのに役立つ

そもそもコンテナとは?

  • 業務ではサーバーレスアプリケーションを開発しているので、コンテナに馴染みがない...
  • まずはそこから調べてみる

コンテナとは

  • アプリケーションを実行するための環境をパッケージにしたものです
    • アプリケーションを実行するための設定ファイル
    • ライブラリ
    • ランタイム
  • などをパッケージとしてひとまとめにしているもの

コンテナの特徴・メリット

①環境の一貫性

  • 「どの環境でも同じように動く」
  • アプリケーションに必要なものがパッケージにまとまっているので、「開発環境で実現できた→同じパッケージを使って本番環境も動かせる!」ということが可能

②負荷分散

  • 複数のコンテナを追加することで、アプリケーションを拡張できる
  • アクセスが増加して負荷がかかった時、コンテナを追加するとその分パフォーマンスを担保できる

③開発効率が上がる

  • コンテナ化することで、特定の環境へのデプロイを素早く行うことができる

再確認すると、ECSとはAWSが提供しているコンテナを構築・管理するためのサービス
複数のコンテナがあるということはその分、管理対象のコンテナが増えるということ。それを管理してくれるのが「ECS」

ECSの関連機能

スクリーンショット 2024-08-28 10.29.55.png

クラスター

  • サービスとタスクを実行する基盤
  • 利用するインフラを決める(EC2,Fargate,オンプレミスサーバー)

サービス

  • クラスター内で実行されているタスクを管理する
  • タスクの実行数や起動タイプ(EC2,Fargate)を決める

タスク

  • 起動するコンテナの集まり
  • アプリケーションを実行する単位
  • タスク定義に基づいて起動する

タスク定義

  • タスクを構成するコンテナの定義・テンプレート
  • アプリケーションを実行する1つ以上のコンテナを定義している
  • JSON形式で定義される
設定項目 内容
ファミリー名 タスク定義の名前
コンテナ定義 起動するコンテナに関する定義
起動タイプ Fargate、EC2、オンプレミスなどの外部
タスクサイズ タスクが使用するCPU、メモリサイズを指定
ネットワークモード default、bridge、Host、awsvpc、None
タスク実行ロール タスクを起動する際に必要となる権限を設定したロール
タスクロール アプリケーションから実行するのに必要な権限を設定したロール
  • 詳細なタスク定義項目はこちらを確認してください

FargateとECS on EC2

  • ECS起動タイプでは、タスクを実行できる容量を定義します
  • FargateとEC2、外部サービスを指定できます

Fargate

  • サーバーレス
  • サーバーの管理をする必要がなく、アプリケーションの構築に集中できる
  • 容量のスケールアウトもやってくれるため、トラフィックの急増を心配する必要がない
  • 運用が楽で大規模なワークロード、時折バーストが発生する小さなワークロード、バッチワークロードなどに向いている

EC2

  • EC2インスタンスを使用してコンテナを実行する
  • インスタンスを管理する必要がある
  • アプリケーションのニーズに合わせて、CPUやメモリ設定を自由に設定できる
  • 高度なカスタマイズが必要なワークロード、長期間の利用が前提で料金を最適化する必要がある大規模なワークロードに向いている

外部

  • ECSでコンテナ化したアプリケーションを、オンプレミスサーバー、仮想マシンで実行するために使用される

参考にした記事

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