2012-06-14 1 views
8

私は現在、HerokuのMemcachedをRails 3アプリで使用しており、Elasticacheへの移行を希望しています。これは価格がはるかに有利だからです。これは可能ですか?構成は比較的簡単ですか?パフォーマンスに関して私が知っておくべきことがありますか?HerokuでAmazon Elasticacheを使用できますか?

答えて

4

注:これは動作しますが、@btuckerはHerokuがホストするすべてのアプリケーションでElastiCacheクラスタにアクセスできると指摘しました。このソリューションの使用はお勧めしません。

はいできます。セットアップは、Herokuが持っているガイドと同じです(Amazon RDS)。このように行くと異なる手順:

  1. キャッシュ・クラスタを作成するには、「Get Started with Amazon ElastiCache」のガイドに従って、ノード
  2. は、RDSガイドが説明するようにElastiCache Command Line Toolkit
  3. があなたのElastiCacheクラスタにHerokuののサーバーの進入を許可するインストールyのHerokuのの設定値を設定し

    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 
    
  4. :しかしelasticache-ものとrds-コマンドを置き換えますクラスタのホスト名と当社の生産アプリ:その後

    heroku config:set MEMCACHE_SERVERS=elasticachehostname.amazonaws.com 
    

は、Memcache Rails setupに従ってください、そして、あなたが設定されています。

+1

ありがとう - これは完全に動作します。 – alpheus

+0

申し訳ありませんが、私はこのコメントをハイジャックしますが、プライベートアドレスを使用してすべてのトラフィックを請求したくない場合は、私たちはEC2のインスタンスでそれをやろうとしましたが、動作しませんでしたが、Elasticacheで動作すると聞きました – nambrot

+0

どこにプライベートアドレス@nanbrotがありますか?私はAWSコンソールに記載されている「エンドポイント」を使用していますが、まだElastiCacheトラフィックの料金は見ていません。 –

6

いいえ、Elasticacheは認証メカニズムがないため、使用しないことをお勧めします。そのように、誰でもあなたのキャッシュにアクセスできます!通常、AWSセキュリティルールを使用して、どのマシンが自分のマシンにアクセスできるかを制限するので、これは正常です。しかし、あなたのアプリはHerokusのランダムに選択されたマシン上で実行されているので、これは明らかにHerokuで動作しません。

EC2マシンでSASL認証を使用してmemcacheを自分で展開することができます。 ElastiCacheは、memcacheがあらかじめインストールされているEC2マシン以外に何も提供していません。 MemCachier

(フル免責事項は、私がMemCachierのために働く):

は別のオプションがあります。

Herokuには、提供されたmembaseよりも大幅に安いMemcacheプロバイダがあります。 MemCachierと呼ばれ、addonホームページはhereです。

キャッシュサイズや、予約済みのインスタンスを使用しているかどうか(ElatiCacheが非常に大きいキャッシュサイズの場合)によってElasticCacheと同等の価格です。

更新(2013年6月):membase memcacheアドオンがシャットダウンしているため、MemCacheierはMemoku on Herokuの唯一のプロバイダです。

ElastiCacheに行っても何か助けが必要な場合は、私に連絡してください。

+0

Cool。私はドキュメントを見てきましたが、明確にするために、現在私がGemfileにgem 'memcachier'を追加する以外に、Herokuでmembaseアドオンを使用している場合は、私が切り替えるために必要な変更はありますか?あなたのシステム? – alpheus

+0

@alpheus、はい、あなたがする必要があるのは、 'memcachier'という宝石を追加するだけです。問題がある場合は、[email protected]までお知らせください。 (完全免責事項:私はMemCachierでも働いています)。 – alexlod

3

上記の@ ssorallenの答えは上記のとおりですが、ANY herokuデプロイされたアプリからmemcachedサーバーにアクセスすることもできます。だから、あなたが何かを秘密に保管したり、あなたのElatiCacheクラスターを使っている他の人に心配しているなら、それをしないでください。 RDSのコンテキストでは、データベースにアクセス制御が組み込まれていますが、memcachedにはElastiCacheでサポートされている認証はありません。したがって、Herokuのすべてにセキュリティグループを開放することは、かなり大きなリスクです。

+1

それは大きなポイントです。 ElastiCacheは認証を使用しないので、これを防ぐ方法はありますか?ホスト名がわかりにくいため、セキュリティはほとんど問題になりません。 –

+0

@ssorallen、残念ながら私が知っているElastiCacheではこれを回避する方法はありません。認証をサポートするmemcachedのいくつかの代替ディストリビューションがありますが、ec2インスタンスでこれを実行する必要があります。 – btucker

+0

このトピックをもう一度やり直してください。これには、herokuのコードをAWS APIと話し、現在のDynoからのトラフィックのElasticCacheセキュリティグループにルールを追加するという方法があります。おそらくうまくいくと思う。これは、MemcacheクライアントがElastiCacheに接続しようとする前に実行する必要があります。 – btucker

関連する問題