Penyimpanan Cloud Riak. Bagian 3. Stanchion, Proxy dan Load Balancing, Klien S3

gambar


Pada artikel ini, kami akan menyelesaikan konfigurasi komponen-komponen sistem Riak Cloud Storage.



Artikel ini adalah penyelesaian dari serangkaian terjemahan gratis dari manual resmi untuk sistem Riak CS 2.1.1.

Bagian 1. Menyiapkan Riak KV

Bagian 2. Menyiapkan komponen Riak CS



Menyiapkan Stanchion



Anda harus menggunakan satu dan hanya satu node Stanchion di cluster Anda. Semua node Riak CS di cluster ini harus dikonfigurasi untuk berkomunikasi dengan node Stanchion sehingga cluster dapat melacak dan merekonsiliasi operasi sebab akibat.



Semua pengaturan yang digunakan oleh node Stanchion terdapat di file stanchion.conf, yang terletak di direktori / etc / stanchion pada kebanyakan sistem operasi.



Jika Anda meningkatkan dari versi sebelum Riak CS 2.0.0 - ketika stanchion.conf dan riak-cs.conf diperkenalkan - Anda masih dapat menggunakan file konfigurasi app.config yang lama. Contoh di bawah ini akan sama.



STANCHION.CONF



configuration.name = value


APP.CONFIG



{stanchion, [
             %% Configs here
            ]}


Mengonfigurasi alamat IP dan port untuk Stanchion



Jika Anda hanya memiliki satu node Riak CS, Anda tidak perlu mengubah pengaturan Stanchion, karena Stanchion hanya mendengarkan permintaan dari host lokal. Jika cluster Riak CS memiliki banyak node, maka Anda harus mengatur alamat IP dan port tempat Stanchion akan mendengarkan permintaan dari node lain.



Anda dapat menyetel alamat IP menggunakan parameter pendengar . Ganti 127.0.0.1 dengan alamat IP node Stanchion dan port 8080 dengan port node:



STANCHION.CONF



listener = 127.0.0.1:8080


APP.CONFIG



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


Catatan tentang pencocokan alamat



IP Alamat IP yang Anda masukkan di sini harus cocok dengan alamat IP pada parameter stanchion_host di riak.conf untuk Riak dan riak-cs.conf untuk Riak CS.


Jika Anda ingin menggunakan SSL, pastikan parameter ssl.certfile dan ssl.keyfile tidak diberi komentar dan dikonfigurasi dengan benar.



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
            ]}


Menyiapkan akun administrator



Administrator dibuat saat mengkonfigurasi komponen Riak CS. Izin yang sama harus ditambahkan untuk setiap Stanchion yang digunakan di cluster. Ini dikonfigurasi di stanchion.conf, yang terletak di direktori / etc / stanchion. Masukkan admin.key dan admin.secret



STANCHION.CONF yang sama



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


APP.CONFIG



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


Menyiapkan informasi Riak KV



Jika Anda menjalankan satu node untuk eksperimen, atau jika node Riak KV berjalan secara lokal dan dikonfigurasi untuk mendengarkan lalu lintas buffer protokol pada 0.0.0.0, maka pengaturan default akan baik-baik saja.



Jika tidak, perbarui alamat IP dan port untuk host Riak di file konfigurasi Stanchion.



STANCHION.CONF



riak_host = 127.0.0.1:8087


APP.CONFIG



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


Load Balancing dan Proxy untuk Riak CS



gambar




Jika Anda berencana menggunakan Riak CS untuk keperluan industri, kami sangat menyarankan Anda untuk memasang penyeimbang beban atau proxy, perangkat lunak atau perangkat keras, setelah Riak CS. Juga perhatikan bahwa Anda tidak boleh secara langsung mengekspos Riak CS ke antarmuka jaringan terbuka.



Pengguna Riak CS melaporkan keberhasilan penggunaan Riak CS dengan load balancer atau proxy. Solusi kolaboratif mencakup penyeimbang beban perangkat keras berpemilik, opsi penyeimbang beban berbasis cloud seperti Amazon's Elastic Load Balancer, dan solusi perangkat lunak sumber terbuka seperti HAProxy dan Nginx.



Panduan ini mengulas secara singkat solusi berbagi kode sumber HAProxy dan Nginx dan menyediakan beberapa konfigurasi dan saran operasional yang dikumpulkan dari komunitas pengguna dan teknik Riak.



HAProxy



HAProxy adalah solusi cepat dan andal untuk load balancing dan proxy lalu lintas aplikasi HTTP dan TCP.



Para pengguna melaporkan penggunaan HAProxy yang berhasil dalam kombinasi dengan Riak CS dalam sejumlah konfigurasi dan skenario. Informasi lebih lanjut dan contoh konfigurasi untuk bagian ini adalah untuk pengguna tingkat lanjut di komunitas CS Riak, selain komentar dari para insinyur Riak.



Contoh Konfigurasi Contoh



berikut adalah titik awal untuk mengkonfigurasi HAProxy sebagai penyeimbang beban untuk instalasi Riak CS.



Catatan tentang



Batas File Terbuka Batas file terbuka sistem operasi harus lebih besar dari 256.000 untuk contoh konfigurasi berikut. Periksa dokumentasi untuk batas file terbuka untuk pengaturan rinci nilai untuk sistem operasi yang berbeda.


KONFIG



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


Harap dicatat bahwa contoh di atas dianggap sebagai titik awal dan sedang dalam proses.


Anda harus berhati-hati saat menerapkan konfigurasi ini dan mengubahnya agar sesuai dengan lingkungan Anda.

Detail konfigurasi spesifik yang perlu diperhatikan dari contoh ini adalah opsi yang diberi komentar untuk menggunakan SSL. HAProxy mendukung SSL secara langsung sejak versi 1.5. Pastikan instance HAProxy Anda dibuat dengan dukungan OpenSSL, Anda dapat mengaktifkan SSL dengan menghapus komentar pada baris dan memodifikasinya agar sesuai dengan lingkungan Anda.



Anda dapat menemukan informasi lebih lanjut di dokumentasi HAProxy .



Juga, perhatikan pilihan health check Riak CS melalui endpoint / riak-cs / ping. Parameter ini diperlukan untuk memvalidasi setiap host Riak CS sebagai bagian dari metode load balancing round robin.



Nginx



Beberapa pengguna telah melaporkan berhasil menggunakan server HTTP Nginx untuk permintaan proxy untuk Riak CS. Contoh yang menyediakan akses ke Riak CS disertakan di sini untuk referensi.



Contoh Konfigurasi



Di bawah ini adalah contoh konfigurasi awal untuk Nginx yang berfungsi sebagai proxy front-end untuk Riak CS.



KONFIGASI



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;
  }
}


Perhatikan bahwa direktif proxy_set_header Host $ http_host diperlukan untuk memastikan bahwa header HTTP Host: diteruskan ke Riak CS saat diterima, dan tidak diterjemahkan ke dalam nama host atau alamat server backend Riak CS.



Penting juga untuk diperhatikan bahwa proxy_pass tidak boleh diakhiri dengan garis miring, karena ini dapat menyebabkan berbagai masalah.



Pengaturan klien S3



gambar




Tutorial ini menunjukkan cara menggunakan s3cmd sebagai klien S3. Meskipun tidak mencakup semua fitur klien, ini akan menunjukkan kepada Anda cara membuat konfigurasi dan menjalankan beberapa perintah dasar.

Catatan: Versi Tanda Tangan s3cmd



Jika Anda menggunakan s3cmd versi 1.5.0 atau lebih tinggi, Anda perlu menambahkan tanda --signature-v2 untuk setiap perintah yang menargetkan cluster Riak CS sehingga s3cmd akan menggunakan AWS versi 2 dan bukan AWS 3 default.

Pengaturan awal



Untuk menggunakan s3cmd bersama dengan Riak CS, Anda harus mengkonfigurasi utilitas untuk berinteraksi dengan sistem Riak CS Anda. Salah satu caranya adalah dengan membuat file .s3cfg dan menyimpannya di direktori home Anda. Saat Anda menjalankan perintah apa pun yang terkait dengan s3cmd, konten file akan dibaca secara default. Alternatifnya, Anda dapat menentukan file konfigurasi menggunakan tanda -c . Contoh:



SHELL



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


Cara alternatif untuk mengkonfigurasi s3cmd adalah dengan menjalankan s3cmd --configure , yang akan meluncurkan alat interaktif dan membuat file konfigurasi berdasarkan apa yang Anda masukkan.



Di bagian selanjutnya, Anda akan menemukan contoh kecil dari file .s3cfg yang dapat digunakan untuk mengkonfigurasi komunikasi dengan Riak CS.



Contoh file konfigurasi s3cmd untuk penggunaan lokal



Gunakan contoh file konfigurasi .s3cfg ini untuk berkomunikasi dengan Riak CS secara lokal pada port 8080 dengan s3cmd (ingatlah untuk menyertakan informasi khusus untuk instalasi Riak CS Anda jika perlu).



KONFIGASI



[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


Contoh file konfigurasi s3cmd untuk digunakan dalam produksi



Gunakan contoh file konfigurasi .s3cfg ini untuk berinteraksi dengan Riak CS melalui s3cmd pada sistem produksi.



KONFIGASI



[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


Untuk mengkonfigurasi klien s3cmd untuk pengguna, Anda harus mengubah access_key dan secret_key.



Mengonfigurasi lokasi penyimpanan



Secara default, file .3cfg menggunakan layanan Amazon S3 sebagai backend penyimpanan. Untuk sistem Riak CS, ubah pengaturan berikut agar mengarah ke sistem penyimpanan Anda.



  • host_base - berikan nama domain atau jalur ke penyimpanan data Anda, misalnya data.example.com
  • host_bucket - Tentukan lokasi keranjang, misalnya my_cs_bucket.data.example.com


Menggunakan SSL di klien



Jika Anda menggunakan SSL, setel parameter use_https ke True .



Tautan



Penyimpanan Cloud Riak. Bagian 1. Mengonfigurasi

Penyimpanan Awan Riak KV Riak. Bagian 2. Mengonfigurasi komponen

Riak CS Riak Cloud Storage. Bagian 3. Stanchion, Proxy dan Load Balancing, Manual Asli Klien S3

.



All Articles