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 用のカスタム コンテナ イメージの作成の詳細については、コンテナ イメージをカスタマイズするをご覧ください。