☁️

【GCP】VMインスタンスの作成〜GCSとGCEをマウントするまでの備忘録

2022/01/11に公開

はじめに

GCSとGCEのマウント方法を備忘録として残す

やり方

Compute EngineでVMインスタンスを作成

Compute Engine

Google のインフラストラクチャで仮想マシンを作成して実行できる、安全性の高いカスタマイズ可能なコンピューティング サービスです。

VMインスタンス

物理的なコンピュータ上で起動され、稼動状態にある、ソフトウェアによって構築された仮想的なコンピュータのこと

VMインスタンスの作成

  • VMインスタンス名
  • リージョン
  • マシンタイプ
  • HTTP トラフィックを許可
    スクリーンショット 2022-01-10 23.34.37.png

VMインスタンスにApache・PHPをインストールする

VMインスタンスにSSH接続する

スクリーンショット 2022-01-10 23.36.52.png

Apache・PHPをインストールする

sudo su -

# インストール可能なパッケージの「一覧」を更新
apt-get update

# Apache2のインストール
apt-get -y install apache2

# PHPのインストール
apt-get -y install php

# Apache Webサーバを起動
systemctl start apache2

# 起動状態を確認
ps aux | grep apache
root      8188  0.0  1.9 196800 19784 ?        Ss   10:38   0:00 /usr/sbin/apache2 -k start
www-data  8190  0.0  0.8 196824  8320 ?        S    10:38   0:00 /usr/sbin/apache2 -k start
www-data  8191  0.0  0.8 196824  8320 ?        S    10:38   0:00 /usr/sbin/apache2 -k start
www-data  8192  0.0  0.8 196824  8320 ?        S    10:38   0:00 /usr/sbin/apache2 -k start
www-data  8193  0.0  0.8 196824  8320 ?        S    10:38   0:00 /usr/sbin/apache2 -k start
www-data  8194  0.0  0.8 196824  8320 ?        S    10:38   0:00 /usr/sbin/apache2 -k start
root      8358  0.0  0.0   4836   884 pts/0    R+   10:47   0:00 grep apache

VMインスタンスの外部IPにアクセスする

スクリーンショット 2022-01-10 23.43.16.png

Apacheのトップページが表示されていれば成功

スクリーンショット 2022-01-10 23.44.04.png

外部IPアドレスを静的IPにする

  • VMインスタンスを停止してから行う

  • 外部IPがエフェメラル(短期的な)になっているので静的IPアドレスを割り当てる

スクリーンショット 2022-01-10 23.50.31.png

VPCネットワーク > 外部IPアドレスから静的アドレスを予約する

スクリーンショット 2022-01-10 23.53.25.png

Cloud Storage > バケットを作成

あらゆる規模の企業に対応するオブジェクト ストレージ。保存できるデータ量に制限はありません。必要に応じて何度でもデータを取得できます。

  • バケット名
  • データの保存場所 > Region
  • ストレージクラス > Standard
  • アクセス制御 > きめ細かい管理

スクリーンショット 2022-01-10 23.59.30.png

ファイルをアップロードする

任意の画像ファイルをアップロード

スクリーンショット 2022-01-11 0.01.58.png

VMインスタンス > アクセススコープ > 各APIにアクセス権を設定

  • ストレージ > フル
    • GCEからGCSを読み取りにいけるようにします
      スクリーンショット 2022-01-11 0.04.51.png

GCEとGCSをマウントする

https://github.com/GoogleCloudPlatform/gcsfuse/blob/master/docs/installing.md

sudo su -
export GCSFUSE_REPO=gcsfuse-`lsb_release -c -s`
echo "deb http://packages.cloud.google.com/apt $GCSFUSE_REPO main" | sudo tee /etc/apt/sources.list.d/gcsfuse.list
curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
apt-get update
apt-get -y install gcsfuse
cd /var/www/html/
mkdir demo

# マウント
# gcsfuse バケット名 マウント先
# -o allow_other フォルダにアクセスする権限を他のユーザにも許可
gcsfuse -o allow_other sample-bucket-na ./demo/
2022/01/10 15:13:10.990979 Opening GCS connection...
2022/01/10 15:13:11.383307 Mounting file system "sample-bucket-na"...
2022/01/10 15:13:11.391102 File system has been successfully mounted.

# アップロードした画像がマウント先に表示されていれば成功です
ls demo/
Corporate_Sunrise.png  b551ca84-3de9-2e40-5ceb-c2d7f90bb8f6.png

マウントした画像を表示してみる

mv index.html index.php
vi index.php
index.php
<div>
 <img src="./demo/Corporate_Sunrise.png">
</div>

画像が表示できれば成功です

スクリーンショット 2022-01-11 0.17.09.png

VMインスタンス起動時に自動的にマウントするようにする

VMインスタンスを停止してから行う

カスタムメタデータに以下を設定する

startup-script:Linux 起動スクリプトに使用できるメタデータキー

#! /bin/bash
gcsfuse -o allow_other udemy-study-sample ./udemy-study/

スクリーンショット 2022-01-11 0.21.25.png

https://cloud.google.com/compute/docs/instances/startup-scripts/linux

さいごに

読んでいただきありがとうございます。
今回の記事はいかがでしたか?
・こういう記事が読みたい
・こういうところが良かった
・こうした方が良いのではないか
などなど、率直なご意見を募集しております。

GitHubで編集を提案

Discussion