大瀧隆太(430)58この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。Pertinoで構築する次世代VPNシリーズの3本目行きます!今回はコンテナエンジンのDockerと組み合わせてどこからでもアクセスでき、かつセキュアなアプリケーション実行環境を構築してみたいと思います。PertinoをDockerコンテナで実行するメリットPertinoはクラウドベースのSSL-VPNソフトウェアとしてリモートアクセス、クラウド間接続に利用できます。Dockerはアプリケーションコンテナエンジンとしてアプリ実行環境を簡単に移行したり、複数のアプリ実行環境を連携させることができます。この2つを組み合わせるメリットとして、以下が挙げられます。Dockerでアプリの開発環境を構築する場合に、Pertinoクライアントを実行するマシンであればどこからでも開発用マシンで実行するアプリケーションにアクセスすることができるようになります。開発用PCもPertinoサーバーにHTTPSでアクセスできれば良いので、企業のネットワークで外部アクセスのポリシーが厳しい場合でも対応できます。Pertinoクライアントを実行するマシンからアクセスできるのは明示的に許可するDockerコンテナのみなので、開発用PCのセキュリティも比較的管理しやすいという特徴もあります。本番環境で利用する場合も、社内外の限られたユーザーにアプリケーションを配信するケースで有用です。EC2のインスタンス(仮想マシン)でPertinoクライアントとアプリケーションを実行することができます。Pertinoであれば、接続するPertinoクライアントの追加・削除や後述のDNS設定による配信するアプリケーションコンテナの切り替えをWeb管理コンソールから簡単かつ柔軟に行うことができます。構成DockerでPertinoクライアントを実行する構成は、Pertino社のGitHubで以下2通りのDockerfile(Dockerイメージの構成ファイル)が公開されています。Pertinoクライアントとアプリケーションを別のコンテナとして実行し、Dockerのネットワーク機能でアプリケーションからPertinoのSSL-VPNを利用する既存のDockerfileの流用やコンテナ内のプロセス管理を考慮すると、別コンテナ構成が実用的と判断して今回は別コンテナをやってみます。端末PCとサーバーを別に書きましたが、同マシンでも問題ないため、MBAで両方動かしてみました。バージョン1.5Pertinoは接続デバイス数3台まで無料のフリープランがあるため、今回の範囲であればアカウントを作成するだけで簡単に試すことができます。Pertinoデバイス認証(API)キーの生成まずはPertinoクライアントで使うデバイス認証キーを作成しましょう。シリーズのここまでの回では、Pertinoクライアント実行時にPertinoのアカウント情報(メールアドレス&パスワード)を入力してPertinoサーバーに接続していました。パスワードの管理性や権限の粒度から、今回のようなサーバーマシンでのPertinoクライアントの実行にはAPIキー(デバイス認証キー)が適切です。デバイス認証キーの詳細は、以下のFAQを参照してください。ServicePertinoの管理画面下部のツールバーにある[Settings]をクリックします。Download]ボタンをクリックします。確認ダイアログが表示されたら[Generate]ボタンをクリックします。キーが記載されたテキストファイルのダウンロードが開始します。apikey.pertinoというファイル名のテキストファイルで保存されるので、中にあるデバイス認証キーを控えておきます。Hubに公開しました。今回はこちらを利用してみます。runでのコンテナ実行時のポイントは以下です。--nameオプションでコンテナ名を指定する。logsコマンドで確認できます。:(以下略)$接続できているようですね。Pertinoの管理画面からもDockerコンテナが確認できます。続いて、アプリケーションを実行するコンテナです。今回はブログエンジンGhostのDockerコンテナを実行します。--netオプションで特定のコンテナ(今回はpertinoコンテナ)とのネットワークインターフェースの共有を構成するのがポイントです。することで、アプリケーションコンテナでListenするポートに、Pertinoクライアントが受信するトラフィックが転送されます。pertino$これでOKです。動作確認では、端末のWebブラウザでGhostにアクセスしてみます。アクセス先はPertinoクライアントに割り当てられるDNS名とIPアドレスの両方が利用できます。GhostコンテナはデフォルトでTCP2368番でListenします。Ghostの初期画面が表示されました!まとめPertinoをDockerコンテナで実行し、アプリケーションをSSL-VPN経由で配信する構成を紹介しました。開発、本番両方に活用できるお手軽・セキュアなアプリ配信基盤として便利な様子が見ていただけたでしょうか。アプリケーション側の構成はリバースプロキシとしてHAProxyやNginxのコンテナで受けて他のコンテナに転送したり、コンテナ外のDBなどと組み合わせることももちろん可能ですので、いろいろ応用できるのではないでしょうか。4,304,327ゲストブロガーです。株式会社ソラコムでソリューションアーキテクトやってます。クラウドの自動化やIoT周りについての記事を書きます。リモート】クラスメソッドの会社説明会を開催しますクラスメソッドでは、AWS・AI・ビッグデータ・モバイルなどの技術職や営業のメンバーとして一緒にお仕事をする仲間を大募集しています。#cmdevio新型コロナウイルスの感染拡大を受け、本イベントを延期させていただくことになりました(開催時期未定)。お申し込みいただいた皆様には大変申し訳ございませんが、何卒ご理解いただけますようよろしくお願いいたします。AWSについてライトに色んな情報交換をしましょう。カフェ店長のオカノです。今日はオフィスに用があるので、通勤ラッシュを避けて出社しました。この子は新メンバーのさめくんです。在宅勤務が推奨されているのでオフィスが閑散としており、すこしさみしそうです。使いたいときの注意点を書きました。本が出ていたので読んでみたところよかったので紹介させていただきます。