サウザーのGCPチャレンジ

GCPに関した記事を書いていきます

GCPで仮想サーバを作ってみた

sshキー作成(必須ではない)

以下を参考に行った。aws、azrureより面倒である。(無理にssh接続する必要はない。ブラウザアクセスならすぐできる)

秘密鍵作成

ssh-keygen -t rsa -b 4096 -C "XXXXX@gmail.com"

使っているsshフォルダに秘密鍵と公開書きを保存する。既存のファイルを上書きしないように注意

サーバへの公開鍵配布設定

参考 qiita.com

Compute Engine -> メタデータ -> SSH 認証鍵 公開鍵を入力

これでインスタンスに自動で配布される。サーバの編集画面では表示されていない。 サーバに個別に設定するときは、サーバの編集画面で設定する必要がある。(これは面倒なので個人使用ではメタデータで設定しておけばよい)


仮想ネットワーク(VPC)の作成

今回は作成しない。サーバ作成時、デフォルトではdefaultというのVPCを使うのだろうが、サーバ作成時にどこで指定しているかわからなかった

仮想サーバの作成





※ubuntu23では手順通りでは動かなったのでやめた。(少し修正すればできるであろう)

追記

サーバ作成画面にVPCを設定する項目が下の方にあった。今回は設定しないが、デフォルトのdefaultというVPCになる。

サーバにログイン

sshのconfigも設定しておく

# C:\Users\XXXX\.ssh\config
host 34.85.44.234 # 使っているVMのIPにする
  User XXXX # 多分アカウント名と一致。インスタンスの画面に表示されている
  IdentityFile ~/.ssh/id_rsa_gcp
  StrictHostKeyChecking no
  UserKnownHostsFile=/dev/null

サーバにログインする。IPはインスタンスの画面に表示されている

PS C:\Users\XXXX\gcp> ssh 34.85.44.234
Warning: Permanently added '34.85.44.234' (ED25519) to the list of known hosts.
Linux instance-20240223-055342 6.1.0-18-cloud-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.76-1 (2024-02-01) x86_64

仮想サーバ上にchatアプリのセットアップ

# 全パッケージアップデート
sudo apt update -y

# nodejs(npm)インストール
curl -fsSL https://deb.nodesource.com/setup_21.x | sudo -E bash - &&\
sudo apt-get install -y nodejs -y

# その他パッケージのインストール
sudo apt-get install git nginx -y


# npmパッケージのインストール
git clone https://github.com/socketio/chat-example.git
cd  ~/chat-example
sudo npm install express@4

# 以前は自動でインストールされた気がするが、今回はなかったので追加
sudo npm install socket.io @socket.io/cluster-adapter sqlite3 sqlite

sudo tee /etc/systemd/system/chat-example.service << EOT
[Unit]
Description=chat-example
After=network.target

[Service]
Type=simple
ExecStart=/usr/bin/node /home/tmoritoki0227/chat-example/index.js
Restart=always
WorkingDirectory=/home/tmoritoki0227/chat-example

[Install]
WantedBy=multi-user.target
EOT

sudo systemctl restart chat-example
sudo systemctl status chat-example

sudo tee /etc/nginx/conf.d/chat-example.conf << EOT
server {
    listen       8080;
    server_name  localhost;

    # ポート8080で受けて、ローカルのポート3000に飛ばしてくださいと設定されています。
    location / {
        proxy_pass http://127.0.0.1:3000;
    }
}
EOT

sudo systemctl restart nginx.service
sudo systemctl status nginx.service

※古いnodejsとnpmだと動かなった。azureの方の手順は今は動かないかもしれない

ポート開放

このアプリは8080をつかっているので、サーバに8080をアクセスできるようにする必要がある

Google Cloud Platformのファイアウォール設定方法 | 85's life

この資料にとおりに8080開放するルール「default-allow-8080」を作り、サーバ編集画面で「use-8080」を「ネットワーク タグ」で設定してあげる。

ブラウザでアクセス

http://34.85.44.234:8080/

IPは自分の外部IPに読み替えてね。以下のような画面が表示されればOK。チャットアプリなので何か入力してみよう

作成したサーバの削除

Google Cloud 認定資格 Cloud Digital Leader の合格方法(トップページ)

目的

前々からgcpの勉強もしたかったが、教材が充実してなさそうにしてたので後回しにしていた。 gcpもやれるようになりたかったので勉強した。

GCPを試した

tmoritoki0227.hatenablog.com

勉強時間

3週間もあれば十分である。時間的には20H~30Hといったところ。

勉強教材

書籍

図解即戦力 Google Cloudのしくみと技術がこれ1冊でしっかりわかる教科書
これを買ったが、これは試験範囲と完全にあっているわけではないので、さらっと目を通す程度。索引が弱いのでわりと使えないので模擬試験で登場したワードがどこのページに書いてあるのかわからないのだ。

Udemy

Google Cloud 認定資格 Cloud Digital Leader 模擬問題集

この問題集しか見てないが、この問題集だけで十分である。値段も2400円で安い。セールだと1200円になる。
日本語がやや変なところがありますが、本番試験もやや変です。ここで慣れておきましょう

公式の模擬試験

やらなくていいです。udemyの模擬試験で十分です

勉強方法

  • gcpにアカウント開設。仮想マシンを作ってみる。これで2,3問解ける知識がつきます。アカウントの開設方法は省略しますので、ネットを検索してね。なおアカウント開設は必須ではないです。勉強時間にも含まれていません。


そして

  • 購入したudemyの模擬試験をすべて解く。
  • 不正解の問題をノートにまとめる。正解の選択肢に出てくるワードだけ覚えばよい。不正解の選択肢に出てくるワードは覚えなくて大丈夫。本来なら不正解の理由を覚えることも大事なのですが、この試験はそこまでしなくても合格可能だと思う。模擬試験や書籍ではたくさんのサービスが出てきますが、本試験に登場するのは一握りです。なので正解のものを優先して覚えることにしましょう。
  • ノートを暗記(1日1回は目を通す)
  • 購入した書籍を読む。模擬試験で登場したワードに関連したところだけ読めばよい。この本は読まなくても合格は可能である。私は2周さらっと読みました。

各模擬試験が70%以上の正解率となるまで上記を繰り返す。そのうち問題と解答を覚えてしまうのだが、この試験においてはそれで大丈夫である。私は99%になりました。 模擬試験は大体200問ある。なので200個GCPの知識を覚えれば合格の道が開ける。

本試験感想

  • 簡単だった。模擬試験をやっていれば落ちることは不可能と言えるぐらいです。
  • 問題の構成は基本的には選択式で、1つだけ正解を選ぶ形式です。awsとazureは複数正解を選ぶ形式が結構あったと思います。
  • aws,azureを勉強していれば数問解ける問題はあります。
  • 試験完了後、画面に合否は出ていなかったと思われる。Google Cloud Webassessor にログインすると合格と表示されていた。合格証は数日後にメールされるらしい。
  • 勉強方法が確立していれば10Hで合格するかもしれない

受験方法

ここから申し込む。大体15000円ぐらい。

cloud.google.com

  • 受験日:2024/1/21

最後に

これでaws,azure,gcpの初級資格はすべて取得できた。 そしてgcpでもインフラを構築できる自信はついた。aws,azureとサービス名が違うができることは同じ。機械学習のサービスが多いという印象は持った。gcpはここに力を入れているのかもしれない。 次の資格をどうするか悩んでいるが、もうクラウドの初級資格がない気がしているので少し困っている。浅い知識を幅広くつけていきたい。