2
Help us understand the problem. What are the problem?

posted at

updated at

おうちK8sにカフェからMacで安全にリモート接続したい

はじめに

※QiitaEngineerFesta 2022 「remote.it を使って○○に接続してみた!」 に参加して記載しました。

タイトルにK8sとありますが、今回の内容にKubernetesはほとんど登場しません。
おうちのMacBookProに立てたローカルKubernetes環境に、カフェなどの外出先からリモート接続して使いたいというお話です。
今回はリモート接続にあたり、Remote.itというサービスを利用してみました。

なぜ Mac から Mac にリモート接続したいのか?

自宅では、開発および諸々の技術検証のためにローカルのK8s環境「おうちK8s」を運用しています。
クラウドのマネージドK8sを利用することも可能ですが、プライベートな環境で色々と細かい部分に手を入られるローカル環境はやはり便利です。
母艦となるMacBook Proには、無償かつ簡単に本格的なKubernetes運用が可能な「Tanzu Community Edition」をkind方式(Kubernetes in Docker)で使用しています。
※Tanzu Community Editionのインストールはこちらから

そして、カフェなど外で仕事をするときは、軽快な MacBook Air (M1)を持ち歩いています。
こちらにもローカルK8sを入れても良いのですが、コンテナ環境の二重管理は面倒ですし、できれば端末負荷をかけたくありません。そこで、カフェから自宅のMacにリモート接続したいニーズが出てきます。
そして何より、オサレなカフェでオサレMacbook Airでスマートにオサレ仕事するのは誰しもモチベーションが上がるものです。

なぜ Remote.it を使うのか?

カフェからおうちにリモート接続するためには、フリーWi-Fiにつなげて、フリーのVPNサービスを使ったりするわけですが、ご存知の通りセキュリティ的には非常に不安があります。Remote.itを使えばVPN無しでセキュアに接続ができるというメリットがあるとのことで、早速試してみました。
ここまでの超簡単なイメージ図は以下の通りです。
スクリーンショット 2022-07-09 1.45.07.png

Remote.it の始め方

以下の簡単なステップでリモート接続が可能になるようです。

  1. Remote.it のアカウントを作成
  2. 接続先のデバイスにエージェントをインストール
  3. サービス(SSH, RDP等)の設定を追加
  4. Remote.it を経由してリモート接続

1. Remote.it のアカウントを作成

まずは、Remote.itのトップページの「はじめる」からアカウントを作成します。
01.png

メールアドレスとパスワードを入力します。

登録したメールアドレスに送付されるメールのリンクをクリックして認証します。

登録したメールアドレスとパスワードでサインインします。
Googleアカウントでのログオンも対応しているようです。

サインインするとこのようなページが表示されます。
スクリーンショット 2022-07-08 17.03.46.png

ちなみに、初期サインイン時には、簡単なチュートリアルが実行されます。
AWS VPCに各種サービス(SSH, RDP, HTTP, SQL)でリモート接続する流れや雰囲気を簡単に掴むことができます。
スクリーンショット 2022-07-08 17.09.11.png

2. 接続先のデバイスにエージェントをインストール

以下のページからエージェントをダウンロードします。

今回はMacのデスクトップアプリ版を試してみます。
スクリーンショット 2022-07-08 17.44.26.png

インストール手順は以下のドキュメントに従って進めます。

スクリーンショット 2022-07-08 18.01.49.png
デスクトップアプリの起動後、「Settings」→「Set up this device」を選択することで、自身のマシンの登録作業が開始されます。

好きな名前(接続先を示す)を設定し、「REGISTER」を選択します。
スクリーンショット 2022-07-08 18.07.48.png

無事に登録されました。
03.png

3. サービス(SSH, RDP等)の設定を追加

Remote.itのサービス追加設定の前に、Mac自身の設定変更を実施します。

「システム環境設定」→「共有」から、以下を有効にします。

  • リモートログオン:SSHのため
  • 画面共有:VNCのため
    スクリーンショット 2022-07-08 18.19.52.png

Remote.it でデバイスを選択し、Serviceの「+」マークからサービス設定を追加しています。
まずはSSHを追加します。
スクリーンショット 2022-07-08 18.17.32.png
次にVNCを追加します。
スクリーンショット 2022-07-08 18.28.20.png

ちなみに、このサービス追加ではデバイス側に有効になっているサービスを自動検出してくれるようです。
有効になっていないサービスを選ぶと「No service found running on port and host address.」と表示され追加することができません。

4. Remote.it を経由してリモート接続

ここからは外に出てカフェ作業です。
持ち出したMacBook Airからリモート接続を行なっていきます。こちらのマシンにはRemote.itのエージェントも何も入れていません。
Wi-Fiに接続後、ブラウザ(Chrome)からRemote.itのサイトにログオンします。
※以降全てブラウザとMac標準アプリで事足りています。

デバイスに先ほど登録したサービスが表示されているので、「ADD TO NETWORK」を押してしばらくすると、このようにRemote.it接続用のアドレスが払い出されます。
「Connect」を選択して接続を実施します。
スクリーンショット 2022-07-08 21.24.35.png

sshの接続許可を求めるダイアログが表示されるので、「許可」を選択します。

はい、簡単にリモートSSH接続ができました。
ここからはkubectlを使って、自宅と同じようにローカルKubernetesの操作が可能です。やったね!
スクリーンショット 2022-07-08 21.32.56.png

VNCも同様に、「ADD TO NETWORK」を押してアドレスを払い出してから、そのアドレスをコピーします。
スクリーンショット 2022-07-08 21.42.38.png

MacのFinderから「移動」→「サーバへ接続」を選択し、vnc://〜の後ろにコピーしたアドレスをペーストして接続を実行します。
スクリーンショット 2022-07-08 21.49.11.png

VNCも問題なく接続できました。
特にネットワークの遅延なども感じることなく、スムーズに操作が可能です。
スクリーンショット 2022-07-08 21.47.25.png

デバイスステータスのSlack通知設定

リモート接続で考慮が必要な点といえば、接続先デバイスの死活監視です。
Slack連携の機能でデバイスのオンライン/オフラインステータスを通知することが可能なようなので、せっかくなので設定してみます。

Webhookに対応しているため、Slack APIから設定していきます。
「Create an App」を選択します。
スクリーンショット 2022-07-08 22.58.53.png

「From scratch」を選択します。

適当なApp Nameを記入し、自身のSlack Workspaceと連携させてから「Create App」を選択します。

Slack Appの設定をしていきます。
「Incoming Webhooks」を選択します。

「Activate Incoming Webhooks」をOnにして、Webhookを有効化します。

少し下の方にスクロールして、「Add New Webhook to Workspace」というボタンを選択します。

Slack Appが連携するチャンネルを設定し、「許可する」を選択します。
ここで設定したチャンネルにRemote.itからのデバイスステータスの通知が届きます。

そうすると元の画面にWebhook用のURLが作成されますので、これをコピーします。
スクリーンショット 2022-07-08 23.13.11.png

Remote.itの管理画面に戻ります。
「Settings」→「Notifications」から「Webhook」のトグルを有効化します。
URL ENDPOINTに先ほどコピーしたURLをペーストして「SAVE」を選択します。
これで設定は完了です。
スクリーンショット 2022-07-08 23.13.54.png

通知テストのため、接続先デバイスのネットワークを切断してしばらく待ってみました・・・。
5分くらいするとオフラインになった旨のメッセージが届きます。
ネットワークが復活すると、こちらもメッセージを無事に受信しました。
これでどこでも通知が受け取れるので安心です。
04.png

まとめ

今回は、非常にシンプルなユースケースとして、Macへのリモートコンソール接続をご紹介しました。
自宅に母艦のMacやWindowsを置いて、カフェやコワーキングスペースからリモート接続するようなケースで、簡単かつ安全に接続することが可能なRemote.itは、個人利用であれば5台までフリーなこともあり、便利に使えるのではないでしょうか。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Sign upLogin
2
Help us understand the problem. What are the problem?