MENU

Lambdaのバージョンとエイリアスを、シンプルに整理してみた

Lambdaのバージョンとエイリアスを、シンプルに整理してみたことを説明する画像

おはようございます、YASUです。

DVAの勉強で、Lambdaの「バージョン」と「エイリアス」の役割を取り違えたので、今日はシンプルに整理します。

目次

結論

バージョンは「後から変更できない確定版」、エイリアスは「どのバージョンを今使うかを指す名前」です。エイリアスの向き先を付け替えるだけで、本番の切り替えも、元に戻す作業もできます。

3つの言葉を整理する

  • $LATEST:編集中の最新版。コードを更新するたびに中身が変わる
  • バージョン:その時点のコードと設定を固定した確定版。発行後は変更できない。番号(1、2、3…)は自動で付く
  • エイリアス:prodやdevのような名前を付けて、特定のバージョンを指すもの。向き先は後から付け替えられる

自分なりのイメージでは、$LATESTが「編集中の原稿」、バージョンが「印刷済みの確定版」、エイリアスが「今はこの版を使ってください、という案内板」です。

エイリアスを使うメリット

  • 呼び出す側は、バージョン番号ではなく、エイリアス名(例:prod)だけを知っていればよい
  • 新しいバージョンを公開したら、エイリアスの向き先を付け替えるだけで、切り替えが完了する
  • 問題が起きたら、エイリアスを元のバージョンに付け替えるだけで、すぐに元へ戻せる

確定版のバージョンは書き換わらないので、戻す先がいつでもそのまま残っている、というのが安心できるポイントです。

少しずつ切り替える:加重エイリアス

エイリアスには、2つのバージョンにトラフィックを割り振る機能もあります。例えば「旧バージョンに90%、新バージョンに10%」のように設定して、新しいバージョンを一部のリクエストだけで試せます。これをカナリアデプロイと呼びます。

  • エイリアスが指せるバージョンは、最大2つまで
  • どちらのバージョンも発行済みであること($LATESTは指せない)
  • 2つのバージョンは、同じ実行ロールを持っていること

本番では$LATESTを直接呼ばない

関数のARNに何も付けずに呼び出すと、$LATESTが実行されます。$LATESTは編集のたびに中身が変わるので、本番では、バージョンかエイリアスを指定して呼び出すのが推奨されています。

まとめ

  • バージョンは変更できない確定版、$LATESTだけが可変
  • エイリアスは、バージョンを指す付け替え可能な名前
  • エイリアスの付け替えだけで、切り替えもロールバックもできる
  • 加重エイリアスなら、2つのバージョンに割合を指定して振り分けられる
  • 本番では$LATESTではなく、バージョンかエイリアスを呼ぶ

役割をシンプルに整理すると、「確定版を作る」「どれを使うかを指す」という2つのステップだと分かり、すっきりしました。それでは、また明日!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

目次