インスタンス化された Amazon EC2 仮想 Ubuntu 12.04 サーバーを単一の Riak ノードとして使用しています。芭蕉の Web サイトのガイドを使用して、インスタンスに Riak をセットアップするための適切な段階をすべて実行しました。インスタンスx.x.x.x
のプライベート IP アドレスは次のとおりです。
インストール
root 権限を取得するために使用
sudo su -
します (EC2 は「Ubuntu」としてログインします)。以下を使用して SSL ライブラリをインストールします。
sudo apt-get install libssl0.9.8
12.04 の 64 ビット パッケージのダウンロード:
wget http://downloads.basho.com.s3-website-us-east-1.amazonaws.com/riak/CURRENT/ubuntu/precise/riak_1.2.1-1_amd64.deb
次に、次の方法で解凍します。
sudo dpkg -i riak_1.2.1-1_amd64.deb
芭蕉ガイドの指示に従って、次の 2 つのファイルを更新しました (vi を使用)。
vm.args
-name riak@x.x.x.x
インスタンスのプライベート IP に変更します。
app.config
{http, [ {"x.x.x.x", 8098 } ]}
インスタンスのプライベート IP に変更します。
{pb_ip, "x.x.x.x"}
インスタンスのプライベート IP に変更します。
サーバーを最初にセットアップして上記を実行したとき、Riakノードは正常に機能していました。ノードに接続でき、使用すると次のように正常riak start
にriak-admin test
返されました。
>Attempting to restart script through sudo -H -u riak
>Successfully completed 1 read/write cycle to 'riak@x.x.x.x'
翌日、私はインスタンスを起動し、インスタンスの新しい IP アドレスy.y.y.y
(インスタンスのプライベート IP は停止/開始するたびに変更されます) を使用して上記のプロセス (インストールを無視) を繰り返しriak start
、ターミナルに入力しました。
>Attempting to restart script through sudo -H -u riak
>Riak failed to start within 15 seconds,
>see the output of 'riak console' for more information.
>If you want to wait longer, set the environment variable
>WAIT_FOR_ERLANG to the number of seconds to wait
riak コンソールに表示されるエラーは次のとおりです。
>gen_server riak_core_capability terminated with reason: no function clause matching orddict:fetch('riak@y.y.y.y', [{'riak@x.x.x.x',[{{riak_core,staged_joins},[true,false]},{{riak_core,vnode_routing},[proxy,...]},...]}])
は新しいインスタンスy.y.y.y
の IP アドレスでx.x.x.x
、古いものでした。
私はしばらくこれについて頭を悩ませてきましたが、このトピックについて何も見つけることができません.私が考えることができる唯一の解決策は、PATHディレクトリが間違っている可能性がない場合にRiakを再インストールすることです. それが失敗した場合、私の最後の手段は、インスタンスを終了し、新しいインスタンスで Riak を再構成することです。ですから、銃を飛ばす前に、私が聞きたいことは次のとおりです。
のフィールドを新しいインスタンスの IP アドレスで更新した後
app.config
、vm.args
コマンドriak start
が成功しなくなったのはなぜですか?Ubuntu EC2 インスタンスに静的プライベート IP を割り当てる方法はありますか? これは問題の解決に役立つだけでなく、インスタンスを開始/停止するたび
app.config
に更新する時間を節約できます。vm.args