プログラミングマガジン

プログラミングを中心にIT技術をできるだけわかりやすくまとめます。

  • ホーム
  • AWS
  • 【AWS】「ECS」のデプロイ戦略
 
 
     
  • サーバー言語  
    • Python
    • Ruby
    • PHP
    • SQL
  •  
  • インフラ  
       
    • AWS
    •  
    • 基本
    • Git
  • Web
       
    • Web開発
    • JavaScript
    • Vue.js
    • React
  •  
  • 設計  
       
    • 実装設計
    • DB設計
  • 問い合わせ
  

【AWS】「ECS」のデプロイ戦略

12.05

  • miyabisan2
  • コメントを書く

この記事は2分で読めます

ECSのアプリケーションのデプロイ方法には複数種類あります。

万が一何らかの障害が発生した場合は、システムのロールバックを行う必要があり、その作業は即座に完了するものではない。

ローリングアップデート

ECSのデプロイ の基本戦略になります。タスクをデプロイしていく時に、古いバージョンのコンテナを生かしつつ新しいバージョンのコンテナをデプロイしていくので順番にシステムが更新されていく様を見てこのように呼びます。

メリット

  • シンプルなやり方
  • インフラへの変更がないため安定する。

デメリット

  • 新環境から旧環境への切り替えや切り戻し時にダウンタイムが発生します。
  • もしインフラの変更がある場合はめんどくさい。

Blue/Green Deployment

古いデプロイと新しいデプロイが同時に混在する環境を構築した後に、ロードバランサーでのルーティングの制御によってトラフィックを切り替えて、ダウンタイムなしで環境を切り替えます。

「古い環境:Blue」、「新しい環境:Green」とそれぞれ呼びます。

流れ

  1. ALBはBlue環境にトラフィックを流す。
  2. Green環境にCodeDeployでデプロイをする。
  3. ALBの向き先をGreenに変える。
  4. Blueはロールバックのために一定期間残しておく。(CodeDeployの設定)

メリット

  • 新環境から旧環境への切り替えや切り戻し時にダウンタイムが発生しない。(なので、受託開発でSLAを補償している場合はこちらの方がローリングアップデートより優れていると言えるでしょう。)
  • インフラ構築はWebコンソールだけで済む。(ローリングアップデートもそうですが。)

デメリット

  • 設定がめんどくさい。
  • 一時的にAWSリソースが2倍になる。

外部デプロイ

デプロイ の制御を外部のシステムに移譲します。戦略は多岐にわたるものですが、準備に対する時間とスキルが必要になります。

CloudFormationのDeploymentControllerのパラメータで 「type:EXTERNAL」 を指定する事で選択できます。

具体例

jenkins等のCI/CDツールなどを使ったりします。

メリット

柔軟なデプロイ戦略をとることができます。

デメリット

AWSやJenkinsなど様々なツールを使いこなす必要があるので、設計の時間や、非常にスキルが必要になります。

最後に

Blue/Greenアップデートが現在は主流のデプロイ手法と言えるでしょう。ECSだけでなくKubernetesを使う場合でも採用されます。

スポンサーリンク
  • 2021 12.05
  • miyabisan2
  • コメントを書く
  • AWS
  • Tweets Twitter
  • このエントリーをはてなブックマークに追加
  • LINEで送る

関連記事

  1. 2021 12.03

    【AWS】「ECS/Fargate構成」におけるメトリクス設計

  2. 2020 06.09

    【AWS】EC2の構築手順、SSH設定手順

  3. 2021 12.07

    【AWS】「ARN」について

  4. 2021 01.16

    【AWS】「ストレージ」(S3、EFS、Glacier、Storage Gatewayなど)

  5. 2020 06.15

    【AWS】WebサーバーにWordPressをインストールする。

  6. 2023 10.01

    CloudFrontのキャッシュ設定、キャッシュポリシー、オリジンリクエストポリシー

  • コメント ( 0 )
  • トラックバック ( 0 )
  1. この記事へのコメントはありません。

  1. この記事へのトラックバックはありません。

返信をキャンセルする。

【AWS】「グローバル」、「リージョン」と「AZ」につ…

【設計】「キューイング」とは?

RETURN TOP

著者プロフィール

エンジニア歴10年で過去に業務系、Webデザイン、インフラ系なども経験あります。現在はWeb系でフロントエンド開発中心です。

詳細なプロフィールはこちら

スポンサーリンク

カテゴリー

  • Android
  • AngularJS
  • API
  • AWS
  • C++
  • CSS
  • cursor
  • C言語
  • DDD
  • DevOps
  • Django
  • Docker
  • Figma
  • Git
  • GitLab
  • GraphQL
  • gRPC
  • Hasura
  • Java
  • JavaScript
  • Kubernetes
  • Laravel
  • linux
  • MySQL
  • Next.js
  • nginx
  • Node.js
  • NoSQL
  • Nuxt.js
  • Oracle
  • PHP
  • Python
  • React
  • Redux
  • Rspec
  • Ruby
  • Ruby on Rails
  • Sass
  • Spring Framework
  • SQL
  • TypeScript
  • Unity
  • Vue.js
  • Webサービス開発
  • Webデザイン
  • Web技術
  • インフラ
  • オブジェクト指向
  • システム開発
  • セキュリティ
  • その他
  • データベース
  • デザインパターン
  • テスト
  • ネットワーク
  • プログラミング全般
  • マイクロサービス
  • マイクロソフト系技術
  • マルチメディア
  • リファクタリング
  • 副業
  • 未分類
  • 業務知識
  • 生成AI
  • 設計
  • 関数型言語
RETURN TOP

Copyright ©  プログラミングマガジン | プライバシーポリシー