はじめに
SORACOMリリース1周年記念リレーブログ
11月1日分です。
blog.soracom.jp
SORACOMももう1周年という事で、色々とサービスが増えて来ました。
まずは各サービスをGoogle Trendで見てみます。
↑読み込み遅いけどGoogle Trendsのグラフ出ます。
↑読み込み遅いけどGoogle Trendsのグラフ出ます。
SORACOM Airが 2014/7/6 - 12の間に検索されていたりするのは、
創業者二人が飲みながら名前を考えているときに、
検索していたのかなと想像すると楽しいですね。
AirとBeamの検索量にたいして、他のサービスはGateがかろうじて
検索されている位の状況です。
ということで、今回はCanal周りを中心に遊んでみようと思います。
VPGで遊ぶ
まずはVPGで遊んでみたいと思います。
VPGを作成するところから。
VPGの作成
$ soracom vpg create --device-subnet-cidr-range=10.0.0.0/9 --primary-service-name=canal
{
"createdTime": 1477998721142,
"deviceSubnetCidrRange": "10.128.0.0/9",
"lastModifiedTime": 1477998722107,
"operatorId": "OP0012950956",
"primaryServiceName": "Canal",
"status": "creating",
"tags": {},
"type": 12,
"ueSubnetCidrRange": "10.128.0.0/9",
"useInternetGateway": true,
"virtualInterfaces": null,
"vpcPeeringConnections": null,
"vpgId": "********-****-****-****-************"
}
コマンドラインでサクと作ります。
$ soracom vpg get --vpg-id=acf68be6-83f7-44c3-9fd5-bd741a434176 |jq -r .status
running
特に難しいこともなく、作成完了です。
$ soracom vpg list-ip-address-map-entries --vpg-id=********-****-****-****-************
[
{
"hostId": "100.64.148.132",
"ipAddress": "10.64.148.132",
"key": "100.64.148.132",
"type": "gatePeer"
},
{
"hostId": "100.64.148.4",
"ipAddress": "10.64.148.4",
"key": "100.64.148.4",
"type": "gatePeer"
}
]
なにやら、アドレスが2個作成されています。
推測ですが、VPGというのはVPCと(AZにまたがって)EC2が2台という構成で作られているのでは無いかと推測できます。
今作成したものであれば、
100.64.128.0/17と100.64.0.0/17というサブネットがあるのではないかと思います。
このVPCがアカウント毎に違うVPCなのか、同じVPCなのかは今回は検証していませんが、おそらく別れていることでしょう。
こちらもさくと作ります。
$ aws ec2 create-vpc --cidr-block 172.19.0.0/16
{
"Vpc": {
"VpcId": "vpc-467*****",[f:id:tottokug:20161102003146p:plain]
"InstanceTenancy": "default",
"State": "pending",
"DhcpOptionsId": "dopt-ada4b3cf",
"CidrBlock": "172.19.0.0/16",
"IsDefault": false
}
}
VPCとつなぐのはコマンド一つのお手軽さです。
$ soracom vpg create-vpc-peering-connection \
--destination-cidr-block=172.19.0.0/16 \
--peer-owner-id=01234567890123 \
--peer-vpc-id=vpc-********** \
--vpg-id=********-****-****-****-************
これで、SORACOM側のAWSアカウントから、指定したVPCに対してPeeringのRequestが届きます。
それをAWS側でAcceptすることで、Peeringが完成しました。
VPGとSORACOMのVPCの関係について後日追記予定の内容があります。
Subnetの作成とRouteTableの設定とEC2の起動
先程Peeringを作ったVPCもそのままでは特に何もないネットワークなので、
もうちょっと遊ぶために、Subnet(172.19.8.0/24)を作成し、
RouteTableに100.64.0.0/16 への通信をpeeringに渡す設定とSecurity Groupを適切に設定する事で、
AirからEC2への疎通は出来るはずです。
今回はAirは使っていないので、確認はできていません。。。
EC2からアクセス出来るのはどこまでなのか
そして、今日の本題。
EC2からSORACOMのどこまでアクセス出来るのか試してみたいと思います。
Doorがあればまた話しは変わってくるのかもしれませんが、
今回はSORACOM CanalとSORACOM GateだけでEC2がどこまでアクセス出来るのかを試していきたいと思います。
vxlanの設定までを https://dev.soracom.io/jp/start/gate/ ここを見ながら終わらせます。
$ soracom vpg register-gate-peer --outer-ip-address 172.19.8.253 --vpg-id ********-****-****-****-************
{
"innerIpAddress": "10.18.216.109",
"netmask": null,
"outerIpAddress": "172.19.8.253",
"ownedByCustomer": true
}
SORACOM Airに
これは公式ドキュメント https://dev.soracom.io/jp/start/gate/#step5
にも書いてある事で出来るはずです。
今回はSORACOM Airを使わないで楽しむことが目的なので、割愛します。
SORACOM Beamに
SORACOM Beamには100.127.127.100というIPアドレスがついています。
このネットワークにアクセス出来ると良いですね。
とりあえず、単純にRouteTableに100.127.0.0/16へのルートをPeeringに向けてみます。
$ nmap 100.127.127.100
Starting Nmap 6.40 ( http://nmap.org ) at 2016-11-01 14:58 UTC
Note: Host seems down. If it is really up, but blocking our ping probes, try -Pn
Nmap done: 1 IP address (0 hosts up) scanned in 3.03 seconds
SORACOM Funnelに
Beamのときと同様にfunnel.soracom.io (100.127.65.43)にも
$ nmap 100.127.65.43
Starting Nmap 6.40 ( http://nmap.org ) at 2016-11-01 15:01 UTC
Note: Host seems down. If it is really up, but blocking our ping probes, try -Pn
Nmap done: 1 IP address (0 hosts up) scanned in 3.03 seconds
さいごに
結論、頑張ったけど、EC2からBeamにもFunnelにも到達することはできませんでした。
もし、EC2から直接BeamやFunnelにアクセス出来たならば、
MQTTのフルマネージドサービスを手に入れることができ、
SORACOMをIoTのサービスではなく、データフローのサービスとしても楽しむことが出来るはずです。
VPGはセットアップの時に 980 円/回 (税別)がかかるのと、
VPG 利用料金: 1時間あたり 50 円 (税別)
VPC ピア接続利用料金: 1ピア接続・1時間あたり 10 円 (税別)
[2016/11/1 現在]
がかかるので遊び終わったら削除する事と、無駄にVPGを作成しないことで
突然の課金にびっくりすることはないでせう。
と、自己満足に浸ったところで、11/1分はおしまいです。