views4GCPのストレージサービスについてまとめてみた。システム開発本部所属です。設定GCPのファイアウォール設定プロキシサーバ経由でGCSを使ってみようまとめ専用線経由でGCSを使う方法GCSは世界中のどこからでもデータの保存と取得ができることが売りのサービスなので、インターネット経由でGCSののAPIにアクセスして利用することが前提になります。オンプレミスのネットワークとVPCが専用線でつながっていても、そのままではインターネット経由でのアクセスとなってしまい、せっかくの専用線接続を活かすことができません。オンプレミスのサーバやPCから専用線経由でGCSを使う方法として、ざっくり下記3つが考えられます。hostsを利用する3.プロキシサーバを利用する1.ゲートウェイ製品を導入するPanzuraのようなゲートウェイ製品を導入して利用する方法です。大規模なエンタープライズ向けのソリューションなので、SMBやNFSといったプロトコルを使えたり、高性能なキャッシュ機能を備えていたりと機能的な面は言うことないのですが、初期投資や運用設計などコスト的な面で導入までのハードルがなかなか高く、「ちょっとやってみよう」的な使い方は難しいです。hostsというものがあります。2019年5月現在ベータ版のサービスであり、既存のネットワーク設定に手を入れる必要があるため気軽に行うには影響範囲が大きく、まだおすすめができません。3.プロキシサーバを利用するこれが今回ご紹介する方法になります。Engine)でプロキシサーバを構築し、gsutilなどのツールからこのプロキシサーバ経由でGCSにアクセスします。専用線の利用料を考えないのであれば、他の2点と比べて・費用はGCEの利用料だけ・影響が出るのはプロキシサーバを使うように設定した環境だけというお手軽な方法ですので、気軽に試してみていただければと思います。プロキシサーバを作ってみようでは実際にプロキシサーバを作ってみましよう。以下のステップで進めていきます。VPNでつないで検証環境を用意しました。SDKを導入して、GCP上に構築したプロキシサーバを利用する設定を行います。最終的にgsutilコマンドラインツールを利用して、これらのサーバからVPNを経由してGCSを利用できているかを確認します。今回の構成では、プロキシサーバは外部IPアドレス経由でGCSのAPIにアクセスします。アクセスを使うと外部IPアドレスが無くてもGCSのAPIを利用することができますので、ご利用の環境にあわせてご利用いただければと思います。SDKを導入プロキシサーバ用GCEインスタンス作成GCPのVPC上に外部IPアドレスを持つCentOS7のGCEインスタンスを1台作成し、これをプロキシサーバとして使用します。複数人でプロキシサーバを使うのであれば、それに応じたサイジングが必要ですが、検証での利用であればn1-standard-1(1vCPU、3.75GBメモリ)に10GByteの永続ディスクで十分です。プロキシサーバの内部IPアドレスが変更されると都合が悪いので、予め静的内部IPアドレスを予約しておくと面倒がないです。以下、このインスタンスにSSHで接続して作業します。プロキシサーバsquidをインストールします。ついでにupdateもしておきましょう。設定squidをインストールしたら下記設定を行います。編集2.自動起動設定squidはインストールしただけでは使用できないので、環境にあわせてコンフィグファイルを編集します。指定箇所を編集してください。ご紹介する設定は、squidをデフォルトポート3128で利用するために最低限必要なものとなります。この記事ではsquidのパフォーマンスやセキュリティについては扱いませんので、興味のある方はGoogleで検索してみてください。/etc/squid/squid.conf・接続を許可するネットワークの設定AWSのサブネット(192.168.100.0/24)からのみプロキシサーバを利用できるように設定を追加します。試される場合は、ご利用の環境にあわせて設定してください。不要なネットワークはコメントアウトしておきます。192.168.100.0/24・接続先ポートの許可設定GCPはHTTPSで接続するのでSSL(443)以外はコメントアウトします。all」の行をコメントアウトします。all・ログファイルのフォーマット設定これは必須の設定ではないのですが、ログを見やすくするためにフォーマットを指定します。最後に下記行を追加してください。%st2.自動起動設定OSが起動したときにsquidのサービスも自動で起動するように設定します。squid設定がすべて完了したらsquidを起動します。手順は省略しますが、GCPのVPCへのInbound通信でプロキシサーバへの通信(TCP、ポート3128)が許可されるようにしておいてください。これを忘れると通信ができません。オンプレミス側(今回でいうとAWS)でもプロキシサーバへのOutbound通信(TCP、ポート3128)の許可が必要となりますので、通信を絞っている場合は設定をお願いします。プロキシサーバ経由でGCSを使ってみよう構築したプロキシサーバを使うよう設定を行い、gsutilコマンドでGCSのバケットにファイルをコピーしてみましょう。initコマンドで初期設定を行った環境が前提となります。SDKのインストールは下記サイトを参考にしてください。https://cloud.google.com/sdk/docs/https://cloud.google.com/storage/docs/boto-gsutilWindows、Linux共にgsutilのbotoファイルへプロキシサーバの設定を入れます。隠しファイルとして”.boto”というファイルがありますので、プロキシサーバのIPアドレスとポート情報を入れます。プロキシサーバの設定が終わったら、gsutilでGCSのバケットにファイルを転送してみましょう。以下の例では「proxy-test-samples」というGCSバケットに「testfile.bin」という10MByteのファイルをコピーしています。MiB.ファイルのコピーが終わったら、プロキシサーバでsquidのアクセスログを確認してみましょう。gsutiを実行したサーバからGoogleのAPIへの通信ログがあれば成功です。ディレクトリに隠しファイルとして”.boto”というファイルがありますので、プロキシサーバのIPアドレスとポート情報を入れます。”.boto”ファイルの編集が終わったら、設定を適用するため一度シェルに入り直してください。3128gsutilでファイルをコピーしてみます。こちらもファイルのコピーが終わったら、プロキシサーバでsquidのアクセスログを確認してみましょう。4584今回はgsutilツールで試していますが、プロキシを設定可能なツールであれば同様にご利用いただけるかと思います。まとめ今回はお手軽に専用線経由でGCSを利用する方法として、プロキシサーバを構築して使用する方法を紹介いたしました。実際に本番環境として使用するには、冗長性やパフォーマンスを意識した構成にしたりsquidのチューニングなどを行ったりと、いろいろな考慮が必要になるかと思いますが、Cloudのよいところは気軽に始められるところです。使ってみないとわからないことも多々ございますので、まずは最小構成で試してみていただき、ご利用の環境にあった構成を見つけていただければと思います。Platformのご利用について様々な技術支援を行っております。InterconnectProxyあわせて読みたいGCPのストレージサービスについてまとめてみた。