現在、Rails 3 アプリで Heroku の Memcached を使用していますが、価格がはるかに有利であるため、Elasticache に移行したいと考えています。これは可能ですか?設定は比較的簡単ですか?パフォーマンスに関して注意すべきことはありますか?
4 に答える
いいえ、Elasticache には認証メカニズムがないため、Elasticache の使用はお勧めしません。そのため、誰でもあなたのキャッシュにアクセスできます! これは通常、AWS セキュリティ ルールを使用してアクセスできるマシンを制限するので問題ありません。ただし、アプリは Heroku のランダムに選択されたマシンで実行されるため、これは明らかに Heroku では機能しません。
EC2 マシンに SASL 認証を使用して memcache を自分でデプロイできます。とにかく、ElastiCache は実際には memcache がプリインストールされた EC2 マシン以上のものを提供しません。
別のオプションがあります: MemCachier
(完全な免責事項、私は MemCachier で働いています)。
Heroku には、membase が提供するものよりも大幅に安価な別の memcache プロバイダーがあります。それはMemCachierと呼ばれ、アドオンのホームページはhereです。
キャッシュ サイズと、リザーブド インスタンスを使用するかどうかに応じて、価格は ElasticCache に匹敵します (キャッシュ サイズが非常に大きい場合、ElatiCache の方が安価です)。
更新 (2013 年 6 月) : membase memcache アドオンがシャットダウンされたため、MemCachier が Heroku 上の Memcache の唯一のプロバイダーです。
ElastiCache を使用している場合でも、サポートが必要な場合はご連絡ください。
危険:このソリューションを本番環境で使用することはお勧めしません。これは機能しますが、@ btuckerは、 HerokuでホストされているアプリがElastiCacheクラスターにアクセスできるようにすることを指摘しました。
はい、できます。セットアップは、HerokuがAmazonRDSで持っているガイドに似ています。異なる手順は次のようになります。
- 「 AmazonElastiCache入門」ガイドに従って、キャッシュクラスターとノードを作成します
- ElastiCacheコマンドラインツールキットをインストールします
RDSガイドで説明されているように、HerokuのサーバーがElastiCacheクラスターに入るのを許可しますが、
rds-
コマンドを次のelasticache-
ものに置き換えます。elasticache-authorize-cache-security-group-ingress \ --cache-security-group-name default \ --ec2-security-group-name default \ --ec2-security-group-owner-id 098166147350 \ # If your AWS_CREDENTIAL_FILE environment setting is configured, # this option is not necessary. --aws-credential-file ../credential-file-path.template
クラスターのホスト名を使用して、本番アプリのHeroku構成値を設定します。
heroku config:set MEMCACHE_SERVERS=elasticachehostname.amazonaws.com
その後、Memcache Railsの設定に従って、設定が完了します。
上記の@ssorallenの回答は説明どおりに機能しますが、herokuでデプロイされたすべてのアプリがmemcachedサーバーにアクセスできることにも注意してください。したがって、機密情報を保存している場合や、他の人が ElatiCache クラスターを利用することを懸念している場合は、それを行わないでください。RDS のコンテキストでは、アクセス制御がデータベースに組み込まれていますが、memcached には、ElastiCache でサポートされているそのような認証がありません。そのため、すべての Heroku に対してセキュリティ グループを公開することは、かなり大きなリスクです。
この問題を解決する Heroku アドオンがいくつかあります。それらは、ホワイトリストに登録できる静的 IP アドレスを持つ SOCKS5 プロキシを提供します。
- https://elements.heroku.com/addons/proximo
- https://elements.heroku.com/addons/quotaguardstatic
- https://elements.heroku.com/addons/fixie-socks
ec2 で独自の SOCKS5 プロキシを設定することで、これを自分で行うこともできます。
ただし、ここの警告に注意してください: http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/Access.Outside.html
これは遅く、暗号化されておらず、NAT モンキー ビジネスが必要になります。