開発環境、Staging環境などでUnity AssetをIP制限かけながら配布したいを解決!
今までGCEでInstance立てて、nginxでHostしてPersistent Diskなんかで直接配布してたんだけど
本番はHTTP Load Balancer + Backend Bucketでやりたい・・・
なにしろDeployの流れが変わるというめんどくささw
そこでみつけたgcsproxy
すんごい簡単!
便利!
本番で使うわけじゃないし多少オーバーヘッドあってもいいよね
何しろDeployの流れを統一できる!!!
Setup
Requirements
- GCEのInstance ScopeにGCS許可が入ってること
- goがbuildこと
- gcsproxy
- nginx
- Firewall設定
build gcsproxy
goenvとかGOPATHとか説明してると長くなっちゃうので・・・
適当にどうぞ!
gcsproxy 起動方法
こんな感じ
gcsproxy -b 127.0.0.1:8090
[IP:Port]なんだけど8080, 8081とかは使ってたりすることあるんでここは
かぶらないように適当に
ただしnginxのconfigに合わせる必要があるのでそこは気がついといてください!
実際の利用の際には、InitScript書くかsystemdのUnitFile書いて下さい。
nginx config
以下一部
upstream gcsproxy {
server '127.0.0.1:8090';
}
server {
server_name _;
listen 80;
server_tokens off;
access_log /var/log/nginx/access.log main;
error_log /var/log/nginx/error.log error;
# Limit Request Methods to GET|HEAD|PURGE
# 変なことしないなら無くてもいい
if ( $request_method !~ "GET|HEAD|PURGE" ) {
return 405;
}
location / {
proxy_pass http://gcsproxy$uri;
}
}
cache-controlとかは必要あれば入れてください。
あとはterraformとかなんでもいいけど
Google Developer ConsoleでFirewallを設定するだけ!
HTTPS化はHTTP Load Balancerなど使うなりしてください!
株式会社grasys(グラシス)は、技術が好きで一緒に夢中になれる仲間を募集しています。
grasysは、大規模・高負荷・高集積・高密度なシステムを多く扱っているITインフラの会社です。Google Cloud (GCP)、Amazon Web Services (AWS)、Microsoft Azureの最先端技術を活用してクラウドインフラやデータ分析基盤など、ITシステムの重要な基盤を設計・構築し、改善を続けながら運用しています。
お客様の課題解決をしながら技術を広げたい方、攻めのインフラ技術を習得したい方、とことん技術を追求したい方にとって素晴らしい環境が、grasysにはあります。
お気軽にご連絡ください。