Howto

Armadillo-IoTでSORACOM Canalを利用する

SORACOM Canalは、株式会社ソラコムが提供している、Amazon Web Services(AWS)上に構築した仮想プライベートクラウド環境とSORACOMプラットフォームを直接接続するプライベート接続サービスです。12

SORACOM Canal

Armadillo-IoTシリーズでは、SORACOM AirのSIMを使用することで、SORACOM Canalを利用することが出来ます。

SORACOM プラットフォームは、AWS の VPC 上に構築されています。そのため、VPC 間を接続する「VPC ピアリング」という機能を使うことで、SORACOM の VPC とお客様の VPC を AWS 内で閉じた環境で接続することができます。
Canal でピアリング接続対象の VPC は、AWS のアジアパシフィック(東京)リージョン上となります。

Canal は、Virtual Private Gateway(以下、VPG)とよばれる SORACOM Air とお客様の VPC を仲介するゲートウェイを利用して、お客様の VPC とピアリング接続します。

Canal 概要

VPG の作成時には、インターネットへのルーティングを行うか、ピアリング先のみにするかを設定することができます。ピアリング先のみを設定した場合は、インターネットアクセスを許可しない完全閉域網となります。
なお、VPG の利用の有無は、SORACOM Air のグループごとに設定できます。

このため、同じ Air SIM であっても所属するグループを変更することで、お客様の VPC へのアクセス可否を切り替えることが可能です。

Canal 概要

Canal の利用を開始するステップは、以下の通りです。

  • ステップ 1: [AWS の設定] VPC、および EC2インスタンスを作成する
  • ステップ 2: [SORACOM の設定] VPG を作成し、VPCピア接続を設定する
  • ステップ 3: [AWS の設定] ピアリング接続を受諾し、ネットワークを設定する
  • ステップ 4: 閉域網で接続する

以降、上記の4つのステップにそって、手順を説明します。3なお、ステップ 1: [AWS の設定] VPC、および EC2インスタンスを作成するについては、AWS Cloud Formation のテンプレートを用意しています。

本Howtoの前提は以下の通りです。

  • SORACOM のアカウントをお持ちであること
  • AWSのアカウントをお持ちであること

ステップ 1: VPC、および EC2 インスタンスを作成する

ここでは、以下の赤の点線部分を作成します。

VPC

ステップ 1 では、以下の2つの内容で進めます。

  • VPC を作成する
  • EC2 インスタンスを作成する(当インスタンスに Armadillo-IoT からアクセスします。)

VPC を作成する

AWS にログインし、AWS マネジメントコンソールから「VPC」を選択します。(東京リージョンを選択してください。)
以下のような VPC ダッシュボードが表示されます。「VPC ウィザードの開始」をクリックしてください。

VPC

次の「VPC 設定の選択」では、「1個のパブリックサブネットを持つ VPC」を選択します。

VPC

IP CIDR ブロック、VPC 名、パブリックサブネットの設定を行います。
ここでは、名前を「Canal-Test」、その他の設定はデフォルトとしています。「VPC の作成」をクリックします。

VPC

以下のような VPC が作成されました。

VPC

次に、VPC にインターネットゲートウェイを接続します。
VPC を選択し、画面下部に表示される「概要」からルートテーブルをクリックします。

VPC

ルートテーブルに「0.0.0.0/0」のターゲットにインターネットゲートウェイを指定します。

VPC

「保存」します。

EC2 インスタンスを作成する

次に、作成した VPC 内に EC2 インスタンスを作成します。(本Howtoでは、Canal を経由して閉域網で接続する Armadillo-IoT は、この EC2 インスタンスにアクセスします。)

AWS マネジメントコンソールから EC2 を選択します。

VPC

「Amazon マシンイメージ(AMI)」では、Amanzon Linux を選択します。

VPC

インスタンスタイプを選択します。本Howtoでは、t2.micro や t2.nano で十分です。「次の手順:インスタンスの詳細の設定」をクリックします。

VPC

「ステップ 3:インスタンスの詳細の設定」では、「ネットワーク」に先ほど作成した VPC (本Howtoでは「Canal-Test」)を選択します。また、当インスタンスにインターネットから SSH でログインして、セットアップを行いますので、「自動割り当てパブリック IP」を有効化します。

インスタンスのプライマリ IP を設定します。(ここでは、「10.0.0.254」としています。)

VPC

「ステップ 4:ストレージの追加」はデフォルト、「ステップ 5:インスタンスのタグ付け」では、インスタンスの名前をつけます。(ここでは、「canal-test-server」としています。)

VPC

次の「ステップ 6:セキュリティグループの設定」では、HTTP ポートを追加します。

VPC

「確認と作成」をクリックします。

インスタンス作成時に以下のように、「既存のキーペアを選択するか、新しいキーペアを作成します。」というウィンドウが表示されます。当キーファイルを使用して、インスタンスにSSH接続します。

既存のキーがある場合は、それを選択します。ない場合は新しいキーペアを作成し、キーペアをダウンロードします。

VPC

次に、インスタンスに接続して、Apache をインストールします。

作成したインスタンスを選択して、「接続」をクリックします。接続用のコマンドが表示されますので、SSH 等でログインしてください。今回は例として、ATDEを使用してログインします。

VPC

ここでは、以下のコマンドから SSH でログインします。

[ATDE ~]$ ssh -i "xxx-dev01.pem" ec2-user@ec2-52-196-xxx-xxx.ap-northeast-1.compute.amazonaws.com

ログイン後、以下のコマンドを実行して、Apache をインストールします。

$ sudo yum install httpd

次に以下のコマンドを実行して、Apache を起動します。

$ sudo /etc/init.d/httpd start

PC のブラウザを起動して、アクセスしてみましょう。

SSH でのログインに使用したドメイン(例えば、ec2-52-196-xxx-xxx.ap-northeast-1.compute.amazonaws.com)でアクセスします。

Apache にアクセスすることができました。

VPC

ここでは、グローバル IP アドレスで EC2 にアクセスしていますが、Canal をセットアップすることで、プライベートアドレスでアクセスできるようになります。

以上で、「ステップ 1: VPC、および EC2インスタンスを作成する」は完了です。

ステップ 2: VPG を作成し、VPC ピア接続を設定する

ここでは、VPG を作成し、VPC ピア接続を設定します。以下の赤の点線部分を作成します。

VPG

VPG の作成

SORACOM のユーザーコンソールにログインします。

画面左上部のプルダウンメニューから「VPG」を選択します。

VPG

「VPG を追加」をクリックします。

VPG

VPG の名前を入力し、対象サービスとして「Canal」を選択します。

VPG

「インターネットゲートウェイを使う」は、冒頭で紹介したインターネットへのルーティングを行うか、ピアリング先のみにするかの設定となります。
「インターネットゲートウェイを使う」を OFF にした場合は、インターネットアクセスを許可しない完全閉域網となります。ここでは、インタネットゲートウェイを ON にします。

「作成」をクリックすると、以下のように「状態」が「作成中」となります。

VPG

しばらく(3分程度)して、「実行中」となれば作成完了です。

次に、「ステップ1」で作成した VPC にピア接続を設定します。

ピア接続の設定には、以下の情報が必要となります。

  • AWS のアカウント番号

  • 接続先の VPC ID

  • VPC の アドレスレンジ (CIDR)

AWS のアカウント番号は、AWS マネジメントコンソールの右上にある「サポート」→「サポートセンター」をクリックし、表示されるサポートセンターの右上で確認できます。

VPG

VPG

VPC ID と VPC のアドレスレンジ(VPC CIDR)は AWS マネジメントコンソールから VPC ダッシュボードの「VPC」で一覧から確認することができます。

VPG

VPC ピア接続の設定

では、ピア接続を設定します。

先ほど作成した VPG を選択します。

VPG

「基本設定」→「VPC ピア接続」から「追加」をクリックします。

VPG

以下の情報を入力して、「作成」をクリックします。

VPG

この操作で、「 ステップ 1: VPC、および EC2 インスタンスを作成する」で作成した VPC に SORACOM からピア接続がリクエストされています。

以上で、「ステップ 2: VPG を作成し、VPC ピア接続を設定します。」は完了です。

ステップ 3: ピアリング接続を受諾し、ネットワークを設定

ここでは、「ステップ 1: VPC、および EC2 インスタンスを作成する」で作成した VPC で、ピア接続を受諾し、ネットワークの設定(ルートテーブルの設定)を行います。

AWS のマネジメントコンソールから VPC ダッシュボードに移ります。
「VPC ピアリング」を選択します。以下のようにピアリングのリクエストを確認してください。

VPG

当該のピアリングを選択して、「アクション」から「リクエストの承認」を選択してください。

VPG

以下のようなウィンドウが表示されますので、「ルートテーブルを今すぐ変更」を選択し、ルートテーブルを変更します。

VPG

インスタンスが含まれるルートテーブルを選択し、「100.64.0.0/10」を受諾したピアリング接続(pcx-xxxxxx)にします。本Howtoの手順で作成した場合、「1個のパブリックサブネットを持つ VPC」を作成しているので、「明示的に関連付けられた」サブネットが「1 サブネット」と表示されているルートテーブルになります。

VPG のアドレスレンジは、100.64.0.0/10 となりますので、当アドレスの送信先を VPG とします。

VPG

「保存」をクリックします。

以上で、ピア接続の受諾、および、ルートテーブルの設定は完了しました。

ステップ 4: 閉域網で接続する

いよいよ、Canal を通じて、閉域網の接続を行います。

以下の手順で接続します。

  • グループを作成し VPG を設定する

  • Air SIM をグループに所属させる

  • Air SIM からプライベートアドレスでアクセスします。

グループを作成し VPG を設定する

SORACOM ユーザーコンソールの左上のプルダウンメニューより「グループ」を選択します。

「追加」をクリックして、グループ名を入力し、グループを作成します。

作成したグループをクリックしグループ画面の「基本設定」から「SORACOM Air 設定」を開きます。

「SORACOM Air 設定」内に、以下のように「VPG (Virtual Private Gateway) 設定」がありますので、「ON」とし、ステップ2で作成した「VPG」を選択します。

「保存」をクリックします。

VPG を指定したグループに含まれる Air SIM は VPG を利用することになります。
Air SIM の所属するグループを切り替えることで、同じ Air SIM であっても VPG を利用する/しないを切り替えることができます。これにより、閉域網接続の可否を切り替えることができます。

Air SIM をグループに所属させる

「SIM 管理」メニューから、接続を行う SIM を選択し、「所属グループ変更」をクリックします。

先ほど作成したグループに所属させます。

グループのVPGの設定変更をしたら、既に接続中の Armadillo-IoT については、設定変更後に一旦接続を切ってから繋ぎ直してください。セッション切断・再接続を行わないと、設定が反映されません。

Air SIM からプライベートアドレスでアクセスする

VPG を使用するグループから、「ステップ 1: VPC、および EC2 インスタンスを作成する」で作成した VPC 内の EC2 インスタンスに Armadillo-IoT からアクセスします。

debianユーザーランドには標準でWebブラウザがインストールされていません。例として、w3mブラ ウザをインストールします。

[armadillo ~]# apt-get update
[armadillo ~]# apt-get install w3m

w3mブラウザから、EC2 インスタンスのプライベートアドレスを入力します。

[armadillo ~]# w3m 10.0.0.254
Amazon Linux AMI Test Page
This page is used to test the proper operation of the Apache HTTP server after it has been installed. 
If youread this page, it
means that the Apache HTTP server installed at this site is working properly.
-----省略-----

プライベートアドレスである「10.0.0.254」でアクセスできています!

以上で、「SORACOM Canal を使用して閉域網でサーバーに接続する」は完了です。

Canal を利用することにより、インターネットを介することなく、VPC にアクセスすることが可能となります。また、 VPC もインターネットにポートを開ける必要はありません。

本Howtoでは、VPG のインターネットゲートウェイを「ON」として作成しましたが、「OFF」(ピア接続先のみ)を設定した場合は、インターネットアクセスを許可しない完全閉域網となります。インターネットから Armadillo-IoT にマルウエアを仕込まれるリスクを回避することも可能となります。


  1. SORACOM Canal サービス詳細はソラコムのWebサイトをご確認ください。 

  2. SORACOM、SORACOM Air、SORACOM Canalは、株式会社ソラコムの登録商標または商標です。 

  3. 参考/出典: ソラコム 開発者向けサイト/Getting Started