EC2のインスタンスプロファイルとIAMロールの実務上の違い

毎度おなじみのクラスメソットさんがわかりやすい dev.classmethod.jp

インスタンスプロファイルってなに?

インスタンスプロファイルは IAM ロールのコンテナであり、
インスタンスの起動時に EC2 インスタンスにロール情報を渡すために使用できます。

参考URL http://docs.aws.amazon.com/ja_jp/IAM/latest/UserGuide/id_roles_use_switch-role-ec2_instance-profiles.html

書いてある通り、IAMRoleを納めるための容器であり、EC2にアタッチする時に必要なコネクターの役割をします。

引用元に書いてある通りなんですが、 インスタンスプロファイルとiamロールが

  • 1対Nになってる
  • EC2に紐づけられるのはIAMロールそのものじゃなくてインスタンスプロファイル

サンプルで記載されているCloudformationのEC2立ち上げの設定を読んでみると

IamInstanceProfile: !Ref myInstanceProfile

iamロールを付与してるわけじゃなくてインスタンスプロファイルを指定してる

実務上意識することってどういうことなのかと勝手に解釈

該当記事を読んだ感じだとaws cliやcloudformationでインスタンスを立ち上げる時に理解していないとハマるってことかと思う。 コンソールから立ち上げるとIAMロールをそのままアタッチしてるように見えるけどそうではない。

繰り返しになるが EC2にアタッチするのはIAMロールではなくて「IAMロールを付与したインスタンスプロファイルである」ってことかと。

bundle installのオプション

指定した環境のgemをインストールしない

--without

手元でのGemfile.lockをさせない

--frozen

ansible-playbookコマンドでsshがタイムアウトするからとりあえずtimeout時間を伸ばしたい

--timeout=300

オプションつけるだでとりあえずタイムアウト時間は伸ばせる

ansible-playbook  -i development-hosts site.yml --timeout=300

こんな感じ

datadogのmotinrorメッセージでslackの @here @channelでメンションしたい

ただの件名の通りなんですが、 いまいち情報にたどり着けなかったので

@channel

<!channel>
@here

<!here>

である

azure app servicesのworking setモニターについて(メモリ使用量監視したい)

https://technet.microsoft.com/ja-jp/windows/ff467974.aspx

datadogでazure app servicesのメモリ使用量を監視したいと思いそれっぽい値を探していたら、 memory_working_setという値があった。

ワーキング セット: 現在プロセスで使用されているメモリの量を定義する用語です。プライベート ワーキング セットとは、特定のプロセス専用のメモリ量で、他の> プログラムで使用することはできません。共有可能なワーキング セットは、物理 RAM が不足し始めた場合に使用できます。ピーク ワーキング セットは、このプロ> セスの現在のインスタンスで記録された最大値です

とある。

実質これを監視すれば良さそうである

datadog側でapp servicesの所有しているメモリのサイズが取れなそうなので割合でアラート仕込めないのが面倒くさそうだ。

sqlserverからtableの情報(カラム名一覧とか)を取得する

mysqlで言う所の

show create table

がしたい

sp_help table名

で取れる。 詳細はまた。