質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.34%

  • AWS(Amazon Web Services)

    2163questions

    Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

  • Auto Scaling

    4questions

    Auto Scalingは、AmazonEC2のインスタンスを自動で調整することで スケーリングを行うサービスです。

AutoScaling時のアプリのデプロイ方式について

受付中

回答 1

投稿

  • 評価
  • クリップ 0
  • VIEW 378

aoiro27

score 2

たとえばWebアプリのAPサーバをAutoScalingしようとした際、
新規で起動したサーバへのアプリのデプロイ方式はどんなものが推奨されるか、
あるいはそれぞれのやり方でメリット・デメリットあるようであれば比較を教えてください。

(例)
最新アプリをデプロイ済のゴールデンAMIを作成し、それを元にAutoScalingする
メリット:スケール速度が速い
デメリット:アプリ更新時にAMIの作成し直しが必要となる

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 1

0

AWS Auto Scaling を使う場合は、AMIを指定する必要があります。
EC2インスタンスがしきい値を超えた場合、指定したAMIからEC2インスタンスを作成し起動します。
そして不要になったらEC2を棄却する動きをするため、Auto Scaling環境下では、ログが途切れたりします。

そのため基本的には、以下のような連携方法にしないといけません。

デプロイツールをトリガーにして、EC2インスタンスにアプリをDeployし、
そのEC2インスタンスをAMIにして、AutoScalingさせる方法です。

これを自動的に行なってくれるAWSサービスが、 AWS CodeDeploy です。
CodeDeployは、EC2インスタンスはもちろんAutoScalingにも対応しているで、
今はCodeDeployを使ってデプロイする方法が一般的ですね。

メリデメ云々というよりかは、AutoScaling配下でCodeDeployを使わない場合は、
色々面倒になるのでオススメしません。

■FYI
デプロイ自動化(CodeDeploy + CodePipeline + CodeCommit)


 追記

少し整理しますと

既にAutoScalingグループがある場合に単純にサーバ台数を追加するのであれば、
個数を増やせば良いだけです。
そうではなく、新規のAutoScalingグループを作成したいということであってますよね?

AWS CodeDeployは、スケール機能を持っていません。デプロイからAMI作成して配置する仕組みです。
つまりWEBアプリケーションを利用可能な状態にするデプロイです。

AWS AutoScalingは、CPU使用率が90%とかになった時に、インスタンス数を自動的に増減する仕組みです。
つまりシステムの規模を柔軟に変更するスケールです。

ソースコードをビルドしてデプロイしてAutoScaleにAMIを配置して
AutoScalingの機能でスケールさせるのは、スケールではなくデプロイになります。

ゴールデンAMIを使った場合も、CodeDeployを使った場合も
AutoScaling自体が起動AMIから起動するため、
その前段であるデプロイ(AMIの配置)までは同一の工順を辿ります。

  • ゴールデンAMI作成用のEC2インスタンス内でビルド
    →アプリ配置
    →ゴールデンAMIを作成
    →AutoSacalingのAMIを変更
    →AutoScalingに配置
    →AutoScalingでスケールされる
     
  • CodeDeployでAMIを作成
    (ビルド→アプリ配置→ゴールデンAMIを作成→AutoSacalingのAMIを変更をCodeDeployが実行)
    →AutoScalingに配置
    →AutoScalingでスケールされる

その後、AutoScalingの機能によりAutoSaclingグループのEC2がスケーリングされます。

デプロイ時間は、デプロイ工程が違うために時間差は出るかもしれませんが、
スケール時間は、AWS AutoScaling が行うので全く一緒です。

例えばGitから落としてきたソースをビルドしてAMIを配置しAutoScalingまで行うことを
スケール(総デプロイ時間)と称されているのであれば

スケール速度(デプロイ時間)は、環境や作成方法によりデプロイ時間が増減しますので
実際に自分で作って測ったほうが早いと思います。

また、AutoScalingのデプロイは、基本的には「blue green deploy」が一般的です。

前段のビルド工程は、メンテナンス前にやっておくべきことですので、
速度や時間を気にすることではないように感じます。

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/06/23 12:01

    CodeDeployを使うデプロイ方式だと、
    デプロイ済みののゴールデンAMIを使う場合と比べて、
    スケール速度が落ちるというデメリットはありませんか?

    キャンセル

  • 2018/06/25 16:01 編集

    長くなったので、上に追記しました。
    意図が違っていたのであれば、ここに書いてもらえますか。

    キャンセル

同じタグがついた質問を見る

  • AWS(Amazon Web Services)

    2163questions

    Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

  • Auto Scaling

    4questions

    Auto Scalingは、AmazonEC2のインスタンスを自動で調整することで スケーリングを行うサービスです。