Redash를 Google Compute Engine에 설정
4449 단어 GoogleCloudPlatformgcpgceredash
환경
전제 조건
목표
절차
Redash의 가상 머신 이미지에서 가상 머신 설정
GCE 가상 머신 이미지를 만듭니다.
gcloud compute images create "redash-2-0-0" --source-uri gs://redash-images/redash.2.0.0.b2990.tar.gz
GCE 가상 머신을 시작합니다. 권장 사항은 n1-standard-1이지만 g1-small로 시작합니다.
리소스가 부족하면 나중에 확장합니다.
gcloud compute instances create redash \
--image redash-2-0-0 --scopes storage-ro,bigquery \
--machine-type g1-small --zone asia-east1-a
GCP 콘솔에서 방화벽 설정에서 HTTP 및 HTTPS 트래픽을 허용합니다.
특정 IP에서만 연결하려는 경우 사전에 고정 IP만 허용하는 네트워크 태그를 만들고 구성합니다.

외부 IP 주소 설정에서 유형을 "정적"으로 설정합니다.
Cloud DNS에서 도메인과 정적 IP를 매핑합니다.
Let's Encrypt로 HTTPS화
Let's Encrypt 클라이언트 certbot을 설치합니다.
wget https://dl.eff.org/certbot-auto
일시적으로 nginx 설정을 기본값으로 되돌립니다.
sudo rm /etc/nginx/sites-enabled/redash
sudo ln -s /etc/nginx/sites-available/default /etc/nginx/sites-available/
certbot에서 인증서를 만듭니다.
./certbot-auto certonly --webroot -w /var/www/html -d {自身のドメイン}
nginx 설정을 변경합니다.
upstream redash_servers {
server 127.0.0.1:5000;
}
server {
listen 80;
# Allow accessing /ping without https. Useful when placing behind load balancer.
location /ping {
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://redash_servers;
}
location / {
# Enforce SSL.
return 301 https://$host$request_uri;
}
}
server {
listen 443 ssl;
# Make sure to set paths to your certificate .pem and .key files.
ssl on;
ssl_certificate /etc/letsencrypt/live/{自身のドメイン}/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/{自身のドメイン}/privkey.pem;
# Specifies that we don't want to use SSLv2 (insecure) or SSLv3 (exploitable)
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
# Uses the server's ciphers rather than the client's
ssl_prefer_server_ciphers on;
# Specifies which ciphers are okay and which are not okay. List taken from https://raymii.org/s/tutorials/Strong_SSL_Security_On_nginx.html
ssl_ciphers "EECDH+AESGCM:EDH+AESGCM:ECDHE-RSA-AES128-GCM-SHA256:AES256+EECDH:DHE-RSA-AES128-GCM-SHA256:AES256+EDH:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4";
access_log /var/log/nginx/redash.access.log;
gzip on;
gzip_types *;
gzip_proxied any;
location / {
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://redash_servers;
proxy_redirect off;
}
}
nginx의 설정을 바탕으로 되돌린다.
sudo rm /etc/nginx/sites-enabled/default
sudo ln -s /etc/nginx/sites-available/redash /etc/nginx/sites-available/
nginx를 다시 시작합니다.
Google 인증 사용
Google의 클라이언트 ID와 클라이언트 비밀을 환경 변수로 설정합니다.
/opt/redash/.env로 설정하면 된다.
export REDASH_GOOGLE_CLIENT_ID=""
export REDASH_GOOGLE_CLIENT_SECRET=""
도메인을 설정합니다.
cd /opt/redash/current
sudo -u redash bin/run ./manage.py org set_google_apps_domains {自身のドメイン}
참고
gcloud compute images create "redash-2-0-0" --source-uri gs://redash-images/redash.2.0.0.b2990.tar.gz
gcloud compute instances create redash \
--image redash-2-0-0 --scopes storage-ro,bigquery \
--machine-type g1-small --zone asia-east1-a
wget https://dl.eff.org/certbot-auto
sudo rm /etc/nginx/sites-enabled/redash
sudo ln -s /etc/nginx/sites-available/default /etc/nginx/sites-available/
./certbot-auto certonly --webroot -w /var/www/html -d {自身のドメイン}
upstream redash_servers {
server 127.0.0.1:5000;
}
server {
listen 80;
# Allow accessing /ping without https. Useful when placing behind load balancer.
location /ping {
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://redash_servers;
}
location / {
# Enforce SSL.
return 301 https://$host$request_uri;
}
}
server {
listen 443 ssl;
# Make sure to set paths to your certificate .pem and .key files.
ssl on;
ssl_certificate /etc/letsencrypt/live/{自身のドメイン}/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/{自身のドメイン}/privkey.pem;
# Specifies that we don't want to use SSLv2 (insecure) or SSLv3 (exploitable)
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
# Uses the server's ciphers rather than the client's
ssl_prefer_server_ciphers on;
# Specifies which ciphers are okay and which are not okay. List taken from https://raymii.org/s/tutorials/Strong_SSL_Security_On_nginx.html
ssl_ciphers "EECDH+AESGCM:EDH+AESGCM:ECDHE-RSA-AES128-GCM-SHA256:AES256+EECDH:DHE-RSA-AES128-GCM-SHA256:AES256+EDH:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4";
access_log /var/log/nginx/redash.access.log;
gzip on;
gzip_types *;
gzip_proxied any;
location / {
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://redash_servers;
proxy_redirect off;
}
}
sudo rm /etc/nginx/sites-enabled/default
sudo ln -s /etc/nginx/sites-available/redash /etc/nginx/sites-available/
export REDASH_GOOGLE_CLIENT_ID=""
export REDASH_GOOGLE_CLIENT_SECRET=""
cd /opt/redash/current
sudo -u redash bin/run ./manage.py org set_google_apps_domains {自身のドメイン}
Reference
이 문제에 관하여(Redash를 Google Compute Engine에 설정), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/t-oi/items/6fd670b89ed71a7928d4텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)