GCP の中国への通信費削減の巻

#今日の出来事
以下のブログを運用しており、GCP の費用請求があった。
https://www.hideblog.xyz/

「あれ？無償枠頑張って使ってるのに有料？？」

「ははぁん、さては固定IP 有料化の影響だな！」
![20200327_05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/184724/b6cff326-0bf1-4589-3ca3-b0aaa27ec1f3.png)

「どれどれ、請求書みてみるか」
![キャプチャ1.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/184724/5c7f8992-f3b1-8279-f963-7922115ca06f.png)

「ん？２００円ぐらい固定IP 費用で取られるんじゃなかったっけ？ 0.02$ って、2円とか？？」

![キャプチャ2.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/184724/7bf2655e-c19f-5e4d-b777-0b360dc64834.png)


「あれ！？固定IP 費用は、割引になって0$ ！？　通信費か！！」
![20200327_06.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/184724/3426c9b7-47bd-290b-86ef-3a69e6d378cd.png)

#GCP の仕様
GCP は、中国およびオーストラリアからの通信に費用がかかります。
今回は、私のブログへ１回アクセスしてくれて、記事を何件か見てくれた様子。
その費用が２円として、請求がきたっという話。

お勉強のために運用しているので、あまり費用はかけられないので、通信費削減を決断！
すまねぇ！中国の兄弟達っ！！

#通信制御の手順
以下の２つで行います。
・制御するべきグローバルIP アドレスの調査
・アクセス制御の実装

###制御するべきグローバルIP アドレスの調査

アクセスのあった中国から、アクセスを禁止します。
禁止方法は、GCP のファイアウォール機能を利用します。
以下のサイトから、IP アドレスを取得します。
https://ipv4.fetus.jp/cn.nginx.txt

その後、ファイアルォール向けの形式へ変更します。
以下へ本日調査したIP アドレスを形式変更したものをアップしています。
https://github.com/HaHatake/test/blob/master/Control2GlobalIPaddress4China

###アクセス制御の実装
アクセス制御は、OS あるいは ファイアウォールで行うことが一般的です。
今回は、OS をのせたバーチャルマシンが貧弱なので、ファイアウォールで制御してもらいましょう。
IP アドレスの数が多いため、API を利用して手間を省きましょう。
https://cloud.google.com/compute/docs/reference/rest/v1/firewalls/update

#####ファイアウォールのルールを作成
GCP のポータルサイトから、
「VPC ネットワーク」　＞　「ファイアウォール」を選択
![WS000002.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/184724/2c380161-cff4-5280-2022-61b68339a8f7.jpeg)


「ファイアウォール ルールの作成」を選択
![WS000003.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/184724/c97bce74-4635-bfc0-0945-59167d9a01af.jpeg)

以下の値を入力
　　優先度：900
　　トラフィックの方向：上り
　　一致したときのアクション：拒否
　　ターゲット：ネットワーク上のすべてのインスタンス
　　ソースフィルタ：IP範囲
　　ソースIPの範囲：0.0.0.0/0
![WS000004.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/184724/d3712540-339d-4b3a-ef56-3f767a0f23a4.jpeg)

API 利用にプロジェクトID が必要なため、GCP のポータルサイト上部にある「プロジェクト」を選択
ID をメモする。
![WS000005.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/184724/cbf355b0-fc87-6712-c5a9-244f9d3943fa.jpeg)


#####API の活用
以下のサイトへアクセス
https://cloud.google.com/compute/docs/reference/rest/v1/firewalls/update

サイトへ調べたプロジェクトID と ファイアウォールルール名を入力。
「add request body parameters」を選択
![WS000006.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/184724/d61a0750-d61f-0951-042d-8f6d0cb7112d.jpeg)

「sourceRange」を選択
255行以内にまとめたIP レンジを以下のサイトへまとめています。内容をコピペして下さい。
https://github.com/HaHatake/test/blob/master/Control2GlobalIPaddress4China01

以下の図のようになります。
![WS000007.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/184724/40989040-1b88-5645-7ba5-a6c6263baa3c.jpeg)

下にある「EXCUTE」 を選択
アクセス許可を出すアカウトの選択して許可

下のように「２００」と出れば成功
![WS000008.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/184724/d50df37b-058f-5dd4-a6d2-661d0b2e53df.jpeg)

"APIの活用" の手順（FW作成、API入力）を以下のサイト分21回(全部で22回)、実施して下さい。
https://github.com/HaHatake/test/blob/master/Control2GlobalIPaddress4China02
https://github.com/HaHatake/test/blob/master/Control2GlobalIPaddress4China03
https://github.com/HaHatake/test/blob/master/Control2GlobalIPaddress4China04
https://github.com/HaHatake/test/blob/master/Control2GlobalIPaddress4China05
https://github.com/HaHatake/test/blob/master/Control2GlobalIPaddress4China06
https://github.com/HaHatake/test/blob/master/Control2GlobalIPaddress4China07
https://github.com/HaHatake/test/blob/master/Control2GlobalIPaddress4China08
https://github.com/HaHatake/test/blob/master/Control2GlobalIPaddress4China09
https://github.com/HaHatake/test/blob/master/Control2GlobalIPaddress4China10
https://github.com/HaHatake/test/blob/master/Control2GlobalIPaddress4China11
https://github.com/HaHatake/test/blob/master/Control2GlobalIPaddress4China12
https://github.com/HaHatake/test/blob/master/Control2GlobalIPaddress4China13
https://github.com/HaHatake/test/blob/master/Control2GlobalIPaddress4China14
https://github.com/HaHatake/test/blob/master/Control2GlobalIPaddress4China15
https://github.com/HaHatake/test/blob/master/Control2GlobalIPaddress4China16
https://github.com/HaHatake/test/blob/master/Control2GlobalIPaddress4China17
https://github.com/HaHatake/test/blob/master/Control2GlobalIPaddress4China18
https://github.com/HaHatake/test/blob/master/Control2GlobalIPaddress4China19
https://github.com/HaHatake/test/blob/master/Control2GlobalIPaddress4China20
https://github.com/HaHatake/test/blob/master/Control2GlobalIPaddress4China21
https://github.com/HaHatake/test/blob/master/Control2GlobalIPaddress4China22

とてもお疲れさまでした。

###追加されていることを確認
最後にファイアウォールルールにIP が正しく追加されているのを確認します。
![WS000009.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/184724/c46f1500-fa03-0126-c526-49984dc05a88.jpeg)