SIMカードなしでSORACOMサービスが使える!? SORACOM Arcを試してみた

SORACOM ArcでSIMカードなしでもSORACOMプラットフォームサービスを使い倒せ!
2021.06.23

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

はじめに

CX事業本部の佐藤智樹です。

先日 SORACOM Discovery 2021 のイベント内で SORACOM Arc の提供が発表されました。今まではSORACOMのサービスを使用する際にSIMカードの購入は必須でしたが、今回のサービスでSIMカードを使用しなくてもSORACOM プラットフォームサービス(以降SORACOMサービス)が利用できるようになりました!

SIMカード無しで接続できるので、例えばSIMカードを扱うことができない端末でもSORACOMサービスにデータを送ることができます。またSIMカードの携帯電話回線(以降回線)経由でSORACOMにアクセスしていて通信経路を冗長化したい場合は有線接続やWiFi接続を利用する代替サービスを用意する必要がありました。今回の SORACOM Arc が提供されたことで代替えサービスを用意せずSORACOMのサービスを十全に活用しながら通信経路を冗長化することが可能になりました!

soracom-arc-advantage

また今まではSORACOM ストアや他の代理販売店でSIMカードを購入しなければSORACOMサービスを試すこともできなかったのですが、ユーザ登録さえ行えば仮想SIMとPCだけでサービスの操作感などを確認できるようになりました。

今回はそんなSORACOM Arcをマニュアルに合わせて触ってみて、現在記事を書いているMacの端末からSORACOMまで通信を送ることができるところまでやってみます。

SORACOM Arc やってみる

まずは以下のマニュアルに沿って進めます。

筆者はSORACOMユーザ作成済みでクレジットカードも登録済みなのでユーザコンソールに入るまでの工程は省略します。まだユーザコンソールに入れない方はこちらなどを参考にアカウントを作成してください。

仮想SIMの作成

手順通り仮想SIMを作成してみます。「+SIM登録」から「バーチャルSIMを登録」で「登録」を押下すると簡単に作成できました。ただ自分の場合は調子が悪かったのか[Interface]や[Peers]の項目が画面に表示されませんでした。

2021/6/24追記:
以下の方法なら発行時に接続情報が表示されなくても問題なく接続できたことを社内で聞けたので方法を記載します。
- 「セッション登録」で秘密鍵を生成
- [操作] - [Arcセッション作成]で接続情報を取得

現状自分の環境だと表示されず接続を試せませんでした。なのでSORACOMのCLIから仮想SIMの発行を試してみます。MacでのCLIのインストールは以下の手順を参考に行います。

$ brew tap soracom/soracom-cli
$ brew install soracom-cli
$ brew install bash-completion

次にSORACOMアカウントと連携します。

$ soracom configure

--- SORACOM CLI セットアップ ---
/Users/sato.tomoki/.soracom ディレクトリがなければ作成し、そこにファイル 'default.json' を作成します。

カバレッジタイプを選択してください。

1. Global
2. Japan

選択してください (1-2) > 2


認証方法を選択してください。

1. AuthKeyId と AuthKey を入力する(推奨)
2. オペレーターのメールアドレスとパスワードを入力する
3. SAM ユーザーの認証情報を入力する(オペレーターID、ユーザー名、パスワード)

選択してください (1-3) > 2
email: hogehoge@gmail.com
password:

最後に仮想SIM作成用のコマンドを実行すると正常にレスポンスが返ってきました。

$ soracom sims create --type virtual --subscription planArc01
{
        "activeProfileId": "1000001123456789101111",
        "arcSessionStatus": {
                "arcAllowedIPs": [
                        "xx.xxx.xx.xxx/16"
                ],
                "arcClientPeerIpAddress": "xx.xxx.xxx.xxx",
                "arcClientPeerPublicKey": "XXXXXXXXXXXXXXXXXXXXXXXX",
                "arcServerEndpoint": "king.arc.soracom.io:11010",
                "arcServerPeerPublicKey": "XXXXXXXXXXXXXXXXXXXXXXXX",
                "gtpcTeid": 1234566,
                "lastUpdatedAt": 1234566,
                "location": null
        },
        "createdTime": 1624447070117,
        …
        "terminationEnabled": true,
        "type": "virtual"
}

WireGuardのインストールと設定

Macから通信するため手順を参考に WireGuard をインストールします。

インストール後 WireGuard の画面で「設定が空のトンネルを追加…」を選択します。

開いた画面へCLIで取得した値を以下のように設定します。インターフェース名は「SORACOM Arc01」など分かりやすいものを設定してください。

[Interface]
PrivateKey = {arcClientPeerPrivateKeyの値}
Address = {ueIpAddressの値}/32

[Peer]
PublicKey = {arcServerPeerPublicKeyの値}
AllowedIps = 100.127.0.0/16
Endpoint = king.arc.soracom.io:11010

SORACOMに接続する

機能を有効化してSORACOMに接続してみます。手順にあった接続先にpingで接続できるか確認してみます。

$ ping pong.soracom.io
PING pong.soracom.io (100.xxx.xxx.xxx): 56 data bytes
64 bytes from 100.xxx.xxx.xxx: icmp_seq=0 ttl=64 time=46.754 ms
64 bytes from 100.xxx.xxx.xxx: icmp_seq=1 ttl=64 time=30.194 ms
64 bytes from 100.xxx.xxx.xxx: icmp_seq=2 ttl=64 time=27.444 ms
^C
--- pong.soracom.io ping statistics ---
3 packets transmitted, 3 packets received, 0.0% packet loss

これでSORACOM側にSIMカードなしでも接続できることが確認できました!

所感

結構テンション上がる発表だったのでとりあえず動かしながら書いてみました。SORACOMのユースケースがさらに広がるようなサービスの発表だったと思います。認証情報周りで手間取って力尽きたので後日SORACOM Harvestにデータ送る部分も書いてみます。