Redash를 Google Compute Engine에 설정

Redash를 Google Compute Engine에 설정하는 단계를 요약했습니다.

환경


  • Google Compute Engine
  • Redash.2.0.0
  • Let's Encrypt

  • 전제 조건


  • GCP 프로젝트가 생성되었습니다
  • 도메인을 검색할 수 있음

  • 목표


  • Redash에 Google 인증으로 로그인 할 수 있습니다
  • HTTPS화

  • 절차



    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 {自身のドメイン}
    

    참고


  • htps : // Reda sh. 이오 / 헬프 / 오펜 - r / 세츠 p # 오 ぇ - m 뿌테 - 엔기
  • 좋은 웹페이지 즐겨찾기