開発エンジニアのネットワークスキル

システム開発をする上で他社が開発しているシステムとインターフェイス連携を実現する機能を盛り込むということは、それなりに難易度の高いものだと感じています。 要件・仕様・インフラ等、あらゆる点でお互いの前提や思惑が異なることが多いので、それらをすり合わせてお互いの落としどころを見出すだけでも一苦労だと思います。 今回は、そんなインターフェイス連携をする際に、インフラ面(ネットワーク設定)で苦労したことをお話させていただきます。

経緯

今回我々が開発しているシステムと、他社が開発し運用している既存のシステムとをインターフェイス連携する必要があったのですが、システム間をVPNで接続することを要求されました。 相手方システムは既に稼働しているものなので、おいそれとインフラ面を変更することはなかなか難しいです。その他、いろんな事情も関わってきますが、今回は我々が合わせなければいけませんでした。

ネットワーク、得意ですか?

唐突ですが、開発エンジニアの皆さん「ネットワーク、得意ですか?」

もしかしたら私の偏見かもしれませんが、普段開発系で頑張っているエンジニアの皆さんはアプリケーションについてはプロフェッショナルでも、ネットワーク系が苦手傾向にある方が多いのではないでしょうか。開発部のインフラ系を専門とする方であっても「ネットワーク得意です!」と自信を持って言える方は少ないのではないかと個人的には感じます。特にVPNに関する知識になってくると、開発部の作業範囲というより、もはや情報システムに携わる方の領域になると思います。

というわけで、私も当然詳しくはないので、社内でもネットワーク系のスペシャリストたる情報システム部門の知り合いの方(Kさん)に相談し、設定を手伝っていただけることになりました。

いざ、VPN構築

いくら詳しい人に手伝っていただけるからと言って、さすがに丸投げするわけにもいきませんので、事前準備をしていきます。まず、昔学んだ少ないネットワーク知識を頭の片隅から引っ張り出し自分でも仮説を立てて色々と調査をし、VPNで相手方システムと接続するにあたりこちら側のシステムにどういう設定を施すべきなのかを一生懸命考えてみます。

こちら側はAzureのクラウド環境にあるので、そこから他システムとVPN接続するには、どうやら下記のような構成にする必要がありそうです。

VPN接続のためのネットワーク構成
色々と調べて出てきた図を参考にし必要な構成は見えてきました。そうするとあとは、仮想ネットワークゲートウェイとローカルネットワークゲートウェイがそれぞれどういう役割のものなのかがなんとなく分かれば、スムーズに話ができそうな気がします。

  • 仮想ネットワークゲートウェイ:Azureの仮想ネットワークと外部ネットワーク(オンプレミスや他のVNet)を接続
  • ローカルネットワークゲートウェイ:Azureと外部ネットワークを接続するために、外部ネットワークの情報を定義

ということで、凡そ必要な設定が見えてきた感覚があります。 この整理した情報と相手方システムの管理者の方からいただいた情報を元に、当社情報システム部門のKさんと必要な設定をどこにどのように実施すべきかをすり合わせ、無事に相手方システムに接続することができました。Kさんは、検証用のルータを用意してそれを相手方システムのVPNゲートウェイと見立てて接続を検証までしていただき、本当に頭が上がりません。ありがとうございました。

若手エンジニアに望むこと

普段PLをやりながらではありますが、メンバーには本来的なタスクを頑張ってもらいたいという想いからインフラタスクを割と私が引き取っています。若い頃に多少インフラをかじった経験があるため、当時はオンプレが主流であったもののクラウドでもなんとなくの勘所は働くものですね。それもありますが、あまり若手がインフラに興味を示さなくなった気もしていて、「自分でやるか・・・」となっています。ですが、「インフラ、やりたいです!」という若手が現れたら厳しくも暖かく育てていきたいです。

やはりインフラには『仮説を立てて検証してみる』という姿勢が欲しいので、そういうスタンスを持ち、ネットワークを食わず嫌いしないエンジニアをお待ちしています。(「VPN構築して」という話はもうないかもしれませんけど)

おわりに

KENTEMでは、様々な拠点でエンジニアを大募集しています!
建設×ITにご興味頂いた方は、是非下記のリンクからご応募ください。
recruit.kentem.jp career.kentem.jp