2016-03-23 17 views
1

2つのインスタンスを実行する弾性ロードバランサを使用しています。私は、この弾性スケーリンググループにアプリケーションを展開したかったのです。私は、コード化され、試していると聞いた。私はこれに関するいくつかの質問があります。新しいデプロイメントを作成すると、私はいつもGitHubに再接続しています。私はこれを解決することはできません。 2番目に私は展開しようとしていますが、私はこのエラーが発生しました "デプロイメントは続行できませんでした:Constraint 'default'は最低1ホストの健全なホストが続行する必要があります。 私は弾力的な負荷バランスをチェックし、私は2つの望ましいインスタンスと2つの最低限の健康的なインスタンスの構成を持っていることがわかりました。だから私は1にその最小健康的なインスタンスを変更しようとし、自動的に1つのインスタンスを終了します。私はどこでミスをしているのか分かりません。この問題を解決するために私を助けてください。AWSコードのデプロイデプロイメントに失敗しました

+0

私はこの問題を解決できませんでした、いくつかのスクリプトの問題かもしれません。だから、私はelastik beanstalkを試して、私は期待どおりに動作します。そして、設定が非常に簡単です – ponraj

答えて

0

最初の問題では、Githubリポジトリから展開しようとすると、導入を開始する前にGithubで認証プロセスを完了する必要があります。

2番目の問題では、展開グループにタグを追加して展開するインスタンスを指定します。デプロイメント中にCodeDeployがインスタンスを検出できるように、インスタンスにタグが正しく設定されていることを確認してください。私はあなたがCodeDeployDefault.OneAtATime (MinimumHealthyHosts:99%)を使用すると思います

+2

ここに投稿する前に両方をやったが動作しなかった:( – ponraj

+0

同じ問題に直面@ponraj – Maulik

0

100Instancesが実行されている、あなたは成功をすることができます。

は CodeDeployDefault.AllAtOnce(MinimumHealthyHosts:0%)の使用についてどのように または CodeDeployDefault.HalfAtATime(MinimumHealthyHosts:50%)

は私がAllAtOnceとHalfAtATimeの両方を成功しました。
※自動スケーリンググループを使用し、AZ1aで1インスタンス、AZ1cで1インスタンス。

0

このことは私にとっても頭痛になりました。これは私がそれを修正した方法です。 これは、codeDeployがデフォルトでポート80にインスタンスを置くことによってec2インスタンスの正常性をチェックするためです。デプロイする前に、インスタンス上でbashスクリプトを実行し、スクリプトが機能しているかどうかを確認する必要があります。 httpdサービスを開始する必要があります。インスタンスを再起動します。

#!/bin/bash 
    sudo su 
    yum update -y 
    yum install httpd -y 
    yum install ruby 
    yum install aws-cli 
    cd ~ 
    aws s3 cp s3://aws-codedeploy-us-east-1/latest/install . --region us-east-1 
    chmod +x ./install 
    ./install 
    echo 'hello world' > /var/www/html/index.html 
    hostname >> /var/www/html/index.html 
    chkconfig httpd on 
    service httpd start 
1

既存の健全なホストがあることを確認してください。そうでない場合、デプロイメントのコンフィグレーションタイプをAllAtOnceに一時的に変更します。これは、デプロイメント前に正常なホストを必要としないためです。導入が完了したら、元の設定に戻すことができます。

また、CodeDeployアプリケーション構成の自動スケーリンググループの対象が有効であることを確認してください。 Blue-GreenデプロイメントはAuto Scaling Groupをコピーして置き換えますので、Application Configurationが有効なソースAuto Scaling Groupを使用していることを確認してください。

関連する問題