Riakクラウドストレージ。パート3。支柱、プロキシおよび負荷分散、S3クライアント

画像


この記事では、Riak CloudStorageシステムのコンポーネントの構成を完了します。



この記事は、Riak CS2.1.1システムの公式マニュアルの一連の無料翻訳の完成です。

パート1.RiakKVのセットアップ

パート2.RiakCSコンポーネントのセットアップ



支柱の設置



クラスタ内で1つだけのStanchionノードを使用する必要があります。このクラスター内のすべてのRiakCSノードは、クラスターが原因となる操作を監視および調整できるように、Stanchionノードと通信するように構成する必要があります。



Stanchionノードで使用されるすべての設定は、ほとんどのオペレーティングシステムの/ etc / stanchionディレクトリにあるstanchion.confファイルに含まれています。



Riak CS 2.0.0より前のバージョンからアップグレードする場合(stanchion.confおよびriak-cs.confが導入されたとき)、古いapp.config構成ファイルを引き続き使用できます。以下の例は同等です。



STANCHION.CONF



configuration.name = value


APP.CONFIG



{stanchion, [
             %% Configs here
            ]}


StanchionのIPアドレスとポートの構成



Riak CSノードが1つしかない場合、Stanchionはlocalhostからの要求をリッスンしているだけなので、Stanchionの設定を変更する必要はありません。Riak CSクラスターに多数のノードがある場合は、Stanchionが他のノードからの要求をリッスンするIPアドレスとポートを設定する必要があります。リスナー



パラメータを使用してIPアドレスを設定できます127.0.0.1をStanchionホストIPに置き換え、ポート8080をホストポートに 置き換えます:STANCHION.CONF







listener = 127.0.0.1:8080


APP.CONFIG



{stanchion, [
             {host, {"127.0.0.1", 8085}},
             %% Other configs
            ]}


IPアドレスの一致に関する注意



ここに入力するIPアドレスは、Riakの場合はriak.conf、RiakCSの場合はriak-cs.confのstanchion_hostパラメーターのIPアドレスと一致する必要があります。


SSLを使用する場合は、ssl.certfileパラメーターとssl.keyfileパラメーターがコメントアウトされて正しく構成されていないことを確認してください。



STANCHION.CONF



ssl.certfile = "./etc/cert.pem"
ssl.keyfile = "./etc/key.pem"


APP.CONFIG



{stanchion, [
             {ssl, [
                    {certfile, "./etc/cert.pem"},
                    {keyfile, "./etc/key.pem"}
                   ]},
             %% Other configs
            ]}


管理者アカウントの設定



管理者は、RiakCSコンポーネントを構成するときに作成されます。クラスターで使用されるすべての支柱に同じ権限を追加する必要があります。これは、/ etc / stanchionディレクトリにあるstanchion.confで構成されます。同じadmin.keyとadmin.secretSTANCHION.CONFを入力し



ます



admin.key = OUCXMB6I3HOZ6D0GWO2D
admin.secret = a58Mqd3qN-SqCoFIta58Mqd3qN7umE2hnunGag==


APP.CONFIG



{stanchion, [
           %% Admin user credentials
           {admin_key, "OUCXMB6I3HOZ6D0GWO2D"},
           {admin_secret, "a58Mqd3qN-SqCoFIta58Mqd3qN7umE2hnunGag=="},
           %% Other configs
          ]}


RiakKV情報の設定



実験のために単一のノードを実行している場合、またはRiak KVノードがローカルで実行されており、0.0.0.0でプロトコルバッファトラフィックをリッスンするように構成されている場合は、デフォルト設定で問題ありません。



それ以外の場合は、Stanchion構成ファイルでRiakホストのIPアドレスとポートを更新します。



STANCHION.CONF



riak_host = 127.0.0.1:8087


APP.CONFIG



{stanchion, [
             {riak_host, {"127.0.0.1", 8087}},
             %% Other configs
            ]}


RiakCSの負荷分散とプロキシ



画像




Riak CSを産業用に使用する場合は、Riak CSの後にロードバランサーまたはプロキシ、ソフトウェアまたはハードウェアをインストールすることを強くお勧めします。また、RiakCSをオープンネットワークインターフェイスに直接公開してはならないことにも注意してください。



Riak CSユーザーは、ロードバランサーまたはプロキシでRiakCSを使用して正常に報告します。共同ソリューションには、独自のハードウェアロードバランサー、クラウドベースのロードバランサーオプション(AmazonのElastic Load Balancerなど)、およびHAProxyやNginxなどのオープンソースソフトウェアソリューションが含まれます。



このガイドでは、HAProxyおよびNginxソースコード共有ソリューションについて簡単に説明し、Riakユーザーおよびエンジニアリングコミュニティから収集した構成と運用に関するアドバイスを提供します。



HAProxy



HAProxyは、HTTPおよびTCPアプリケーショントラフィックの負荷分散とプロキシ化のための高速で信頼性の高いソリューションです。



ユーザーは、多くの構成とシナリオでRiakCSと組み合わせてHAProxyを正常に使用したと報告しています。このセクションの詳細と構成例は、Riakエンジニアからのコメントに加えて、RiakCSコミュニティの上級ユーザー向けです。



構成例



次の例は、RiakCSインストールのロードバランサーとしてHAProxyを構成するための開始点です。



オープンファイルの



制限に関する注意次の構成例では、オペレーティングシステムのオープンファイルの制限は256,000を超える必要があります。さまざまなオペレーティングシステムの値の詳細な設定については、開いているファイルの制限についてドキュメントを確認してください。


CONFIG



global
    log 127.0.0.1     local0
    log 127.0.0.1     local1 notice
    maxconn           256000
    spread-checks     5
    daemon

defaults
    log               global
    option            dontlognull
    option            redispatch
    option            allbackups
    no option         httpclose
    retries           3
    maxconn           256000
    timeout connect   5000
    timeout client    5000
    timeout server    5000

frontend riak_cs
    bind              10.0.24.100:8080
    # Example bind for SSL termination
    # bind            10.0.24.100:8443 ssl crt /opt/local/haproxy/etc/data.pem
    mode              http
    option            httplog
    capture           request header Host len 64
    acl good_ips      src -f /opt/local/haproxy/etc/gip.lst
    block if          !good_ips
    use_backend       riak_cs_backend if good_ips

backend riak_cs_backend
    mode              http
    balance           roundrobin
    # Ping Riak CS to determine health
    option            httpchk GET /riak-cs/ping
    timeout connect 60s
    timeout http-request 60s
    server riak1 r1s01.example.com:8081 weight 1 maxconn 1024 check
    server riak2 r1s02.example.com:8081 weight 1 maxconn 1024 check
    server riak3 r1s03.example.com:8081 weight 1 maxconn 1024 check
    server riak4 r1s04.example.com:8081 weight 1 maxconn 1024 check
    server riak5 r1s05.example.com:8081 weight 1 maxconn 1024 check


上記の例は出発点と見なされ、進行中の作業であることに注意してください。


この構成を適用し、環境に合わせて変更する場合は注意が必要です。

例から注目に値する特定の構成の詳細は、SSLを使用するためのコメントアウトされたオプションです。HAProxyは、バージョン1.5以降、SSLを直接サポートしています。HAProxyインスタンスがOpenSSLサポートで構築されていることを確認してください。行のコメントを解除し、環境に合わせて変更することでSSLを有効にできます。



詳細については、HAProxyのドキュメントを参照してください



/ riak-cs / pingエンドポイントを介したRiakCSヘルスチェックオプションにも注意してください。このパラメーターは、負荷分散ラウンドロビン方式の一部として各RiakCSホストを検証するために必要です。



Nginx



何人かのユーザーが、NginxHTTPサーバーを使用してRiakCSの要求をプロキシすることに成功したと報告しています。参考までに、RiakCSへのアクセスを提供する例がここに含まれています。



構成例



以下は、RiakCSのフロントエンドプロキシとして機能するNginxの初期構成の例です。



CONFIG



upstream riak_cs_host {
  server  10.0.1.10:8080;
}

server {
  listen   80;
  server_name  _;
  access_log  /var/log/nginx/riak_cs.access.log;

  location / {
    proxy_set_header Host $http_host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_redirect off;

    proxy_connect_timeout      90;
    proxy_send_timeout         90;
    proxy_read_timeout         90;

    proxy_buffer_size          64k;  # If set to a smaller value,
                                     # nginx can complain with a
                                     # "headers too large" error

    proxy_buffers 8  64k;   # Increase from default of (8, 8k).
                            # If left to default with increased
                            # proxy_buffer_size, nginx complains
                            # that proxy_busy_buffers_size is too
                            # large.

    proxy_pass http://riak_cs_host;
  }
}


HTTP Host:ヘッダーが受信時にRiak CSに渡され、Riak CSバックエンドサーバーのホスト名またはアドレスに変換されないようにするにproxy_set_header Host $ http_hostディレクティブが必要であることに注意してください



さまざまな問題が発生する可能性があるため、proxy_passがフォワードスラッシュで終わってはならないことに注意することも重要です。



S3クライアントのセットアップ



画像




このチュートリアルでは、s3cmdをS3クライアントとして使用する方法を示します。クライアントのすべての機能を網羅しているわけではありませんが、構成を作成していくつかの基本的なコマンドを実行する方法を示します。

注:s3cmd署名バージョン



s3cmdバージョン1.5.0以降を使用している場合、s3cmdがデフォルトのAWS 3ではなくAWSバージョン2を使用するように、RiakCSクラスターを対象とする各コマンドに--signature-v2フラグを追加する必要があります。

初期設定



s3cmdをRiakCSと組み合わせて使用​​するには、RiakCSシステムとインターフェイスするようにユーティリティを構成する必要があります。1つの方法は、.s3cfgファイルを作成してホームディレクトリに保存することです。s3cmdに関連するコマンドを実行すると、ファイルの内容がデフォルトで読み取られます。または、-cフラグを使用して構成ファイルを指定することもできます例:



シェル



s3cmd -c /PATH/TO/CONFIG/FILE <command>


s3cmdを構成する別の方法は、s3cmd --configureを実行することです。これにより、対話型ツールが起動し、入力内容に基づいて構成ファイルが作成されます。



次のセクションでは、RiakCSとの通信を構成するために使用できる.s3cfgファイルの小さな例を示します。



ローカルで使用するためのサンプルs3cmd構成ファイル



この例の.s3cfg構成ファイルを使用して、ポート8080でローカルにs3cmdを使用してRiak CSと通信します(必要に応じて、Riak CSのインストールに固有の情報を含めることを忘れないでください)。



CONFIG



[default]
access_key = 8QON4KC7BMAYYBCEX5J+
bucket_location = US
cloudfront_host = cloudfront.amazonaws.com
cloudfront_resource = /2010-07-15/distribution
default_mime_type = binary/octet-stream
delete_removed = False
dry_run = False
enable_multipart = False
encoding = UTF-8
encrypt = False
follow_symlinks = False
force = False
get_continue = False
gpg_command = /usr/local/bin/gpg
gpg_decrypt = %(gpg_command)s -d --verbose --no-use-agent --batch --yes --passphrase-fd %(passphrase_fd)s -o %(output_file)s %(input_file)s
gpg_encrypt = %(gpg_command)s -c --verbose --no-use-agent --batch --yes --passphrase-fd %(passphrase_fd)s -o %(output_file)s %(input_file)s
gpg_passphrase = password
guess_mime_type = True
host_base = s3.amazonaws.com
host_bucket = %(bucket)s.s3.amazonaws.com
human_readable_sizes = False
list_md5 = False
log_target_prefix =
preserve_attrs = True
progress_meter = True
proxy_host = localhost
proxy_port = 8080
recursive = False
recv_chunk = 4096
reduced_redundancy = False
secret_key = rGyDLBi7clBuvrdrkFA6mAJkwJ3ApUVr4Pr9Aw==
send_chunk = 4096
simpledb_host = sdb.amazonaws.com
skip_existing = False
socket_timeout = 300
urlencoding_mode = normal
use_https = False
verbosity = WARNING
signature_v2 = True


本番環境で使用するためのサンプルs3cmd構成ファイル



この例の.s3cfg構成ファイルを使用して、実稼働システムでs3cmdを介してRiakCSと対話します。



CONFIG



[default]
access_key = EJ8IUJX9X0F2P9HAMIB0
bucket_location = US
cloudfront_host = cloudfront.amazonaws.com
cloudfront_resource = /2010-07-15/distribution
default_mime_type = binary/octet-stream
delete_removed = False
dry_run = False
enable_multipart = False
encoding = UTF-8
encrypt = False
follow_symlinks = False
force = False
get_continue = False
gpg_command = /usr/local/bin/gpg
gpg_decrypt = %(gpg_command)s -d --verbose --no-use-agent --batch --yes --passphrase-fd %(passphrase_fd)s -o %(output_file)s %(input_file)s
gpg_encrypt = %(gpg_command)s -c --verbose --no-use-agent --batch --yes --passphrase-fd %(passphrase_fd)s -o %(output_file)s %(input_file)s
gpg_passphrase = password
guess_mime_type = True
host_base = <YOUR DOMAIN HERE>
host_bucket = %(bucket)s.<YOUR DOMAIN HERE>
human_readable_sizes = False
list_md5 = False
log_target_prefix =
preserve_attrs = True
progress_meter = True
proxy_host =
proxy_port = 0
recursive = False
recv_chunk = 4096
reduced_redundancy = False
secret_key = XOY/9IFKVEDUl6Allrkj7oyH9XW+CANnFLEVuw==
send_chunk = 4096
simpledb_host = sdb.amazonaws.com
skip_existing = False
socket_timeout = 300
urlencoding_mode = normal
use_https = True
verbosity = WARNING
signature_v2 = True


ユーザー用にs3cmdクライアントを構成するには、access_keyとsecret_keyを変更する必要があります。



保管場所の構成



デフォルトでは、.3cfgファイルはストレージバックエンドとしてAmazonS3サービスを使用します。Riak CSシステムの場合は、ストレージシステムを指すように次の設定を変更します。



  • host_base-データストアへのドメイン名またはパスを指定します(例:data.example.com)
  • host_bucket-バケットの場所を指定します(例:my_cs_bucket.data.example.com)


クライアントでSSLを使用する



SSLを使用している場合は、use_httpsパラメーターTrueに設定ます



リンク



Riakクラウドストレージ。パート

1。RiakKVRiakクラウドストレージの構成パート

2。RiakCSRiakCloudStorageコンポーネントの構成パート3。支柱、プロキシおよび負荷分散、S3クライアント

オリジナルマニュアル。



All Articles