Snowflake のリソースモニター通知を Slack で受け取る

Snowflake にはコスト管理や予期しない使用状況回避のためにリソースモニターという仕組みがあるが、
現状アカウント管理者に Web インターフェイスまたはメールを通してのみ通知される点がちょっと使いづらい。
というわけで、この通知を Slack に流して誰でも確認できるようにしているよという tips メモを残しておく。

Slack にはチャンネルにメールを流す仕組みがあるので、これを使う。
手順に従って取得したメールアドレスを ACCOUNTADMIN ロールを持つユーザのメールアドレスとして設定し、ウェブ上から通知を有効化・電子メール受け取りに変更するのみ。

alter user <admin_user> set email = 'x-hoge@xxx.org.slack.com';

これだけ。
通知の有効化も SQL でやりたいなとか非管理者も通知を受け取りたいな、メールと Web 以外でも通知を受け取りたいなという気持ちではあるが、一旦はこれでなんとかなるので今後のアップデートに期待したい。

About me

  • 名前: 金谷直輝(Naoki Kanatani)

  • 所属: CyberAgent, Inc.

  • 経歴:

    • 2012 / 04 - 2016 / 03: 東京工業大学情報工学部
    • 2016 / 04 - 2018 / 03: 東京工業大学情報理工学院
    • 2018 / 04 - 現在: CyberAgent, Inc.
  • リンク:

ElastiCache のノードタイプを変更する際の注意点

注意: この記事は aws elasticache list-allowed-node-type-modifications を知っていれば(ほぼ)読む必要はありません。

背景

今見ているサービスで RI の購入タイミングになったので、m4.4xlarge のものを m5.4xlarge に変更しようという話になりました。
しかし、実際にオペレーションをしたところ変更ができなかったのでスケール時に確認しておくべきことなどを自分用にメモとして残しておきます。
(いやその変更は直接は無理でしょ!と一瞬で分かった方には不要な記事です)

原因・事前にやっておくべきこと

結論から述べると、ドキュメントに記載してある通り、スケールアップ先として選択可能なノードとそうでないノードが存在します。
AWS CLI であれば aws elasticache list-allowed-node-type-modifications を使うのが良いです。


$ aws elasticache list-allowed-node-type-modifications --replication-group-id xxxxx
{
    "ScaleUpModifications": [
        "cache.m4.10xlarge",
        "cache.m5.12xlarge",
        "cache.m5.24xlarge",
        "cache.r3.4xlarge",
        "cache.r3.8xlarge",
        "cache.r4.16xlarge",
        "cache.r4.4xlarge",
        "cache.r4.8xlarge",
        "cache.r5.12xlarge",
        "cache.r5.24xlarge",
        "cache.r5.4xlarge"
    ],
    "ScaleDownModifications": [
        "cache.m3.2xlarge",
        "cache.m3.large",
        "cache.m3.medium",
        "cache.m3.xlarge",
        "cache.m4.2xlarge",
        "cache.m4.large",
        "cache.m4.xlarge",
        "cache.r3.2xlarge",
        "cache.r3.large",
        "cache.r3.xlarge",
        "cache.r4.large",
        "cache.r4.xlarge",
        "cache.t2.medium",
        "cache.t2.micro",
        "cache.t2.small",
        "cache.t3.medium",
        "cache.t3.micro",
        "cache.t3.small"
    ]
}

なぜ変更できないのか

ドキュメントには詳細な仕様は明記されていません。
今回のケースでは「別のノードタイプに変更する場合は現在よりメモリの小さいものには変更できない」というルールが存在していてそれに引っかかったのだと思われます。
また、これ以外にも変更に関するルールは存在するようなので、必ず事前に調べておく必要があります。

どうしても変更したい

という場合もあるかと思います。その場合は、

  1. 同ノードタイプの現在よりメモリの小さいものに一旦変更
  • 例: m4.4xlarge -> m4.2xlarge
  1. 当初変更予定だったノードタイプに変更
  • 例: m4.2xlarge -> m5.4xlarge

という手順で理論的には変更可能です。(こちらはサポートケースでも案内されました)

Hugo + GitHub Pages + GitHub Actions でこの記事を世に届けている

最近自分のアカウントも GitHub Actions が有効になったので、
早速使ってみようと思いこの GitHub Pages を Actions でリリースするようにしてみた。
実際の YAML を見るのが早いと思うので貼る。以下の通り。

name: publish

on:
  push:
    branches:
      - develop
jobs:
  build-deploy:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@master
    - name: build
      uses: peaceiris/actions-hugo@v0.58.1
      with:
        args: --gc --minify --cleanDestinationDir
    - name: deploy
      uses: peaceiris/actions-gh-pages@v2.2.0
      env:
        ACTIONS_DEPLOY_KEY: ${{ secrets.ACTIONS_DEPLOY_KEY }}
        PUBLISH_BRANCH: master
        PUBLISH_DIR: ./public

すでに世に出回っている Action が便利なのでそれを使うだけの記事になってしまった。

参考

ハローワールド

文章を書きたいけどどこに書こうか迷った結果 GitHub Pages にたどり着いた。