du よりいい感じの結果を PowerShell で [cloudpack OSAKA blog]
ナスです。
昨年の夏に、Windows の du についての記事を書きました。(なぜか今まで書いた記事の中で一番アクセスが多いです。意外。)
PowerShell でちょっとしたスクリプトを書いてるパターンと、sysinternals のツールを使うパターンの 2 種類だと思ってましたが、日経 NETWORK 2017.01 号の p15 にワンライナーで du 相当のコマンドが紹介されていたので、実際にやってみました。しかも指定したサイズ以上のファイルをファイルサイズ順に並べ替えて表示できるのでいいですね。
AWS に、Windows Server 2016 を起動して、特に何も設定せずに試しています。
PS C:\Users\Administrator> $PSVersionTable.PSVersion Major Minor Build Revision ----- ----- ----- -------- 5 1 14393 576
C:\User 配下にテスト用のでかいファイルを作って、dir をかけた結果です。
Where-Object で 500 バイト以上のファイルだけを表示させてみました。
PS C:\Users\Administrator> Get-ChildItem -Path C:\Users -Recurse | Where-Object Length -ge 500 | Select-Object FullName, Length | Sort-Object Length -Descending FullName Length -------- ------ C:\Users\Administrator\testfile 10737418240 C:\Users\Administrator\Links\Downloads.lnk 978 C:\Users\Administrator\Desktop\EC2 Microsoft Windows Guide.website 554 C:\Users\Administrator\Desktop\EC2 Feedback.website 527 C:\Users\Administrator\Links\Desktop.lnk 525
これだけできれば、この記事の最初に紹介した du ツールはいらないですね。時々、フリーのツールをインストールすることが禁止されている環境がありますが、PowerShell ならさすがにつかってもいいと思いますので、いろいろ試してみてください。
Auto Scaling で EC2 インスタンスをメンテナンスする時の注意点2 [cloudpack OSAKA blog]
ナスです。
先日、こんな記事を書きました。
結論から書くと、私が間違ってました。AWSのバグとか疑ってごめんなさい…
で、結局なんだったの?
Auto Scaling の設定の中に、スケーリングポリシーというものがあります。これは、例えば Auto Scaling グループ内の EC2 インスタンスの CPU 負荷が xx% 超えたら EC2 インスタンスを追加するとか、逆に xx% 以下になったら EC2 インスタンスを削除するとかするものです。負荷によって、動的に EC2 インスタンスの数を増減できるのが特徴です。
こんなのです。
で、私、このポリシーの動きを理解していませんでした。
スケーリングポリシーを設定していると、
- 最小値を -1 する
- スケーリングポリシーに設定した CloudWatch アラームを見て条件に合致している、と判断する
- 希望値が -1 される
- EC2 インスタンスが 1 台削除される
ということが起こっていました。しかも最小値を変更した瞬間に。1 を実施した後にアクティビティ履歴をみると、こうなってました。
こういう状況でもデタッチしたい時はある!
メンテナンスせざるを得ない時もあると思いますので、下記のように対処すれば大丈夫です。
最小値を減らす時に、「停止したプロセス」に AlarmNotification を追加します。これで、最小値を減らしても、CloudWatch からのアラームを受け取ることをやめます。
上の画像でも、実際に希望値は最小値と同じになっていません。これで安心してデタッチなりスタンバイ設定なりできますね。