【Google Cloud】Cloud SDKのインストーラが途中で止まる問題について

# はじめに
Cloud SDKとは、Google Cloudのプロジェクトやサービスにアクセスして操作するためのコマンドラインツールです。

Cloud SDKを会社で使用しているPCにインストールしようとした際に、
PCに設定されている社内プロキシが原因でインストールが途中で止まるといった事象が発生しました。
事象が発生した原因や著者が実施した対処内容について、今回の記事にまとめてみました。

# 環境
- OS：Windows 10
- Python：3.8.5

# インストール
[Cloud SDK のインストールに関するドキュメント](https://cloud.google.com/sdk/docs/install)が公開されているので、
公式ドキュメントに従ってインストールします。


Cloud SDKを使用できるようにするには、大まかな流れで下記の作業を実施します。
1. PowerShellターミナルを起動し、PowerShellコマンドを実行する。
2. インストーラのガイドに則り、Cloud SDKをインストールする。
3. Cloud SDKを起動し、プロジェクト情報やリージョン、ゾーン等の設定を行う。

# つまづいた箇所
上記の手順「1. PowerShellターミナルを起動し、PowerShellコマンドを実行する。」を行い、
Cloud SDKのインストーラを起動する所までは実施できました。
![01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2646497/c18db24c-686f-0211-3f0a-103c6453086e.png)

インストーラのガイドに則りインストール内容の設定を行い、最後に「install」ボタンをクリックしてインストールを開始します。
ここまで順調に進んでいたかと思われましたが、インストール中に問題が発生しました。

![06-1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2646497/7b797fea-7768-665a-9cc3-4b1b18293c14.png)
上記の画面はCloud SDKインストール中の画面ですが、
プログレスバーが8～9割の所で進行がピタリと止まってしまいました。

「Show details」ボタンをクリックすると、インストール内部で行われている詳細な内容を確認できます。

![06-2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2646497/63a37348-0ce9-709b-57cf-3ddddbcb40aa.png)
Cloud CLIのコンポーネントをダウンロードするところで処理が止まっているようです。

![07.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2646497/f29fdd98-f997-0ef7-1455-58c0123cedbe.png)
コンポーネントのダウンロード先に「Cloud SDK」というフォルダが作成されていましたが、
フォルダの中にはダウンロードファイルはありませんでした。

始めはインストールに時間が掛かっているだけだと思い、半日ほど放置していましたが、
これ以上インストールが進むことはありませんでした。
痺れを切らし、タスクマネージャーでインストーラを強制終了しました。

# 原因
今回の事象は、社内プロキシが設定された会社PCでインストールを行った際に発生しました。
プロキシが設定されていない自宅PCでも事象が発生するのか気になったため、自宅PCで同様の作業を実施してみました。
結果、自宅PCの場合は途中で止まることなく正常にインストールできました。

ここで初めて、Cloud SDKインストーラ内部で行われているダウンロード処理がプロキシにより妨げられている可能性に気が付きました。

Cloud SDKインストールのドキュメントを再度確認すると、
![doc_01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2646497/3491f1f4-64af-b77e-54b0-e64cb31a6886.png)
![doc_02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2646497/7f4014ca-6584-eb23-1102-cf23435f2140.png)
今回の事象のことが記載されていました...
ドキュメントを読み進めると、プロキシやファイアウォールが設定された環境下でのCloud SDKのインストール手順が記載されているため、手順に則りインストールしてみます。

# 対処内容
上記のドキュメントを参考に「自己完結型のバージョニングされたアーカイブ」でCloud SDKをインストールすることにしました。

[バージョニングされたアーカイブからのインストール](https://cloud.google.com/sdk/docs/downloads-versioned-archives)からCloud SDKのパッケージをダウンロードできます。
インストール先の環境に合わせて、該当するパッケージをダウンロードします。
今回は「Windows 64 ビット（x86_64）」のパッケージをダウンロードしてみました。
![archive_01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2646497/f22b9a64-f66d-77f5-9f72-224b5edb8a88.png)

ダウンロードしたzipファイルを解凍すると、中に「google-cloud-sdk」というフォルダがあるので、このフォルダを任意の場所に配置します。

コマンドクライアントから「google-cloud-sdk」フォルダ内の「install.bat」を実行し、
ガイドに従ってCloud SDKのインストールを行います。
![archive_02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2646497/f0ede07a-838d-72b8-6924-f7c307360436.png)

インストール後、「gcloud init」を実行してCloud SDKの初期化を行います。
![archive_04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2646497/462df936-a184-a001-d1ec-04eb0d462bbb.png)

Cloud SDKの初期化が完了したら、「gcloud auth list」コマンドを実行し、
Google Cloudの認証済みアカウントを確認してみます。
![gcloud_auth_list.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2646497/869b31e0-14f3-be51-9d22-b71f7cf3e4f4.png)
認証アカウントが表示されました。
Cloud SDKが問題なくインストール・動作していることを確認できました。


# おわりに
最初この問題が発生した時、下記が原因だと思い込み調査していました。
- 一部コンポーネントのダウンロードに時間がかかっているだけで、しばらくすれば完了する
- ダウンロード先フォルダの権限によりコンポーネントが保存できていない
- 使用しているPythonのバージョンがCloud SDKインストーラとの相性が悪い

しかし、この問題に関する情報はGoogleの公式ドキュメントの序盤に記載されていて、
著者がちゃんとドキュメントを読んでいれば時間をかけずに対処できたかもしれない内容でした。

ドキュメントをちゃんと読むことは大事なんだなと、反省しました。