中国のクラウドで金盾体験

この記事は [DMM.com #2 Advent Calendar 2017](https://qiita.com/advent-calendar/2017/dmm2) の12日目の記事です。
前日の記事は @ma9to さんの [チームで行うReact Componentの設計](https://qiita.com/ma9to/items/fa5109e62b8238784ddf) でした。

下記がヘイシャのAdvent Calendarです。
https://qiita.com/advent-calendar/2017/dmm
https://qiita.com/advent-calendar/2017/dmm2


# まえがき

はじめまして、佐々木です。
だいぶ前はツチノコブログの中の人をしたり、イベントでDMMかき氷を配ってたりしてましたが、最近はゆるふわにZendeskをいじったりしてます。

DMMの本社は六本木にあります。
六本木は夜もたいへん元気で楽しい街で、IT関連の人達が夜も継続的打ち合わせを行なっております。
Awabarというミッドタウン近くのバーがそういう場所として有名ですね。

ちょうど1ヶ月程前のこと、仕事を終えて職場を出たところで電話が鳴りました。
「Awabarで待ってるから」
かわいい女の子からなら嬉しい話なんだけど、相手はおじさん、ただし業界の偉い人。
うわー、めんどくさいなー、と思いながら、行ってみると、顔見知りの別の被害者もいましたよ。
仲間意識が芽生えます。

彼は今は中国のクラウドの裏側で仕事をしているので、

中国のクラウドって楽しいっすか?
簡単に使えるんすか?
どうすれば使えるんすか?

みたいな話をしていたら、使い方を教えてもらいました。
今日のネタは、それを実際にやってみた、という話です。


# 中国のインターネット事情

中国のインターネットユーザは、7億5千万人を超え、モバイルインターネットユーザは95%を超えています。
すごい人数ですよねえ。
そのうち8割が、WeChatというインスタントメッセンジャーアプリを使っています。
使用感はLINEに良く似てるのですが、チャットだけでなく、いろいろなところで電子決済なんかもできる便利なアプリです。

中国のインターネットに閑する統計データは、CNNIC(中国インターネット情報センター)が定期的に出しているので、読んでみると、すげー、という気分になれます。
中国語ではなく英語で書かれているので、さらっと読めますし、翻訳も楽チンです。

CNNIC Statistical Reports
https://cnnic.com.cn/IDR/ReportDownloads/

日本語の解説もググるといくつか見付かります。
たとえば以下のサイトには、2017年版について抜粋した内容が書かれています。

中国のインターネット白書2017年度版
https://lxr.co.jp/blog/5349/


中国のインターネットの特殊なところとして、金盾、いわゆるグレートファイアウォールの存在があります。
中国国内からのアクセスはこの仕組みにより管理されていて、中国国内からは見れないウェブサイトも存在します。

金盾 - wikipedia
https://ja.wikipedia.org/wiki/%E9%87%91%E7%9B%BE

この仕組みにより我々が普段使っている、Google、Facebook、等は中国国内からアクセスできません。
しかし中国には、それと同じようなサービスが存在しているので、中国のユーザが不便を感じているわけではなさそうです。


# 中国のクラウドベンダ

前述の金盾の問題等もあり、中国国内向けにインターネットサービスを行なうためには、中国国内にサーバを設置するのが一般的です。
中国国内にもホスティングサービスが沢山あるのですが、最近はクラウドサービスも利用できるようになりました。
大きなところは2つあります。

* [Alibaba Cloud](https://jp.alibabacloud.com/)
* [Tencent Cloud](https://cloud.tencent.com/)

運営しているのはどちらも中国の巨大IT企業。
中国の、というよりも、もはやアジアの、というか、世界の、という規模感がある企業ですね。

Alibabaは中国でのAmazon、Yahoo!的な企業であり、ソフトバンクとも提携しています。
Tencentは世界最大のゲーム会社であり、前述のWeChatはTencentのサービスです。

それぞれの企業詳細については、英語版のWikipediaに詳しく書いてあります。(誰か日本語版も更新して欲しい)

Alibaba Group - Wikipedia(en)
https://en.wikipedia.org/wiki/Alibaba_Group

Tencent - Wikipedia(en)
https://en.wikipedia.org/wiki/Tencent


# クラウドアカウントの作り方(Alibaba編)

さて、いよいよ、そのクラウドを使ってみましょう。

まずは Alibaba Cloud を使ってみます。
今なら以下のページからアカウントを作成するのが良いでしょう。
キャンペーン期間中なので、新規登録で20,000円分のクーポンがもらえます。
Alibaba Cloud は日本リージョン(SBCloud)もあり日本語の説明を読みながら登録ができます。

Alibaba Cloudトライアルキャンペーン
https://jp.alibabacloud.com/campaign/coupon-freetrial

クラウドを使うためには、以下の情報が必要になります。

* メールアドレス
* 携帯電話(SMSが使えるもの)
* クレジットカード
  * VISA / Master / JCB
* 写真付身分証明書
  * 免許証 / パスポート / 住基カード

中国の規制の関係で、ちょっとドキドキする情報を要求されますが、悪いことをしなければきっと大丈夫です。

まずはアカウントを作成します。

1. メールアドレスを登録すると、認証用のURLが送られてくるのでクリック
2. 携帯電話を登録すると、SMSが送られてくるので、その認証番号を入力

これでアカウント作成できてログインできるようになります。

次はそのアカウントにログインして決済情報、身分証明書を登録します。
まずは、クレジットカードなのですが、登録すると、実際に少額決済されてカードの有効性確認が行なわれます。
いきなりお金が決済されて、えー、って思いますが、そのお金は後で戻ってくるので大丈夫です。
次に写真付きの身分証明書を登録するのですが、これにはちょっと時間がかかります。
とはいえ、私が登録した時では、1日で確認が完了しました。

ちなみに WeChat Pay や AliPay のアカウントがあれば、決済も身分証明もそのアカウントで可能らしいのですが、中国国外のユーザがその決済手段を使うためには、中国の銀行口座を作る必要があったり、それはそれでハードル高めです。


# クラウドアカウントの作り方(Tencent編)

次は Tencent Cloud を使ってみましょう。
以下のサイトからアカウント作成ができます。

Tencent Cloud
https://cloud.tencent.com/

最初はいきなり中国語が表示されてビビりますが、Google翻訳アプリで写真変換等を活用すれば実は中国語もそんなに怖くありません。
とはいえ、サクっと英語版ページに切り換えるのが楽でしょう。
残念ながら日本語版はまだありません。

クラウドを使うためのハードルはAlibabaよりちょっと高めです。
以下の情報が必要になりますが、Alibabaと違って、JCBが使えず、免許や住基カードも使えません。

* メールアドレス
* 携帯電話(SMSが使えるもの)
* クレジットカード
  * VISA / Master
* 写真付身分証明書
  * パスポート

アカウント作成手順は、Alibaba Cloudとほぼ一緒です。
身分証明書確認は、Alibabaより時間がかかって、私は3日ほどかかりました。


# Alibaba Cloud 上にインスタンスを立ててみる

身分証明書確認が完了すると、クラウドコンソールを利用できるようになり、インスタンスの作成等ができるようになります。
使用感もAWS等の他のクラウドと同じような感じです。
コンピュート、データベース、ストレージ、CDN、ネットワーキング、セキュリティ、管理、と、ひととおりのサービスが揃っています。

今回は北京にサーバを立ててみました。

* Elastic Compute Service(ECS)を選択
* インスタンスタイプ: CPU 2 core、メモリ 4GB
* リージョン: China North 2(Beijing)
* OS: Ubuntu 16.04 64bit
* ネットワークタイプ: デフォルトのVPC
* ネットワーク帯域幅: 1 Mbps
* ストレージ: デフォルトのすトレージ
* キーペアは手元で作ったものを登録
* 従量課金プラン

インスタンスはわりと早めに上がってくる印象です。
ウェブからコンソール画面を確認できます。

IPアドレスは固定で割りあてられているので、AWSのように再起動のたびに変更されることはありません。

以下のように公開鍵認証でsshログインもできます。

```
ssh -i ".ssh/alibaba1.pem" root@47.xxx.xxx.xxx
```


# インスタンス上でプロキシサーバを動かしてみる

インスタンスにログインできたら、プロキシサーバとして動かしてみます。

まずは squid をインストール

```
apt install squid
```

今回はアクセス制限は、クラウドのセキュリティポリシーで行なうことにして、雑に squid.conf を修正します。
/etc/squid/squid.conf の

```
http_access allow localnet
```

となってる行を、エイヤで以下に修正。

```
http_access allow all
```

squid.conf を修正したら、squid を再起動します。

```
sudo systemctl restart squid.service
```

とても雑なことをしてるので、良くわからない人は真似をしないように!!


雑に設定してる、とはいえ、ufw は有効にして、sshポートに limit ぐらいはかけておきます。
サーバを乗っとられたりすると嫌ですしね。
個人情報を預けてるのがプレッシャーになります。

```
ufw limit OpenSSH
ufw allow Squid
ufw enable
```

あとは、クラウド側のセキュリティポリシーで、アクセス元制限をかけます。
イントラネット入力にルールを追加して、アクセス元のIPアドレス→TCP/3128、の通信を許可しておきます。
これで特定のアクセス元からのみ、プロキシサーバとして使えるようになります。


# 中国のプロキシサーバごしに見るインターネット

早速作ったプロキシサーバを使ってみましょう。
手元のPC上のブラウザのプロキシサーバの設定を変更して今作ったプロキシサーバごしにウェブアクセスするようにします。
これで中国国内からのアクセスを疑似体験できます。


まずはやっぱり DMM.com にアクセスしますよね。

ちょっとドキドキしましたが無事に見えましたよ!!
でも、一部のサービスは利用できない、って言われてしまいます。

実はDMMサービス毎に、DMM側で接続制限を行なっているのです。
その機能が正常動作していることが確認できたわけです。
海外展開にあたっては、各国の法律を守るのはとても重要なのですね。


次は Alibabaのページも見てみましょう。
Alibabaは中国では 1688.com というドメインでサービスをしています。

https://www.1688.com/

これも普通に見えます。
中国語なので何が書いてあるのか一見しただけではさっぱりわからないのですが。


次は遮断されていると言われる Google にアクセスしてみます。

繋がりません。
やっぱり見えないのね〜、と思って、別なサイトを見ようとすると、他のサイトにも繋がらなくなってしまいました。
え、、、、、やばい、、、、？
誰がアクセスしたかとか、個人特定されちゃうんだけど、、、、、

と思ってたら、1分ぐらいで、普通に使えるように戻りました。
これが金盾なんでしょうねえ。
かなりドキドキしましたよ。
中国のインターネットユーザはこういうドキドキをいつも感じているのかもしれません。



# 中国のクラウドを使ってみた感想

使ってみた感想です。

* 中国のクラウドも、AWS等と同じように簡単に使える。
* 機能もひととおり揃っている。
* 身分証確認にはちょっとビビる。
* 値段が安いわけではない。他のクラウドとそんなに変わらない。
* 金盾があるってのはいろいろ大変なんだなあ
* IPv6は対応していないけど、これは金盾の対応ができないから？
* 中国以外のリージョンもあって条件によっては他のクラウドの代わりの選択肢になるかもしれない。
* クーポンがあるのは素直に嬉しい。Tencentもクーポン付けてくれると良いのになあ。


# もっと詳しい話を聞きたい人は

来年の1/24〜26に広島でJANOG41ミーティングが開催されるのですが、Awabarでこのネタを教えてくれた高橋真さんが「中国雲の歩き方」という発表を行なう予定です。
中の人ならではの面白いネタが聞けるかもしれないので、1月に広島に行くと良いと思いますよ。

中国雲の歩き方
https://www.janog.gr.jp/meeting/janog41/program/chinacloud

JANOG41 ミーティング開催概要
https://www.janog.gr.jp/meeting/janog41/

# 最後に

実は Qiita に書くのは初めてでした。
Advent Calendar も初体験なのですが、こういう記事のリレーって、なんか良いですねえ。

明日は @wkubota@github さんです。お楽しみに〜