Cloud Workstations は、同じ VPC ネットワーク内にある Filestore ネットワーク ファイル システム(NFS)インスタンスをマウントできます。Filestore インスタンスには、複数の Cloud Workstations インスタンスから同時にアクセスできます。
Filestore の詳細については、Filestore のドキュメントをご覧ください。
始める前に
プロジェクトを作成する
ワークステーション プロジェクトで、Filestore API と Cloud Workstations API が有効になっていることを確認します。
gcloud
CLI をインストールして初期化します。gcloud
CLI を初期化するには、次のコマンドを実行します。gcloud init
必要なロール
ワークステーションの作成と更新に必要な権限を取得するには、ワークステーション プロジェクトに対する次の IAM ロールを付与するよう管理者に依頼してください。
-
Cloud Workstations 管理者の場合は、次のロールを付与するよう管理者に依頼してください。
Cloud Workstations 管理者(
roles/workstations.admin
)。 -
Filestore 管理者の場合は、次のロールを付与するよう管理者に依頼してください。
Filestore 編集者(
roles/file.editor
)。
ロールの付与の詳細については、アクセスの管理をご覧ください。
必要な権限は、カスタムロールや他の事前定義ロールから取得することもできます。
Filestore インスタンスを作成する
Filestore インスタンスをまだ作成していない場合は、次の gcloud
CLI filestore instances create
コマンドを使用して作成します。命名の詳細については、Filestore インスタンスの命名と、ファイル共有の命名をご覧ください。
gcloud filestore instances create INSTANCE_ID \
--file-share=name=FILE_SHARE_NAME,capacity=1TiB \
--tier=ENTERPRISE \
--network=name=NETWORK_NAME \
--region=LOCATION \
--project WORKSTATIONS_PROJECT_ID
以下を置き換えます。
INSTANCE_ID
: Filestore インスタンスを一意に識別する ID。FILE_SHARE_NAME
: Filestore インスタンスから提供されるディレクトリの名前(例:vol1
)。NETWORK_NAME
: インスタンスが接続されている VPC ネットワークの名前。Cloud Workstations クラスタのネットワーク(default
など)と一致する必要があります。LOCATION
: Filestore インスタンスのリージョン。 ワークステーション クラスタのリージョンと一致する必要があります。WORKSTATIONS_PROJECT_ID
: ワークステーション プロジェクトの ID。
Filestore インスタンスの IP アドレスを取得する
Filestore インスタンスを作成したら、filestore instances describe gcloud
CLI コマンドを使用して IP アドレスを取得します。
gcloud filestore instances describe INSTANCE_ID \
--region=LOCATION \
--project WORKSTATIONS_PROJECT_ID
以下を置き換えます。
INSTANCE_ID
: Filestore インスタンスを一意に識別する ID。LOCATION
: Filestore インスタンスのリージョン。 ワークステーション クラスタのリージョンと一致する必要があります。WORKSTATIONS_PROJECT_ID
: ワークステーション プロジェクトの ID。
このコマンドにより、IP アドレスが次の形式で出力されます。
...
networks:
- connectMode: DIRECT_PEERING
ipAddresses:
- FILESTORE_IP_ADDRESS
...
次の手順で必要になるため、FILESTORE_IP_ADDRESS
をメモしておきます。
ワークステーション クラスタを作成する
ワークステーション クラスタをまだ作成していない場合は、gcloud
CLI の clusters create
コマンドを使用して作成します。
gcloud workstations clusters create \
WORKSTATIONS_CLUSTER_NAME \
--network=NETWORK_NAME \
--region=LOCATION \
--project=WORKSTATIONS_PROJECT_ID
以下を置き換えます。
WORKSTATIONS_CLUSTER_NAME
: ワークステーション クラスタの名前。NETWORK_NAME
: Cloud Workstations インスタンスが接続されている VPC ネットワークの名前。Filestore インスタンスのネットワーク(default
など)と一致する必要があります。LOCATION
: ワークステーション クラスタのリージョン名。Filestore インスタンスのリージョンと一致する必要があります。WORKSTATIONS_PROJECT_ID
: ワークステーション プロジェクトの ID。
ワークステーション構成とワークステーションを作成する
Cloud Workstations の構成とワークステーション インスタンスをまだ作成していない場合は、ワークステーション構成を作成するとワークステーションを作成するをご覧ください。
ワークステーションで Filestore インスタンスをマウントする
Cloud Workstations インスタンスを起動した後、ターミナル ウィンドウに移動して、次のコマンドを実行して Filestore インスタンスをマウントします。
sudo rpcbind
mkdir -p FILE_SHARE_NAME
sudo mount -o rw,intr FILESTORE_IP_ADDRESS:/FILE_SHARE_NAME FILE_SHARE_NAME
以下を置き換えます。
FILE_SHARE_NAME
: Filestore インスタンスから提供されるディレクトリの名前(例:vol1
)。FILESTORE_IP_ADDRESS
: Filestore インスタンスの IP アドレス。
mount
コマンドが成功すると、ファイル共有パスに Filestore インスタンスの内容が表示されます。
Filestore インスタンスのマウントの詳細については、Compute Engine クライアントへのファイル共有のマウントをご覧ください。
Filestore の自動マウント用のカスタム コンテナ イメージを作成する
次の Dockerfile を使用して、起動時に Cloud Workstations 内の Filestore インスタンスを自動的にマウントするカスタム コンテナ イメージを作成できます。
FROM us-central1-docker.pkg.dev/cloud-workstations-images/predefined/code-oss:latest
RUN echo "#!/bin/bash\n\
sudo rpcbind\n\
sudo mkdir -p /home/user/FILE_SHARE_NAME\n\
sudo mount -o rw,intr FILESTORE_IP_ADDRESS:/FILE_SHARE_NAME /home/user/FILE_SHARE_NAME" | sudo tee -a /etc/workstation-startup.d/011_mount-filestore.sh
RUN sudo chmod +x /etc/workstation-startup.d/011_mount-filestore.sh
以下を置き換えます。
FILE_SHARE_NAME
: Filestore インスタンスから提供されるディレクトリの名前(例:vol1
)。FILESTORE_IP_ADDRESS
: Filestore インスタンスの IP アドレス。
Cloud Workstations のカスタム コンテナ イメージの作成の詳細については、コンテナ イメージをカスタマイズするをご覧ください。