Amazon Web Services ブログ

Category: Amazon ElastiCache*

プロセッサの投機的実行に関する調査の公開について

【日本語訳】日本時間 2018年02月14日19:30 関連する CVE: CVE-2017-5715, CVE-2017-5753, CVE-2017-5754 日本時間 2018年02月06日09:30 以下は本件に関するアップデートです。 Amazon Linux 用の更新されたカーネルは、Amazon Linux のリポジトリにて入手できます。2018年1月13日以降にデフォルトの Amazon Linux 設定で起動された EC2 インスタンスには自動的に最新のパッケージが含まれています。 最新のパッケージでは、 CVE-2017-5715 に対処するための安定版オープンソース Linux セキュリティの改善がカーネル内に組み込まれています。また 以前取り込まれた CVE-2017-5754 に対処するカーネルページテーブルアイソレーション(KPTI)にもとづいて作成されています。インスタンス内の CVE-2017-5715 のプロセスープロセス間の問題と CVE-2017-5754 のプロセスーカーネル間の問題を効果的に軽減するには、最新の Amazon Linux カーネルまたは AMI にアップグレードする必要があります。詳細は「プロセッサの投機的実行 – オペレーティングシステムの更新」を参照してください。 para-virtualized(PV)インスタンスについては、以下の「PV インスタンスガイダンス」の情報を参照してください。   Amazon EC2   Amazon EC2 のすべてのインスタンスは、CVE-2017-5715、CVE-2017-5753、および CVE-2017-5754 に記載されたインスタンス間の既知の問題すべてから保護されています。インスタンス間での問題は、インスタンスまたは AWS ハイパーバイザーのメモリを近隣の別のインスタンスから読み取ることができると想定しています。この問題は AWS ハイパーバイザーでは解決されており、インスタンスは別のインスタンスのメモリを読み取ることも、AWS ハイパーバイザーのメモリを読み取ることもできません。 […]

Read More

Amazon ElastiCache for Redis を使ったChatアプリの開発

Sam Dengler は、アマゾン ウェブ サービスのソリューションアーキテクトです。 このブログ記事では、チャットアプリケーションに関連する概念とアーキテクチャのパターンについて説明します。また、チャットクライアントとサーバーの実装の詳細、サンプルのチャットアプリケーションを AWS アカウントに展開する方法についても説明します。 背景情報 チャットアプリケーションを構築するには、クライアントがチャットルームの他の参加者に再配信されるメッセージを送信できる通信チャネルが必要となります。この通信は、一般に publish-subscribe パターン (PubSub) を使用して実装されます。このパターンでは、メッセージが中央トピックチャネルに送信されます。関係者は、このチャンネルをサブスクライブして更新の通知を受けることができます。このパターンでは、発行者の知識なしに受信者のグループを拡大または縮小できるように、発行者と受信者を切り離しています。 PubSubは、クライアントが WebSockets を使用して通信するバックエンドサーバーに実装されます。WebSockets は、クライアントとサーバー間で双方向にストリーミングされるデータのチャネルを提供する永続的な TCP 接続です。単一サーバアーキテクチャでは、1 つの PubSub アプリケーションが発行者と受信者の状態を管理し、WebSocket を介してクライアントにメッセージを再配布することもできます。次の図は、単一サーバー PubSub アーキテクチャ上の 2 つのクライアント間でメッセージが WebSocket を通過するパスを示しています。 単一サーバーアーキテクチャは、通信フローを説明するのに役立ちます。しかし、ほとんどのソリューションビルダーはマルチサーバーアーキテクチャで設計したいと考えています。マルチサーバーアーキテクチャは、信頼性を高め、伸縮性を高め、クライアントの数が増えるにつれてアプリケーションを水平的に拡大するのに役立ちます。 マルチサーバーアーキテクチャでは、クライアントはサーバープールにトラフィックを転送するロードバランサーに対して WebSocket 接続を行います。これらのサーバーは、WebSocket 接続とそれを経由してストリーミングされるデータを管理します。WebSocket 接続が PubSub アプリケーションサーバーとの間で確立されると、その接続は永続化され、データは両方向のアプリケーションにストリームされます。ロードバランサーは、WebSocket 接続のリクエストを健全なサーバーに配信します。つまり、2 つのクライアントが異なるアプリケーションサーバーに WebSocket 接続を確立できます。   複数のアプリケーションがクライアントの WebSocket 接続を管理するため、アプリケーションはメッセージを再配布するためにそれらの間で通信する必要があります。この通信が必要なのは、メッセージが WebSocket を介して 1 つのアプリケーションサーバーにストリームアップされ、別のアプリケーションサーバーに接続されたクライアントにストリームダウンされる必要があるためです。クライアント接続を管理しているアプリケーションから PubSub ソリューションを外部に出すことで、アプリケーション間の共有通信の要件を満たすことができます。   次の図は、マルチサーバー PubSub […]

Read More

Amazon ElastiCache for Redis の リードレプリカの自動フェイルオーバのテスト

“信頼するが、確認する” – ロナルド・レーガン米国大統領、1987 このコメントで、レーガン大統領は、核軍縮条約の哲学について、ロシアの諺を引用しました。DevOpsにも同じ考え方が当てはまります!   Amazon ElastiCache for Redisは、自動化されたフェイルオーバとリカバリを備え、高可用性を提供しています。ElastiCacheクラスタを作成したければ、 Redis Cluster モードを使用し、クラスタ内のシャード数を設定します。各シャードには、1つのプライマリノード(読み取りと書き込み用)と0〜5つのレプリカノード(読み取りとフェールオーバー保護用)があります。1つのクラスタは、レプリカがゼロ(1ノード)のシャードと同じくらい小さくても、5つのシャード(5つのレプリカ(合計90ノード))を持つことができます。   AWSでは障害が頻繁に発生することはありませんが、いずれのマシンでも障害は発生します。レプリカノードに障害が発生すると、障害が検出され、数分でノードが置き換えられます。   Redis Cluster では、プライマリノードに問題が起きた時に、Redis Cluster は障害を検知しレプリカノードを新しいシャードのプライマリとして昇格させます。このプロセスは大体30秒程で実施されます。問題の起きたノードは入れ替えられ、クラスタのレプリカノードとして復帰します。Redis ClusterとElstiCacheを、エンジンとして Redis 3.2.4 と Cluster モードを有効にすることによって使うことができます。   これを信じてください…しかし検証するべきです。   ElastiCacheのテストフェイルオーバのおかげで検証は簡単です。マネジメントコンソールかAWS CLIを使用し、ElasiCache クラスタのいずれかのノード障害をシミュレートする事ができます、そして、どのようなプロセスで貴方のアプリケーションが動くのかも見ることができます。マルチシャード、もしくはシングルシャードの環境でもテストは可能です。さらに古いRedis 2.8の環境でもテストは可能です。 コンソールまたはAWS CLIを使用して、ElastiCacheクラスタ内の任意のノードの障害をシミュレートし、自分のアプリケーションでフェールオーバープロセスがどのように機能するかを確認できます。マルチシャード環境とシングルシャード環境、さらに古いRedis 2.8ブランチ環境でもフェールオーバーをテストできます。コンソールでこれを行うには、クラスタとシャードを選択してノードビューを表示し、次にフェールオーバープライマリを選択します。マネジメントコンソールでテストを行う際には、クラスタとシャードを選択してNode Viewを確認し、次にFailover primaryを選択します。   使用には注意してください。どのようなクラスタでも同じように動きます。なぜならどのクラスタも開発環境、テスト、本番かをAWSが知るすべが無いためです。その本番のクラスタで実行しても良い事が確信していない限りは本番ノードでは障害を発生させないでください。   自動フェイルオーバのテストを試してみてください!   翻訳は桑野が担当しました。原文はこちら。

Read More

発表: Amazon ElastiCache で Redis バックアップおよび復元を実現、クラスターのサイズ変更も可能に

インメモリキャッシュは、アプリケーション設計時またはソリューション構築時の大規模なパフォーマンス強化やコスト削減と同等に扱われます。ここで、サービスが 1 つのみの場合は、スケーリングする機能を強化しながら、継続的にクラウド内のインメモリキャッシュをより簡単にデプロイおよび活用できるようにします。冗談はさておき、この優れた機能を実現するクラウドサービスとは、もちろん Amazon ElastiCache です。Amazon ElastiCache は、パフォーマンスの高いインメモリデータストアまたはキャッシュをクラウドで実現する AWS マネージドサービスです。I/O 集約型または計算量の多いデータの低レイテンシー、安全性、アクセスを実現するための分散環境を作成、スケール、管理する簡単な方法を提供します。また、ElastiCache では、Amazon CloudWatch を通じて、キャッシュシステムのノードの主要なパフォーマンスメトリクスの可視性を強化すると同時に、障害が発生したノードを検出して置換することで、インメモリデータ構造サーバやキャッシュのインフラストラクチャを管理するオーバーヘッドを抑えることができます。この優れたサービスで、Redis バックアップおよび復元とクラスターのサイズ変更を実現しました。 Amazon ElastiCache に精通している方であれば、ElastiCache で次の 2 つのインメモリキー値エンジンがサポートされていることをご存じでしょう。 Memcached: パフォーマンスの高いオープンソースの分散メモリオブジェクトキャッシュシステム。データベースの負荷を軽減して動的なウェブアプリケーションを高速化することを当初の目的として 2003 年に開発されました。 Redis: オープンソースのインメモリデータ構造ストア。Redis クラスターを使用して、組み込みレプリケーション、アトミックオペレーションサポート、さまざまなレベルのオンディスクの永続性、高可用性を実現しながら、キャッシュ、メッセージング、データベースのブローカーとして開発され、2009 年に発表されました。 2016 年 10 月、Redis 3.2.4 使用の Redis クラスターがサポートされるようになり、ElastiCache Redis のユーザーは Redis クラスターを活用できるだけでなく、次のことが行えるようになりました。 クラスターレベルのバックアップの作成 バックアップ内のクラスターのシャード単位でのスナップショットの生成 最大 15 シャードの間で 3.5TiB のデータのワークロードのスケール ElastiCache や関連する機能を活用した Redis の使用については、「Amazon ElastiCache for Redis」の製品ページを参照してください。Redis […]

Read More

Amazon ElastiCache for Redisアップデート – Sharded Clusterの追加やエンジンバージョンを更新 –

多くのAWSのお客様に高速で、インメモリデータストアとして Amazon ElastiCacheをご利用頂いています。 2013年にAmazon ElastiCache for Redisをリリースし、スナップショットのS3へのエクスポート機能、エンジンバージョンの更新、スケールアップ機能、タグ、Multi-AZで自動フェイルオーバー機能を数年で追加してきました。 本日、新機能をElastiCache for Redisへ追加しました。詳細は以下の通りです。 Sharded Clusterサポート – 3.5 TiB以上をインメモリデータとして扱う事が出来るsharded clusterを作成可能になりました コンソールの改善 – 以前より簡単にクラスタの作成やメンテナンスが行えるようになりました エンジンアップデート – Redis 3.2の機能をご利用頂けるようになりました Geospatial Data – 地理空間データの処理を行え、利用可能になりました 更に詳細を見ていきましょう!   Sharded Clusterサポート / 新コンソール 今まではElastiCache for Redisは1つのプライマリノードと5つまでのread replicaを含んだクラスタに対応していました。この構成では、メモリサイズがクラスタあたり237 GiBに制限されていました。 1クラスタで15シャードまで作成出来るようになったことで、クラスタ全体のメモリ容量を拡大することが可能になり、最大3.5 TiBまでのデータをインメモリデータとして格納出来ます。それぞれのシャードは5つまでread replicaを作成可能で、1秒あたり2,000万読み込み、450万書き込みの性能を提供します。 シャードモデルは、read replicaと合わせて利用することでクラスタ全体の可用性とパフォーマンスを向上します。データは複数のノードに分散され、read replicaは高速で自動的なフェイルオーバーをプライマリノードに障害が起こった際に提供します。 シャードモデルの利点を活かすために、cluster対応のRedisクライアントを使う必要があります。クライアントは、16,384個のスロットをシャード毎に均等に分散されたハッシュテーブルとして扱い、保存するデータを各シャードにマップします。 ElastiCache for Redisはクラスタ全体を1つのバックアップとリストア用途のユニットとして扱います。そのため、各シャード毎のバックアップを管理したり考えたりする必要がありません。 コンソールの機能が改善され、スケールアウトクラスタを簡単に作成可能になりました。(Redisエンジンを選択した後にCluster Mode enabled (Scale Out)にチェックを入れている点を注目して下さい) 新しい便利なメニューで適切なノードタイプを選択を手助けしてくれます sharded clusterは、AWS Command Line […]

Read More

Amazon ElastiCache アップデート – RedisのSnapshotをAmazon S3へエクスポートする事が可能になりました

Amazon ElastiCache はポピュラーなインメモリキャッシュエンジンであるMemcachedとRedisをサポートしています。 Memcachedは低速なディスクベースのデータベース等の結果を高速にキャッシュする事ができ、Redisは永続的にデータを保存できるデータストアとして高速に動作します。Redisはレプリケーションやフェイルオーバなどをサポートすることでの高可用性の確保と、複雑なデータ構造での保存を標準サポートしています。   本日Redisユーザのみなさんに、非常に興味深く、注目すべき新しい機能をリリースしました。まず、実行されているRedis キャッシュクラスタのスナップショットを作成する事は既に可能です。スナップショットは永続的なバックアップや、新しいキャッシュクラスタを作成するために使用することができます。おさらいとしてキャッシュクラスタのスナップショットを作成する方法は次のとおりです: RedisスナップショットがS3バケットへとエクスポートできるようになりました。S3バケットはスナップショットと同一リージョンに存在し、ElastiCacheに適切なIAMの権限(List、Upload/Delete、View 権限)を付与する必要があります。この機能はいくつかの用途を想定しています:   ディザスタリカバリ – スナップショットを他の場所にコピーし保管する 分析 – S3上のスナップショットのデータから使用状況等を分析する 種データ配布 – 別のリージョンにスナップショットを元にした新しいRedisキャッシュクラスタを構築する スナップショットのエクスポート スナップショットをエクスポートするのは簡単です、スナップショットを選択し、Copy Snapshot をクリックしてください: バケットのアクセス許可を確認してください。(詳細はExporting Your Snapshotを参照ください): 次に、新しくエクスポートするスナップショット名と希望する保存先のS3バケット名を入力してください: ElastiCache はスナップショットをエクスポートし、指定したS3バケットにスナップショットを置きます: ファイルは標準のRedisのRDBファイルとして保存され、使用することができます。 また、アプリケーション等のコードや、コマンドラインからも同様の作業を実行することができます。対象のS3バケットを指定し、プログラムコードから呼び出す場合はCopySnapshot、コマンドラインからはcopy-snapshotコマンドを使用してください。 この機能は既に利用可能で、本日から使い始めることができます!エクスポートには料金はかからず、通常のS3ストレージ料金だけで使うことができます。 — Jeff; 翻訳はSA桑野(@kuwa_tw)が担当しました。原文はこちら。    

Read More

ElastiCache for Redis の更新 – エンジンのアップグレードとスケールアップ

Amazon ElastiCache は、クラウド内のインメモリデータベースのデプロイ、運用、スケールの実行を簡単にするサービスです。ご存知のとおり、ElastiCache では Memcached エンジンと Redis エンジンがサポートされています。 Redis 向けの強化 本日、Redis ベースの ElastiCache クラスターがより詳細に制御できるようになる、ElastiCache の更新をローンチしました。You can now scale up to a larger node type while 保存された情報を ElastiCache に保持したまま (ベストエフォートベース)、より大きなノードタイプにスケールアップできるようになりました。ElastiCache for Redis のエンジンバージョンのアップグレードはこれまでずっと可能でしたが、保存された情報を保ったままでこれを実行できるようになりました。これらの変更は、両方とも、即時適用またはクラスターのメンテナンス期間の適用が実行できます。 ElastiCache for Redis のスケールアップとエンジンアップグレードのために、見えないところでさまざまな戦略が活用されています。スケーリングは Redis レプリケーションをベースにしています。エンジンのアップグレードでは、マルチ AZ がオフになったときにまずフォアグラウンドのスナップショットが使用され (SAVE)、マルチ AZ がオンのときにレプリケーションに続いて DNS スイッチが実行されます。 大きなノードタイプにスケールアップするには、AWS マネジメントコンソールで [Cache Cluster] を選択し、[Modify] をクリックします。新しい [Node Type] を選択し、変更を即時適用するかどうかを決定してから、[Modify] をクリックします。 […]

Read More