2017-07-18 15 views
1

ロードバランサ、DBサーバー、および自動拡張グループ内のいくつかのWebサーバーからなる継承されたawsインフラストラクチャを操作します。 CloudFormationによって調整された展開。自動スケールグループでec2インスタンスのルートボリュームサイズを指定する方法

問題は、スパンWebサーバーには弱いルートボリューム(8GB)があり、ウェブサーバーの寿命中にディスクにログと一時ファイルがいっぱいになり、一部のサービスが機能しなくなることがあります。

... 
"Properties": { 
      "ImageId": { 
       "Fn::FindInMap": [ 
        "AWSRegionArch2AMI", 
        { 
         "Ref": "AWS::Region" 
        }, 
        { 
         "Fn::FindInMap": [ 
          "AWSInstanceType2Arch", 
          { 
           "Ref": "InstanceType" 
          }, 
          "Arch" 
         ] 
        } 
       ] 
      }, 
      "InstanceType": { 
       "Ref": "InstanceType" 
      }, 
      "SecurityGroups": [ 
       { 
        "Ref": "WebServerSecurityGroup" 
       } 
      ], 
      "KeyName": { 
       "Ref": "KeyName" 
      }, 
      "UserData": { 
       "Fn::Base64": { 
        "Fn::Join": [ 
... 

インスタンス・タイプがultimatetlyどこか別の場所に定義されています:

私はマシン定義が宣言されている部分(と思う)が見つかり

"InstanceType": { 
    "Description": "WebServer EC2 instance type", 
    "Type": "String", 
    "Default": "c4.xlarge", 
    "AllowedValues": [ 
    "t1.micro", 
    "t2.nano", 
    # ... more allowed values 
    "cg1.4xlarge" 
    ], 
    "ConstraintDescription": "must be a valid EC2 instance type." 
}, 

をしかし、私はどのように宣言するか見当もつかないルートのボリュームの大きさ、またはそれが可能であるかどうか。私はどこにebsのボリュームが宣言されているのかわかりません。

これは、Linuxマシンで、ルートデバイスがあるの/ dev/xvda1

[[email protected] /]$ df -h 
Filesystem  Size Used Avail Use% Mounted on 
/dev/xvda1  7.8G 1.6G 6.2G 21%/
devtmpfs  3.7G 60K 3.7G 1% /dev 
tmpfs   3.7G  0 3.7G 0% /dev/shm 

は、右の "UserDataの" の前に、これを中に入れてみました:

"BlockDeviceMappings" : [ 
    { 
     "DeviceName" : "/dev/xvda1", 
      "Ebs" : { 
      "VolumeSize" : "20" 
      } 
    } 
], 

しかし、私が見ることができる場合でも、それに応じてマシンの起動設定が更新されます(以下のスクリーンショットに示されています)。CloudFormationはそれを実行した後に新しいマシンを起動させることはありません。ここで

screenshot showing disk size of 20gb in AWS console

+0

私はあなたがここに期待している行動には特に明確ではありませんよ?私は、プロパティセクションがオートスケーリンググループの起動設定の一部として宣言されていると仮定しています。 CloudFormationが、ASGのすべてのマシンを新しい20GBブロックデバイスの起動設定でマシンに置き換えることを期待していますか? – gjtempleton

+0

@gjtempleton紡績機械が現在持っている8GBより大きいルートボリュームが必要です。上記の設定は、ブロックデバイスが適切なサイズであると報告されているため、明らかに* something *を行います。今はマシンが起動しません。 BlockDeviceMappingブロックを削除すると、正常に戻り、マシンが正常に起動します。たぶん私は私の質問をより明確にするために働くべきです.../ – yivi

答えて

-1

good exampleです:最初のあなたは、AWSを作成する必要があります:: EC2 ::ボリューム(関係なく、テンプレート内のオーダーの)その後、AWS :: EC2 ::インスタンスは、そのインスタンスにボリュームをマッピングします示されるように。

安全面に置くだけで、 "DependsOn": "NewVolume",をインスタンステンプレート(同じレベルの「タイプ」の次の行)に追加します。この方法では、ボリュームは準備が整うまでインスタンスが作成されず、何らかの理由でボリューム作成が失敗した場合には失敗します。

代替のdoc(「オールインワン」のhereある)

+0

私はこれに従いません。このマシンのボリュームは、マシンによって動的に作成/破壊されます。元の8GBより大きい新しいボリュームでマシンをインスタンス化する必要があります。 – yivi

+0

@yiviあなたは「CloudFormationによって配備されました」と言っていましたので、CloudFormationの方法を提供しました。オートスケーリンググループ内にある場合は、「マシン」ではなく、CFに基づくLaunch Configurationに従ってASGルールで作成する必要があります。だから何が問題なの?彼らはどのように作成されますか? API? CLI? – Putnik

関連する問題