AWS Lambda関数のバージョン管理とエイリアス運用を完全ガイド!初心者でもわかる仕組みと設定方法
生徒
「AWS Lambdaのバージョン管理ってどんなときに使うんですか?」
先生
「本番環境で使っているLambda関数を壊さずにアップデートしたいときに使いますよ。」
生徒
「じゃあ、エイリアスって何ですか?バージョンとは違うんですか?」
先生
「エイリアスは、特定のバージョンに名前を付けて運用するための便利な仕組みです。それでは詳しく解説していきましょう。」
1. AWS Lambdaのバージョン管理とは?
AWS Lambda関数では、コードを更新したタイミングで「バージョン」を発行して、以前の状態を保存できます。この機能を使えば、うっかり新しいコードがバグを含んでいても、過去の安定版に戻すことが可能です。
開発中は「$LATEST(最新)」バージョンが使われますが、本番環境では固定されたバージョン(例:1、2、3など)を使うことで、動作の安定性が確保されます。
2. Lambda関数のバージョンを発行する手順
Lambda関数のコードを書いたあと、次の手順でバージョンを作成します。
- AWSマネジメントコンソールでLambda関数を開く
- コードの変更後、「新しいバージョンを発行」ボタンをクリック
- 任意で説明(例:「バグ修正後の安定版」)を記載
- 「バージョンを発行」をクリックすると、固定バージョンが作成される
これにより、「$LATEST」とは別に安定したバージョンを確保できます。
3. Lambdaエイリアスとは?用途とメリット
エイリアス(Alias)は、バージョンに「名前」をつけて管理する仕組みです。たとえば、PRODというエイリアスをバージョン3に設定すれば、「本番環境は常にバージョン3」といった運用ができます。
この仕組みのメリットは次の通りです。
- 本番・開発・テストの環境を分けて運用できる
- 新しいバージョンへの切り替えが即座に可能
- エイリアス単位でIAMロールやトラフィックの制御ができる
4. エイリアスを作成する方法
Lambda関数でエイリアスを作成するには、次の手順を行います。
- Lambda関数画面で「バージョン」を開く
- 対象のバージョンを選び「エイリアスを作成」
- 名前を入力(例:
PROD、DEV) - バージョンを割り当てて保存
作成されたエイリアスは、専用のARN(Amazonリソースネーム)で呼び出すことができます。
5. Javaからエイリアス付きLambdaを呼び出す例
JavaのSDKを使って、特定のエイリアスにリクエストを送る例を紹介します。
AWSLambda client = AWSLambdaClientBuilder.standard().build();
InvokeRequest request = new InvokeRequest()
.withFunctionName("MyFunction:PROD")
.withPayload("{ \"key\": \"value\" }");
InvokeResult result = client.invoke(request);
String response = new String(result.getPayload().array());
System.out.println(response);
6. バージョンとエイリアスの関係まとめ
バージョンとエイリアスは密接に関係しています。
- $LATEST:コードの最新状態(未固定)
- バージョン:固定されたコードの状態(変更不可)
- エイリアス:バージョンにラベルを付けたもの(変更可能)
この3つを正しく使い分けることで、AWS Lambdaをより安全かつ効率的に運用できます。
7. エイリアスによる段階的リリース(カナリアデプロイ)
AWS Lambdaでは、エイリアスを使ってカナリアリリース(段階的デプロイ)が可能です。新しいバージョンに徐々にトラフィックを流して、問題がなければ完全切り替えする手法です。
たとえば次のような設定ができます。
- エイリアス「PROD」に対して
- バージョン3 → 90% トラフィック
- バージョン4 → 10% トラフィック
トラブルが起きた場合は即座に90%の安定版へ戻せるため、本番運用のリスクを抑えられます。
8. よくある注意点とベストプラクティス
Lambdaのバージョン管理とエイリアスを使う際は、以下のポイントを意識しましょう。
- $LATESTを本番で使わない:毎回変わるため、安定運用には向きません
- バージョンを明示して呼び出す:思わぬ変更を避けられます
- エイリアスで環境を分ける:DEV、STAGE、PRODなどの運用がしやすくなります
- CloudWatchで監視:切り替え後のエラーを早期検出できます
9. Lambdaバージョン管理を使うシナリオ例
実際のプロジェクトで使われるユースケースを紹介します。
- ステージング環境での動作確認:エイリアス
STAGEでテスト実施 - 本番環境でのトラブル対応:エイリアス
PRODを旧バージョンに即切り戻し - 開発チームごとの並列運用:エイリアスを開発者ごとに分けてデプロイ
こうしたシナリオに対応できるのが、Lambdaのバージョンとエイリアス運用の強みです。