2021/03/25

AWSの「Amazon Elasticache」とは?Amazon Elasticacheの構築・移行・運用・セキュリティ

 
  

AWSの「Amazon Elasticache」とは?

「Amazon Elasticache」とは、NoSQLのデータをメモリ上にキャッシュとして格納すること(メモリキャッシング)で高速化を図るAWSのデータベース(DB)サービスです。 AWSで強みとするクラウド上のマネージドサービスなので、システムの構築や運用が容易です。 最初に、関連する周辺技術について解説していきます。

「NoSQL」とは?

「NoSQL」とは、スケールアウトが容易で、主にパフォーマンスと可用性の向上を目的としたデータモデルです。 通常のリレーショナルデータベースのような「スキーマ(データ設計)」が不要なため、簡単に読み書きができるのが特徴です。 データモデルは、「キー」と「バリュー(値)」というシンプルな構成となっています。

AWSで提供されている「NoSQL」サービス

AWSで提供されている「NoSQL」サービスには、「マネージドサービス」と「非マネージドサービス」の2種類があり、様々なタイプが提供されています。 AWSの「マネージドサービス」には、「Amazon DynamoDB」「Amazon Elasticache」などがあります。 また「非マネージドサービス」にも、「Apache Cassandra」「MongoDB」「CouchDB」「Riak」など、多数提供されています。

「メモリキャッシング」とは?

「メモリキャッシング」とは、メモリにキャッシュしたデータを再利⽤することにより、アプリケーションのDBアクセスを高速化する手法です。 キャッシュするデータは、システム障害などで「消える」可能性があります。そのため、永続的な保存を要するデータを格納しないことが注意点です。 通常の用途としては、一時的に保存するだけ(揮発性が高い)のデータの格納に向いています。例えば、DBのクエリ結果や複雑な計算結果などが向いています。

「Amazon Elasticache」の位置付け

「Amazon Elasticache」のAWSのDBサービスにおける位置付けとしては、「NoSQL」のデータモデルであり、メモリキャッシングによる高速化が必要なアプリケーションで利用されます。 NoSQLのデータモデルでデータ永続化が必要な場合は、「Amazon DynamoDB」を利用します。 また、トランザクション処理や複雑なクエリ処理が必要な場合は、「Amazon RDS」を利用します。

「Amazon Elasticache」の概要

「Amazon Elasticache」の概要について、「構築」「移行」「運用」「セキュリティ」の4つの観点から解説します。 また、関連するAWSのサービスについても合わせて説明していきます。

「Amazon Elasticache」の構築

「Amazon Elasticache」の構築としては、AWSのコンソール画面で数クリックするだけで簡単に構築することが可能です。 料金面では、「Amazon EC2」「Amazon RDS」と同様に、初期費用が不要で時間単位の従量課金制となっています。

「Amazon Elasticache」の移行

「Amazon Elasticache」の移行としては、既存のアプリケーションの変更が不要となっている点がメリットです。 また、2種類のメモリキャッシングのエンジン(「AWS Memcached」「AWS Redis」)をサポートしています。

「Amazon Elasticache」の運用

「Amazon Elasticache」の運用としては、モニタリング、システム拡張、パッチ管理、自動障害検出、復旧などの機能を利用して可用性を向上させています。 これらの機能に加えて、マネージドサービスでもあることから、少人数での運用も可能としています。

「Amazon Elasticache」のセキュリティ

「Amazon Elasticache」のセキュリティとしては、セキュリティグループや「Amazon VPC」に対応しています。 セキュリティグループは、仮想的なファイアウォールの機能として利用できます。 また「Amazon VPC」内でインスタンスを起動すると、そのインスタンスには5個までのセキュリティグループが割り当て可能となっています。

「Memcached」と「Redis」との比較

「Amazon Elasticache」のメモリキャッシングのエンジンとして、「Memcached」や「Redis」から選択できますが、要件に応じて片方を選択する必要があります。 例えば、シンプルなデータモデルで、複数スレッドで構成されたインスタンスを実行する必要がある場合や、システム負荷の増減に応じたスケールアウトとスケールインが必要な場合は、「Memcached」を選択します。

「Memcached」とは?

「Memcached」とは、インメモリの「キーバリュー型」データを格納するためのキャッシュサーバです。 「キーバリュー型」のデータストアは、「KVS(Key-Value Store)」とも呼ばれます。2003年に「Danga Interactive」が、ブログサービス「Live Journal」の負荷対策用に開発しました。 YouTube、Wikipedia、mixiといった多数のWebサイトで採用されています。

「Memcached」の特徴

「Memcached」の特徴は、KVSの「デファクトスタンダード」なプロトコルである点です。 アクセス制御等のセキュリティ機能は省略し、シンプルな機能に絞り込んで対応することで高速化を図っています。また、「マスタノード」「シャーディング」「レプリケーション」といった仕組みもありません。 なお、データ削除方法には、「明示的」「期限」「LRU(LeastRecentlyUsed)」の3方式があります。

「Amazon Elasticache for Memcached」について

「Amazon Elasticache for Memcached」とは、「Memcached」と互換性のあるインメモリKVSのAWSサービスです。 「Amazon EC2」に「Memcached」をデプロイして使用することも可能ですが、「Memcached」の高いパフォーマンスや使いやすさをAWSのマネージドサービスとして利用することができます。 「Cache Cluster」という論理グループを設定して、「Cache Node」を複数台起動する構成が一般的です。

「Amazon Elasticache for Memcached」の特徴

「Amazon Elasticache for Memcached」の特徴は、極めて高いパフォーマンスとスケールが容易な点です。 データストアやキャッシュとして利用可能で、ミリ秒未満のレスポンス性能が求められる厳しい要件のアプリケーションを構築することもできます。 また、1クラスターに20個までのノードと12.7TiB の容量を持つインメモリのキャッシュに、スケール用「シャーディング機能」も備えています。

「Redis」とは?

「Redis」とは、「リモートディクショナリサーバー」の略で、インメモリのKVSです。キャッシュ、データベースやキューとして使用することができます。 用途としては、リアルタイム分析、セッション管理、ゲームアプリケーション、チャットやメッセージング、メディアストリーミング等、様々なサービスで利用されています。

「Redis」の特徴

「Redis」の特徴は、「キーバリュー」の「バリュー(値)」に様々なデータ構造を利用できる点です。 具体的なデータ構造としては、「リスト型」、「セット型」、「ハッシュ型」等があります。 またこのバリューに対して、⾼レベルの操作が可能となっています。

「Amazon ElastiCache for Redis」とは?

「Amazon ElastiCache for Redis」とは、高速なインメモリデータストアで、「Redis」と互換性のあるAWSのマネージドサービスです。 既存のアプリケーションを改修不要で導入することが可能で、広告、eコマース、ゲーム、金融サービス、IoTなど、高いレスポンス性能が要求されるアプリケーションで活用されています。

「Amazon Elasticache」のまとめ

本記事では、「Amazon Elasticache」について、前提となっている技術、その概要、使用されている技術要素を解説してきました。 「Amazon Elasticache」を使用することで、オープンソースとして広く利用されているインメモリデータストアを開発するアプリケーションに組み込み、サービスの向上を目指してみてはいかがでしょうか。]]>

ITエンジニアへのキャリアチェンジならキャリアチェンジアカデミー

この記事の監修者・著者

株式会社オープンアップITエンジニア
株式会社オープンアップITエンジニア
未経験からITエンジニアへのキャリアチェンジを支援するサイト「キャリアチェンジアカデミー」を運営。これまで4500人以上のITエンジニアを未経験から育成・排出してきました。
・AWS、salesforce、LPICの合計認定資格取得件数:2100以上(2023年6月時点)
・AWS Japan Certification Award 2020 ライジングスター of the Year 受賞

おすすめの動画

  • 【未経験からIT業界へ転職するなら】相談窓口とスキルの獲得はここで解決!IT転職が一気に有利に!【キャリアチェンジアカデミー】

  • 【費用一切不要】未経験からIT業界へ転職するならまずはここへ相談!【キャリアチェンジアカデミー】

  • 【何のエンジニアになれるのか?】未経験からITエンジニアを目指すとこんな道がある【キャリアチェンジアカデミー】