dullwhaleのメモ帳

何度も同じことを調べなくてよいように...

2022-03-01から1ヶ月間の記事一覧

Rustでenumと文字列の相互変換

Rustで文字列の定数を定義したくなることがある。 文字列定数の実現方法にはいくつかあるがmatch構文の恩恵を受けられるenumを使うと良い場合がある。 ところがRustのenumはC言語のそれに近く、enum variantの値として整数リテラルを設定することはできるが…

ランダムなbyte列を指定byte数だけbase64エンコードして得る

AES256の暗号鍵やシークレットソルトなど、ランダムなbyte列をシェルでサクッと欲しい時がある。 head -c NUMで指定バイト分だけ取れるから、base64にパイプで流せば良い。 次のコマンドはランダムな32 byteを base64エンコードして出力する。 head -c 32 /d…

IAMキーの一覧をAWS CLIで出す

不要なIAMユーザを調べるために、そのIAMユーザのキーが最後に使用された日時と共に一覧を取得したいことがある。 このワンライナーはIAMユーザ名、IAMキーのID、最終使用日時を一覧出力する。 キーを逐次的に調べているので完了するまで時間がかかる。 大量…

Dockerコンテナ上のDebianでSQLite3をビルドしたときのメモ

SQLite3の新しめの仕様を使いたかったから、自分でビルドする必要があった。 FROM debian:buster RUN apt-get update && \ apt-get install -y git gcc make tcl && \ git clone --depth=1 -b version-3.38.1 https://github.com/sqlite/sqlite.git && \ cd …

AWS CLIでAWS Configに非準拠のリソースを全リージョンに渡って列挙する

全リージョンをチェックするから、応答が返ってくるまでしばらく時間がかかる。 落ち着いて待て。 1件も行が表示されなかったら、全てのリソースが準拠状態にある。 while read REGION; do aws configservice describe-compliance-by-config-rule --region $…

Terraformで「Error: Invalid legacy provider address」と怒られたら

terrafromで以下のようなエラーメッセージが表示されることがある。 │ Error: Invalid legacy provider address │ │ This configuration or its associated state refers to the unqualified provider "aws". │ │ You must complete the Terraform 0.13 upgr…

RDSで保留中の変更をすぐに反映する

terrafromなどでRDSインスタンスを変更すると次のメンテナンスウィンドウで反映されるよう予約されるだけで、即座に反映されないことがある。 この状態でAWSコンソールから確認すると「保留中の変更」に表示される。 これは次のコマンドでメンテナスウィンド…

Cisco Catalyst 3650におけるバッファの仕組みとチューニング

Catalyst 3650でバッファ溢れを起こしてパケットが大量にドロップされていたからチューニングを行う必要があった。 バッファの仕組みと必要なチューニングについてメモする。 Main Memory領域とI/O Memory領域 まず、物理メモリDRAMはCisco IOSの動作に使わ…

SNMPでネットワーク機器のポートのoutboundパケットのドロップ率を大まかに把握する

そこそこの規模のネットワークにおいて、インターネットへ向かうポートには多量のトラフィックが合流してパケットが破棄されてしまうことがある。 とある環境では上りのトラフィックのパケットだけがインターネットへの出口で大量にドロップされていた。 こ…