#前提
AWS 認定 デベロッパー – アソシエイト試験に向けた勉強のメモです。
完全に自分用として使用するため、自分に向けた備忘、気付きを記載する場にします。
#サービス
##Lambda
###バージョンとエイリアス
バージョン:Lambda のコードの断面のようなもの。
エイリアス:特定の Lambda バージョンに対するポインタ。
何が嬉しいか:エイリアスを使用することで関数のリリース・ロールバックが簡単できる
例えば、S3 のイベント通知をトリガーとして Lambda 関数を使用するユースケースを思い浮かべてみる。
S3 バケット側の設定として Lambda のエイリアスを指定すれば、Lambda 側のコード変更に伴い S3 側の設定変更は必要がなくなる。Lambda 側で新しいバージョンを発行し、エイリアスに新しいバージョンを紐づけることでリリース、エイリアスに元のバージョンを紐づければロールバックができる。
参考:Lambda Functionのバージョン・エイリアス運用方針 #アドカレ2015
###環境変数
複数環境 (開発と本番など) で同一のコードを使用しながら、関数内から別々のリソースにアクセスするといった時に使用する。
環境変数のシナリオ例
環境変数を使用して、テスト環境および本番環境における関数の動作をカスタマイズできます。例えば、同じコードでも設定が異なる 2 つの関数を作成できます。1 つの関数はテストデータベースに接続し、もう 1 つはプロダクションデータベースに接続します。この状況では、環境変数を使用して、データベースのホスト名とその他の接続の詳細を関数に伝えます。
これも便利だなと思った。
テスト環境で本番環境よりも多くのデバッグ情報を生成する場合は、環境変数を設定して、より詳細なログ記録またはトレースを使用するようにテスト環境を設定できます。
###ベストプラクティス
関数内で任意の条件が満たされるまで関数を自動的に呼び出すような再帰的なコードを使用しない。
AWS Lambda 関数を使用するためのベストプラクティス
##ElastiCache
Redis と Memcached の比較
基本的に Memchached の方が多機能。Memcached にあって Redis にない唯一の機能がマルチスレッドアーキテクチャ。Memchached はシンプル。
Memcached はマルチスレッドであるため、複数の処理コアを使用できます。これは、コンピューティング性能をスケールアップすることで、より多くの操作を処理できることを意味します。