MacPCにWireGuardを入れて、SORACOM Arcを試してみる。

毎年恒例の
ソラコムさんの年次カンファレンス、SORACOM Discoveryで発表された新サービスをやってみるネタです。

（2021/06/24追記）解約の方法も記載
（2021/06/24追記）仮想SIM作成方法について、２バージョン記載

--- 

SORACOM Discovery 2021 ONLINE、本日2日目の基調講演で発表された新サービス、「[SORACOM Arc](https://blog.soracom.com/ja-jp/2021/06/23/launch-soracom-arc/)」。
いや、すごいですね。
なお、**Arc**と**Ark**を間違えて、聖杯とか箱舟って思ってた人です。アーク放電が由来らしいですね。

## SORACOM Arcについて若干解説
従来ソラコムさんのSIM（SORACOM Air）がないと、SORACOMプラットフォーム上のサービスを使うことができなかったのですが、
[WireGuard](https://www.wireguard.com/)というVPNツールを使うことで、Wifiや有線、果てには衛星回線を使ってSORACOMプラットフォーム上にアクセスできるサービスです。
いや、すごいですね（小並感）
衛星回線経由でも可能ってことは、南極とかの極地はもちろん、航行中の船、飛行中の飛行機からもSORACOMプラットフォームにつながるっことですね。
いや、すごいですね（リピート）
WireGuardが入れば、Amazon EC2などクラウドの上の端末でも動きます。
クラウド上でも動く件に関しては、SORACOM UGメンバーかつSORACOM MVCの一人である舩原さんがまとめているので、ご覧ください。
[SORACOM Arcはデバイスだけじゃなくてクラウドでも動かせるんだよ！という話](https://qiita.com/1stship/items/8afda01d8dd832bd731c)
いや、すごいですね（リピート　x２）
詳細はリリース記事のリンクあるのでそちらをご覧ください。

## やってみた。
とりあえず、SORACOMコンソール上で仮想SIMを作って、Mac側にWireGuardを入れて、Pingを打ってみるところまでやってみました。
基本的には[SORACOM Arcユーザーガイド](https://users.soracom.io/ja-jp/docs/arc/)の手順をなぞってます。

WindowsおよびCLIでの例は、SORACOM UGの木村さんが、記事にされているので、そちらを参照してください。
[WindowsとcliでSORACOM Arcを試してみた](https://zenn.dev/showm001/articles/2021-06-23-01)

SIM作成のやり方は、SIM管理画面に従来版とサブスクリプションコンテナ対応版の２種類あるので、両方のやり方を記載しています。
従来版の場合は、**仮想SIMを作る** -> **セッションを作る** に進んでください。
サブスクリプションコンテナ対応版の場合は **仮想SIMを作る(サブスクリプションコンテナ対応SIM管理画面版)**　に進んでください。

### 仮想SIMを作る
1. [SIM登録]をクリックします。
![スクリーンショット 2021-06-23 12.31.54.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/72752/aa132cec-e626-75a7-6b0b-b18346d59150.png)

2. バーチャルSIMを登録をクリックします。
![スクリーンショット 2021-06-23 12.32.23.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/72752/c1069aca-107e-59d7-c168-3149572e3df6.png)

3. [登録]をクリックします。
![スクリーンショット 2021-06-23 12.32.31.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/72752/bc30fa01-07d7-b5ee-b0f3-44542c0ff55c.png)

4. これで終わりです。簡単ですね。
![スクリーンショット 2021-06-23 12.32.43.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/72752/8d0ff9bb-1af9-f145-35e2-9dcdba9507ca.png)

プラン名、「planArc01」として登録されています。

![スクリーンショット 2021-06-23 12.33.00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/72752/29f1bf5c-519f-81c7-860f-303fa9717f26.png)

なお、スピードクラスは選べるようになっていますが、「arc.standard」固定になっています。
※選べるけど変更時にエラーになります。

名前は付いていないので、とりあえずわかるようにつけておきましょう。（余談）
![スクリーンショット 2021-06-23 12.38.02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/72752/c03ea74d-7887-fee9-f9d9-2521a3ad69cb.png)

### セッションを作る
１. SIMの詳細画面に「バーチャルSIM」という項目が増えているので、選択します。
![スクリーンショット 2021-06-23 12.40.28.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/72752/79bedb59-1893-c654-08bc-879174cdca1a.png)

2. ここでは、セッションの確認とか証明書の設定(作成も可能)です。
![スクリーンショット 2021-06-23 12.42.24.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/72752/38db77eb-58af-e6f7-35bb-74584c0c3c9b.png)

3. 証明書を作ります。**CREDENTIALS**タブ内の**Add credentials**の**USE AUTO-GENERATED CREDENTIALS**の「Generate credentials」を選びます
![スクリーンショット 2021-06-23 12.42.51.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/72752/018b6c89-a291-494f-1566-f24a041025c5.png)

プライベート証明書のキーが生成されるので、コピーしておきます。なお、SORACOMコンソールにはこの段階で登録されるようです。
![スクリーンショット 2021-06-23 12.44.00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/72752/aebb58dd-66bf-eaf3-5139-f5a9259dba02.png)

4. セッションを作ります。仮想SIM選択状態で、「操作」の中に「Arcセッション作成」があるので、クリックします。
![スクリーンショット 2021-06-23 12.50.28.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/72752/7bf7f641-c050-ad0e-d49e-f751ee4e29de.png)

5. Arcセッション作成画面の「作成する」をクリックします。
![スクリーンショット 2021-06-23 12.50.34.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/72752/441d63bc-f3b1-10fc-8e71-77ac88e1cbd7.png)

6.　Arcセッションが作成されるので、内容はコピーしておきます。
![スクリーンショット 2021-06-23 12.50.00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/72752/07b8da4d-d3b3-c4ad-0f52-f7de69d7d8ae.png)

### 仮想SIMを作る(サブスクリプションコンテナ対応SIM管理画面版)
1. 管理画面を切り替えます。「切り替える」をクリックします。
![スクリーンショット 2021-06-24 18.08.08.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/72752/00972207-841b-38a9-919b-f9c7d01a17bf.png)

2. 切り替えたら、従来バージョンと同じくSIM登録をクリックします。
![スクリーンショット 2021-06-24 18.08.19.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/72752/3f5effc7-fbb3-a98e-ad72-ea6305e5cd81.png)

3. バーチャルSIMを登録をクリックします。
![スクリーンショット 2021-06-24 18.08.27.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/72752/1aa921d0-4409-256a-243e-9b28d452f307.png)

4. [登録]をクリックします。
![スクリーンショット 2021-06-24 18.08.35.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/72752/778287b9-e072-4a25-3daf-3382941d99ee.png)

5. これで終わりです。ここに書いてある情報を後で使うので、必ずコピーしておきましょう。
![スクリーンショット 2021-06-24 18.08.47.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/72752/45711c33-0d95-2bba-3759-63e7641d4034.png)

## Mac側設定
1. とりあえずApp StoreからWireGuardをダウンロードします。
![スクリーンショット 2021-06-23 15.57.46.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/72752/58707315-ae15-f081-d02d-80427b0b0098.png)

2. 起動したら、左下の「＋」をクリックします。
![スクリーンショット 2021-06-23 15.59.41.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/72752/052b7f3a-ef31-39da-55ac-e9472635b150.png)

3. とりあえず、「設定がからのトンネルを追加」をクリックします。
事前に設定ファイルがあれば、「ファイルからトンネルをインポート」で読み込みも可能性のようです。
![スクリーンショット 2021-06-23 15.59.55.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/72752/6016e98b-d6c8-4e81-171b-e7ddeb1e1ad9.png)

4. トンネル情報の登録画面になるので、以下の値を設定します。

 ```
名前 : わかるような名前にしておきます
Interface :
 Address : セッションを作る ６. で作成されたInterfaceのaddress / 仮想SIMを作る(サブスクリプションコンテナ対応SIM管理画面版) 5. で出力されたAddress
 PrivateKey : セッションを作る 2. で生成したクレデンシャルのキー情報 / 仮想SIMを作る(サブスクリプションコンテナ対応SIM管理画面版) 5. で出力されたPrivateKey

Peer:
 PublicKey :　 セッションを作る ６. で作成されたPeerのPublicKey / 仮想SIMを作る(サブスクリプションコンテナ対応SIM管理画面版) 5. で出力されたPublicKey
 AllowedIps :　セッションを作る ６. で作成されたPeerのAllowedIps / 仮想SIMを作る(サブスクリプションコンテナ対応SIM管理画面版) 5. で出力されたAllowedIps
 EndPoint : セッションを作る ６. で作成されたPeerのEndPoint / 仮想SIMを作る(サブスクリプションコンテナ対応SIM管理画面版) 5. で出力されたEndPoint
```
![スクリーンショット 2021-06-23 16.08.14.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/72752/a3867b2a-caac-222f-9267-c8aea53c6dd7.png)

5. 保存を押すと、警告が出る場合は、「許可」してください。

![スクリーンショット 2021-06-23 16.08.22.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/72752/6c85312e-5a9f-aeb6-28ad-87637fdc7707.png)

6. 登録した状態では無効状態になっているので、「有効化」をクリックします。

![スクリーンショット 2021-06-23 16.15.38.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/72752/67e004dc-ed30-7c7d-5dd6-f2c93348a95c.png)

7. 繋がったはずなので、SORACOMプラットフォーム上の[Ping用のエンドポイント](https://blog.soracom.com/ja-jp/2020/02/27/pong-soracom-io/)にアクセスしてみます。
はい。つながりました。感動です。
![スクリーンショット 2021-06-23 16.18.08.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/72752/09f87931-60f1-1456-3d1b-1567c79350c1.png)

## 仮想SIMの解約
誤って作ってしまったので、いきなり解約してみました。
実はソラコムさんのSIM解約するの初めてです。
解約も自分でコンソールでできるんだから、本当すごいですよね。

1. 通常のSIMと同じで、SIMを選択後、メニューの「解約」をクリックします。
![スクリーンショット 2021-06-24 12.01.00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/72752/1674f787-556b-a421-b726-471a838c5ba9.png)

2. 解約確認画面で、「解約する」をクリックするだけです。

![スクリーンショット 2021-06-24 12.01.08.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/72752/3556274e-9b90-d507-7a27-72b1c767accc.png)


## どうやって使う
### 開発
以前、[あのボタンを押したらM5Stackに今何してるを表示させる](https://qiita.com/keni_w/items/e5e49f05ff72f14cda8a)
で、メッセージが取れないことがあって、開発してたMacからSORACOM Airを挿したWifiルーターでSORACOM　Beamのエンドポイントにアクセスして問題ないか検証するってことがあったんですが、
SORACOM Arcを使えば、そう言う検証でも使えそうです。
物理SIMに紐つけることもできるので、手元での開発時は、Wifiをつかう。
実際現場に持って行く時はLTE回線を使う
っていう使い分けもできると思います。

### VPN用途
VPN用途として使えそうですね。
仮想SIMも、SORACOM VPGが使えるので、VPG経由で、社内ネットワークや自社のクラウド環境に接続できるんじゃないかと。
無論何かあった時は、仮想SIMを無効・削除してしまえば、その端末からは接続できないようにできると思います。

### ハンズオン
ハンズオンとかだと、実機がないとダメだったのですが、SORACOM Arcを使えば、PCやスマホ(iOS/Android)を擬似的なIoTデバイスとして利用可能になります。
SORACOM　UGメンバーとして活動していますが、ハンズオンが難しい(実機をどうするか)のは課題だったのですが、Arcを使うことで、
今後実機がなくともハンズオンができるようになるはずです（現在企画中）

## 終わり
SORACOM Arcすごいですね。しかも簡単でした。
しかも可能性が非常に高くなるサービスですね。
いや、すごいですね（リピートx3）

実はArcを使ったハンズオンについて、某ユーザーグループと企画しているので、その準備しないとなーって思ってます。