はじめに
Sreake事業部のsatokenです。
普段はお客様向けのSRE案件も担当していますが、弊社SaaSのReckonerのSREも兼務しています。
これまでReckonerからDataソースにアクセスするときはインターネット経由でアクセスする方法でしたが、今回アット東京のATBeXと連携することにより、アット東京が提供する閉域接続サービスを利用してアクセスする方法が選択できるようになりました。
プレスリリース:スリーシェイク「Reckoner」とアット東京「ATBeX」、セキュアで効率的なデータ連携を実現
https://prtimes.jp/main/html/rd/p/000000186.000024873.html
アット東京について
アット東京は国内でデータセンターサービスとコネクティビティサービスを提供する会社です。
https://www.attokyo.co.jp/
アット東京のコネクティビティサービスの1つであるATBeXは、メガクラウドをはじめ、さまざまなITサービス、データセンター間接続を、顧客の要件に合わせてオンデマンドで利用することを可能にするネットワークプラットフォームサービスです。
詳細はHPをご覧ください。
https://atbex.attokyo.co.jp/about/
ATBeX ServiceLinkによるGCPとの接続
Reckonerの環境があるGCPとオンプレ環境を想定するNWを接続する場合はCloud Interconnectを利用します。Cloud Interconnectには以下の方法があります。
- Dedicated Interconnect
- Partner Interconnect
アット東京ではどちらの接続も対応していますが、今回はPartner Interconnectで検証をすることにしました。
接続までのフローは「Google Cloud のつなぎ方 ATBeX開通手順書」をご確認ください。

GCPのドキュメントでは以下の流れとなります。
今回の構成です。
今回検証に使用したアット東京のDC内「Cloud Lab」からPertner Interconnectを介してお借りしたCiscoルータとReckonerのGCP環境のCloud Routerと接続をします。
ルータにpostgreをインストールしたラズパイを接続してReckonerからDBに接続してデータを取得できるか試してみます。

1. VLANアタッチメントを作成する
Reckonerのインフラはterraformで管理していますので、検証用のCloud RouterとVLANアタッチメントを作成するコードを作成してapplyしました。

Cloud RouterにセットされたVlanアタッチメントはまだBGPセッションは出来ていない状態です。

2. サービスプロバイダからの接続をリクエストする
VLANアタッチメントを作成すると、ペアリングキーというものが出来るので申し込み用紙に記載してアット東京に送ります。[^1]

3. 接続を有効にする
申し込みをしてから数日後、GCPからメールが飛んできました。

terraformから接続を有効にしようとしたら、既に弊社社長が有効にしてくれました。

4. オンプレミスルーターを構成する
4月某日、ReckonerのSREメンバーでアット東京のDCを訪問しました。
DC内のCloud Labでお借りしたCiscoのルータを設定してGCPと接続します。
Ciscoのコマンドなど久しぶりに打つメンバー、つながるか不安でしたが無事つながりました。
※Cloud RouterとBGPのピアリングが貼れた瞬間

GCPのコンソールでも接続の確認ができました。

BGPのピアが貼れたら適当なPodを作成してオンプレを想定したラズパイに接続できるか確認します。
$ kubectl run pgsql-client --image postgres:13 --command -- sleep infinity
$ kubectl exec -it pgsql-client -- bash
psqlコマンドでDBに接続できました。

Reckonerから接続の設定を入れて、ワークフローを実行してみます。

postgresに入れていたサンプルデータをワークフローで取得することができました。

検証風景① お借りしたCiscoルータと持ち込んだラズパイを接続した様子です。

検証風景② DC内のCloud Lab、非常にキレイでした。

検証風景③ DC内にある売店の@SQUAREではケーブルなどが販売されていました。ならではという感じで驚きました。

おわりに
今回はアット東京のATBeX ServiceLink for Google Cloud Interconnectを利用してオンプレのDBに閉域接続でアクセスできるか検証してみました。
これまではReckonerからインターネット経由でのデータアクセスが主でしたが、今回アット東京とのパートナーにより閉域接続でもアクセスできるようになりました。
Reckonerとデータを安全に接続したいという場合は、Reckonerとアット東京にぜひお問い合わせください。
「Reckoner」サービスサイト:https://reckoner.io/