GCEの基本操作

## 記事の内容

Udemyの[最速で学ぶ - Google Cloud Platform（GCP）入門完全攻略コース](https://www.udemy.com/course/google-cloud-platform-jp/)で
学んだ内容を再度実行する際のメモとして記録しています。


# Compute Engine

## インスタンスの作成

GCPのPJを立ち上げて`Compute Engine`を選択すると下記の画面に移動します。
`インスタンスを作成`から仮想マシンの設定をしていきます。

![2021-06-18_08h24_09.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/428239/38edc2e5-b59d-f1f0-d46e-0f4f23451230.png)

下記の画面で4つ設定を行っていきます。

- 名前
- リージョン
- ゾーン
- シリーズ

リージョンとマシン性能での料金は下記サイトで確認可能です。
https://cloud.google.com/compute/all-pricing?hl=JA

![2021-06-18_08h24_48.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/428239/f38af654-b38d-267c-9e64-c0eafd1fbefe.png)


続いてOSとファイアウォールの設定を行います。
ファイアウォールのチェック箇所はアプリとして公開する場合にはチェックをつけておきます。
OSの変更をクリックすると次の画面へ遷移します。

![2021-06-18_08h27_12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/428239/ef4bd49e-9d2b-958b-3c47-bcaae45a3f10.png)


今回はCentOS7を選択して行っていきます。

![2021-06-18_08h26_21.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/428239/71b26f4f-db55-f41c-f484-f13939897f06.png)

全ての設定が完了したら右上に料金が表示されるので
一度確認しておくとよいです。

![2021-06-18_08h27_25.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/428239/bbd5e2f8-c347-b86e-5bbc-7a9a2391eb2d.png)

作成ボタンを押してインスタンスを立ち上げます。

インタンスが作成されたら次からはSSHでの設定を行っています。
SSHとはSecure Shellの略で暗号化された通信を使って、コマンドでサーバーを操作するプロトコル(システム)です。


下記のSSHをクリックするとCUIが立ち上がるので、
そこでコマンド操作を行っていきます。

![2021-06-18_08h38_52.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/428239/a6dd45b6-fe40-3102-998d-e60242cdcd96.png)


## SSHでApacheの設定

まずはyumのアップデートを行います。
yumはYellowdog Updater Modifiedの略でパッケージ管理システムです。

sudoと付けると管理者権限での実行となります。

```bash:yumのアップデート
sudo yum update
```

```bash:yumのアップデート
sudo yum update -y
```

-yをつけると途中でダウンロードサイズの確認がで
[y/d/N]の選択で止まる箇所でyで進めてくれます。
dはdownload-onlyのことで、ダウンロードだけされてフェッチ(適用)はされないということです。


続いて下記のコマンドを順に実行してApach環境を作成します。
途中確認コマンドも入れています。

httpdはApachのことです。

```bash:Apachのインストール手順
# Apacheの情報表示
yum info httpd

# Apacheのインストール
sudo yum install -y httpd

# Apacheのバージョン確認
httpd -v

# Apachの起動
sudo systemctl start httpd

# Apacheが起動しているかの確認
systemctl status httpd

# 自動起動の設定
sudo systemctl enable httpd

# 自動起動の設定がされているか確認
systemctl is-enbaled httpd
```

systemctlはsystem controlの略です。
ここまで設定できたら外部IPをコピーしてブラウザに貼ってください。

![2021-06-18_09h30_35.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/428239/54dc2b05-74e8-6a63-c3e9-f53433e1932c.png)

Apacheのテストページが立ち上がっていれば設定が無事できました。

![2021-06-18_09h30_41.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/428239/c7f7e5cf-afb4-b67a-447a-340c5b756412.png)


## HTMLファイルの設定

インターネットに公開されるディレクトリは決まっており、
```
/var/www/html/
```
この配下のファイルが公開されます。
このディレクトリのことをドキュメントルートと呼びます。

`sh -c`は次に示すコマンドを実行するという意味です。
`echo`は文字列の出力で
`echo 'Hello GCP' >> /var/www/html/index.html`で
index.htmlを作成し、`Hello GCP`という文字列を追加するという動きになります。

```bash
sudo sh -c "echo 'Hello GCP' >> /var/www/html/index.html"
```

うまく設定できているかは下記のコマンドで確認できます。

```bash
cat /var/www/html/index.html
```

これでHello GCPと表示されればOKです。

先ほどURLに入力した外部APに.index.htmlを加えて再度URLにいれます。

```
00.00.00.000.index.html
```

これで`Hello GCP`が表示されたら成功です。


## 固定IPアドレスの設定


![2021-06-18_19h18_55.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/428239/7bd1cb1b-3b9a-f7cc-e8af-22d2377030f1.png)


![2021-06-18_19h19_11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/428239/7a404373-76f9-2931-2da0-d1d85e73f758.png)


![2021-06-18_19h19_27.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/428239/836eaa08-600b-9e57-a96b-0d82223093bc.png)

![2021-06-18_19h19_56.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/428239/b49aa639-2009-bfb5-4b74-51366fceae0d.png)


固定IPアドレスを設定すると課金されるのでわすれずにクリーンアップしましょう。
VPCネットワーク内の`外部IPアドレス > 静的ネットワークの開放`
でクリーンアップが可能です。

使用リソースがあると削除できないので、先に使用しているリソースの
クリーンアップを行うと静的アドレスの開放が可能になります。

## Clould DNSの設定


![2021-06-20_10h06_08.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/428239/758c297e-9756-a7d0-86d7-c5dd7d71b47d.png)

![2021-06-20_10h07_12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/428239/90a802d2-b816-1e90-bad1-a666c3dfa975.png)


![2021-06-20_10h08_08.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/428239/0ba08a62-ff82-b4e6-44d2-7baab557adc3.png)


![2021-06-20_10h09_52.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/428239/b69a7ef5-16af-c36b-60af-285625392ce0.png)


### レンタルサーバー上で、ネームサーバーを登録します、
設定するのはClould DNSの種類NSに表示されている下記4つのデータです。

![2021-06-20_10h08_08.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/428239/a50ed19e-bd76-5ff1-b79a-fe755f1c42dd.png)


ネームサーバーの設定が完了したら、Cloud Shellで下記のコマンドを実行し、
設定が変更されているか確認します。

設定から繁栄までに24時時間から70時間かかるケースもあるそうです。
私の場合は30分程度で繁栄されました。

```
dig {ドメイン名} NS +short
```

digはDomain Infomation Grouperの略でGrouperは探索する人といった意味合いです。
NSはName Serverの略で、+shortは簡易表示させるという意味です。

![2021-06-20_10h20_43.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/428239/a65cd890-27c3-fe0e-032b-0de2870290b9.png)


{ドメイン名}.inedex.htmlでHello GCPが表示されていれば成功です。


## MySQLの設定


```bash:MySQLのインストール
# ソースコードを管理する場所の設定
sudo yum -y localinstall https://dev.mysql.com/get/mysql80-community-release-el7-1.noarch.rpm

# インストールされるMySQLのバージョン確認
yum info mysql-community-server

# MySQLのインストール
sudo yum install -y mysql-community-server

# MySQLのバージョンを確認
mysql --version
```

## PHPのインストール

```bash:PHPのインストール
# インストールされるPHPのバージョン確認
yum info php

# Remiリポジトリのインストール
# ソースコードを管理する場所の設定
sudo yum install -y http://rpms.famillecollet.com/enterprise/remi-release-7.rpm

# Remiリポジトリを有効にする
sudo vim /etc/yum.repos.d/remi-php74.repo
```

上記、コマンド実行後にphp74箇所のenabledを1へ変更するのに
`i`もしくは`c + w`でinsertモードに変更します。

変更後は`escキー`、`:wq`で保存完了です。

![2021-06-20_13h51_11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/428239/6d984548-0521-e1ec-fe59-15d8153e0474.png)

viの操作になるのでここを参考にするとよいです。
https://www.youtube.com/watch?v=FY3K8rAznFk


```bash
# yum listでphp7.4がインストールできるか確認
yum list | grep php74

# インストールされるphpのバージョンを確認
yum info php

# phpとphp-mysqlをインストール
sudo yum install -y php php-mysql

# phpのバージョンを確認する
$ php -v
```