Cloud ShellのホームディレクトリをGCSにアーカイブする

記事タイトルとURLをコピーする

G-gen の藤岡です。当記事では、Google Cloud(旧称 GCP)の Cloud Shell の $HOME ディレクトリのアーカイブを Cloud Storage へアップロードし、Cloud Shell を初期化する方法について紹介します。

サービスの概要

Cloud Shell

Cloud Shell は Google Cloud コンソールから利用できる、オンラインの開発および運用環境です。 利用者は、Debian ベースの Linux OS である Compute Engine VM を一時的にプロビジョニングしたものを使用します。

gcloud CLI や Git 等のツールや、Java、Go、Python 等の言語がプレインストールされています。なお、Cloud Shell は 無料 で利用できます。

永続ディスクストレージ

Cloud Shell にプロビジョニングされた VM には $HOME ディレクトリに 5 GB の永続ディスクストレージがマウントされます。 ユーザーごとに永続ディスクストレージが割り当たるため、他のユーザーからアクセスすることはできません。

120 日間 Cloud Shell にアクセスがないと、$HOME ディレクトリが削除されます。削除前に以下のようなメールが届きます。

送信元:noreply-cloudshell@google.com
件名: Google Cloud Shell ホーム ディレクトリの削除通知

メール内容

Cloud Storage

Cloud Storage (以下 GCS) は、容量無制限・低価格・堅牢なオブジェクトストレージサービスです。詳細は以下の記事をご参照ください。 blog.g-gen.co.jp

実施内容

事前確認

Cloud Shell の初期化前の容量を確認します。

# 設定の確認
fujioka@cloudshell:~ (xxxx)$ gcloud config configurations list
NAME: cloudshell-xxxx
IS_ACTIVE: True
ACCOUNT:
PROJECT: xxxx
COMPUTE_DEFAULT_ZONE:
COMPUTE_DEFAULT_REGION:
fujioka@cloudshell:~ (xxxx)$

# 容量確認
fujioka@cloudshell:~ (xxxx)$ df -h
Filesystem                         Size  Used Avail Use% Mounted on
overlay                             60G   47G   14G  78% /
tmpfs                               64M     0   64M   0% /dev
/dev/disk/by-id/google-home-part1  4.8G  1.2G  3.4G  27% /home
/dev/sda1                           60G   47G   14G  78% /root
/dev/root                          2.0G  999M  959M  52% /usr/lib/modules
shm                                 64M     0   64M   0% /dev/shm
tmpfs                              3.2G  1.3M  3.2G   1% /google/host/var/run
fujioka@cloudshell:~ (xxxx)$

アーカイブの作成

Cloud Shell の $HOME のアーカイブを作成します。

# アーカイブの作成
fujioka@cloudshell:~ (xxxx)$ tar -czvf backup.tar.gz $HOME
...
tar: /home/fujioka: file changed as we read it
fujioka@cloudshell:~ (xxxx)$

# アーカイブが作成されたことを確認
fujioka@cloudshell:~ (xxxx)$ ls -l
total 335832
...
-rw-r--r-- 1 fujioka fujioka 343831350 Apr  5 12:03 backup.tar.gz
...
fujioka@cloudshell:~ (xxxx6)$

GCS にアップロード

作成した backup.tar.gz を GCS にアップロードします。

# バケットの作成
fujioka@cloudshell:~ (xxxx)$ gcloud storage buckets create gs://cloudshell-home-backup
Creating gs://cloudshell-home-backup/...
fujioka@cloudshell:~ (xxxx)$

# バケットの確認
fujioka@cloudshell:~ (xxxx)$ gcloud storage ls
gs://cloudshell-home-backup/
fujioka@cloudshell:~ (xxxx)$

# オブジェクトのアップロード
fujioka@cloudshell:~ (xxxx)$ gcloud storage cp backup.tar.gz gs://cloudshell-home-backup
...

  Completed files 1/1 | 327.9MiB/327.9MiB

Average throughput: 199.9MiB/s
fujioka@cloudshell:~ (xxxx)$

# オブジェクトの確認
fujioka@cloudshell:~ (xxxx)$ gcloud storage ls --recursive gs://cloudshell-home-backup/*
gs://cloudshell-home-backup/backup.tar.gz
fujioka@cloudshell:~ (xxxx)$

Cloud Shell の初期化

Cloud Shell を初期化します。

# ホーム ディレクトリからすべてのファイルを削除
fujioka@cloudshell:~ (xxxx)$ sudo rm -rf $HOME
-bash: history: /home/fujioka/.bash_history: cannot create: No such file or directory
fujioka@cloudshell:~ (xxxx)$

Cloud Shell のメニューで [さらに表示] > [再起動] をクリックします。

再起動①

任意の理由にチェックを入れ、[再起動] をクリックします。

再起動②

再接続をすると、新しい VM がプロビジョニングされ /home の使用可能な容量も増えていることが確認できます。

fujioka@cloudshell:~ (xxxx)$ df -h
Filesystem                         Size  Used Avail Use% Mounted on
overlay                             60G   47G   14G  78% /
tmpfs                               64M     0   64M   0% /dev
/dev/disk/by-id/google-home-part1  4.8G   68K  4.6G   1% /home
/dev/sda1                           60G   47G   14G  78% /root
/dev/root                          2.0G  999M  959M  52% /usr/lib/modules
shm                                 64M     0   64M   0% /dev/shm
tmpfs                              3.2G  1.3M  3.2G   1% /google/host/var/run
fujioka@cloudshell:~ (xxxx)$

藤岡 里美 (記事一覧)

クラウドソリューション部

数年前までチキン売ったりドレスショップで働いてました!2022年9月 G-gen にジョイン。ハイキューの映画を4回は見に行きたい。

Google Cloud All Certifications Engineer / Google Cloud Partner Top Engineer 2024