sorta kinda...

主にAWS関連ですが、これに限らずいろいろ勉強したことや思ったことを書いていきます。

du よりいい感じの結果を PowerShell で [cloudpack OSAKA blog]

ナスです。

昨年の夏に、Windows の du についての記事を書きました。(なぜか今まで書いた記事の中で一番アクセスが多いです。意外。)

nasrinjp1.hatenablog.com

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 をかけた結果です。 f:id:nasrinjp1:20170115231254p:plain

Where-Object で 500 バイト以上のファイルだけを表示させてみました。

f:id:nasrinjp1:20170115231303p:plain

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]

ナスです。

先日、こんな記事を書きました。

nasrinjp1.hatenablog.com

結論から書くと、私が間違ってました。AWSのバグとか疑ってごめんなさい…

 

で、結局なんだったの?

Auto Scaling の設定の中に、スケーリングポリシーというものがあります。これは、例えば Auto Scaling グループ内の EC2 インスタンスの CPU 負荷が xx% 超えたら EC2 インスタンスを追加するとか、逆に xx% 以下になったら EC2 インスタンスを削除するとかするものです。負荷によって、動的に EC2 インスタンスの数を増減できるのが特徴です。

こんなのです。
f:id:nasrinjp1:20170112233303p:plain

で、私、このポリシーの動きを理解していませんでした。

スケーリングポリシーを設定していると、

  1. 最小値を -1 する
  2. スケーリングポリシーに設定した CloudWatch アラームを見て条件に合致している、と判断する
  3. 希望値が -1 される
  4. EC2 インスタンスが 1 台削除される

ということが起こっていました。しかも最小値を変更した瞬間に。1 を実施した後にアクティビティ履歴をみると、こうなってました。
f:id:nasrinjp1:20170112233354p:plain

 

こういう状況でもデタッチしたい時はある!

メンテナンスせざるを得ない時もあると思いますので、下記のように対処すれば大丈夫です。

最小値を減らす時に、「停止したプロセス」に AlarmNotification を追加します。これで、最小値を減らしても、CloudWatch からのアラームを受け取ることをやめます。
f:id:nasrinjp1:20170112233459p:plain

上の画像でも、実際に希望値は最小値と同じになっていません。これで安心してデタッチなりスタンバイ設定なりできますね。