CLI
前提条件
- 事前に Tunaclo AC サービスにお申込みください。
- ご契約時に案内しているガイドに従い、CLI ツールの初期設定を完了してください。
- Linux の仮想マシン(VM)をご用意ください。
- VM には予め Docker をインストールください。( Docker公式 )
システムの構成

本クイックスタートでは以下の流れとなります。
Step 1. Web サーバーの準備
Step 2. Tunaclo AC へログイン
Step 3. クライアントの作成
Step 4. サービスの作成
Step 5. ルートの作成
Step 6. Agent の起動
Step 7. 接続テスト
Step 8. クリーンアップ
Step 1. Web サーバーの準備
まずは、VM 上に Web サーバーを立てましょう。ここでは NGINX のコンテナを用いて Port 80番で起動します。
$ docker run -d --name nginx -p 8000:80 nginx
以下のように localhost:8000
にアクセスします。
$ curl http://localhost:8000
正常に起動できていれば、以下の様な NGINX の応答が返されます。
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
body {
width: 35em;
margin: 0 auto;
font-family: Tahoma, Verdana, Arial, sans-serif;
}
</style>
</head>
<body>
<h1>Welcome to nginx!</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p>
<p>For online documentation and support please refer to
<a href="http://nginx.org/">nginx.org</a>.<br/>
Commercial support is available at
<a href="http://nginx.com/">nginx.com</a>.</p>
<p><em>Thank you for using nginx.</em></p>
</body>
</html>
Step 2. Tunaclo AC へログイン
契約時にご案内する手順に従い CLI ツールをダウンロードしてください。
以下のコマンドを使い、アカウント情報をもとに CLI ツールの設定を更新します。
projectName には契約しているプロジェクト名を、userName にはユーザー名を指定してください。
$ tunaclo config --project projectName
$ tunaclo config --user userName
以下のコマンドを使って Tunaclo AC にログインしてください。Password には初期設定で入力したユーザーのパスワードを入力してください。
$ tunaclo login
Password :
$
http_proxy
および https_proxy
を適切に設定してください。
Step 3. クライアントの作成
作成するクライアントのパラメーターを JSON 形式(client.json
)で指定します。
{
"clientName" : "MyClient",
"description": ""
}
clientName
には Project 内で一意なクライアント名を付けます、ここでは MyClient
を設定します。
description
には任意の情報を入力できます。ここでは特に指定をしません。
client.json
の用意ができたら、以下のコマンドを使ってサービスを作成しましょう。
$ tunaclo create client -j client.json
{ "clientID": "6Y2TaUepsrV8qZpNpKvEc", "clientKey": "JxFeVTstVsZGvL7Z5XAgb" }
クライアントの作成に成功すると、clientID
と clientKey
が発行されます。これらの情報は
Step 6.
で使用するため無くさないようメモしておいてください。
Step 4. サービスの作成
クライアントの作成が完了したら、次はサービスを作成しましょう。
クライアントの作成と同様に、作成するサービスのパラメーターを JSON 形式(service.json
)で指定します。
{
"serviceName": "MyService",
"description": "",
"replicaNum": 1,
"endpoints": [
{
"virtualURL": "http://127.0.0.1:30000",
"serviceURL": "http://{NGINXが起動するマシンのIPアドレス}:8000",
"grantSubdirAccess": true
}
]
}
serviceName
には Project 内で一意なサービス名を付けます、ここでは MyService
を設定します。
description
には任意の情報を入力できます。ここでは特に指定をしません。
replicaNum
は Agent のレプリカ数を指定します。ここでは 1(同じ Agent ID での接続を許容しない)を指定します。
virtualURL
はクライアントから serviceURL
で指定するサービスにアクセスするためのURLです。ここでは “http://127.0.0.1:30000” とします。
serviceURL
には公開したい NGINX サービスの “http://{NGINXが起動するマシンのIPアドレス}:8000” を指定します。
grantSubdirAccess
は指定した Service URL を含むサブディレクトリーへのアクセスを許容します。ここでは true
を指定します。
この場合、Service URL に
localhost
や 127.0.0.1
を指定すると Back Agent からアクセスできません。そのため、{NGINXが起動するマシンのIPアドレス} にはご用意した VM の IP アドレスを指定ください。
service.json
の用意ができたら、以下のコマンドを使ってサービスを作成しましょう。
$ tunaclo create service -j service.json
{ "serviceID": "kssq6kz3BJZxWT8VecU8c", "serviceKey": "Kp892BB539rWDZAx2Fnb" }
サービスの作成に成功すると、serviceID
と serviceKey
が発行されます。これらの情報は
Step 6.
で使用するため無くさないようメモしておいてください。
Step 5. ルートの作成
作成したサービス MyService
とクライアント MyClient
をつなぐ許可を設定します(Tunaclo AC ではこれをルートと呼びます)。
以下のコマンドを使ってルートを作成しましょう。
$ tunaclo create route -s "MyService" -c "MyClient"
Succeeded
ルートの作成に成功すると、Succeeded と表示されます。
Step 6. Agent の起動
Agent の起動にあたり、ご契約時に提供されているガイドに従い最新のコンテナ版 Agent をダウンロードください。
次に、Agent 起動の前にご契約 Project の ID を以下のコマンドで確認しておきます。
$ tunaclo list services | grep projectID
projectID : c2bf7598-ffc4-4d88-aaaa-4afe67ed3cc
クライアント側(Front Agent)、サービス側(Back Agent)の順で以下のように起動してみましょう。
-
クライアント側
$ docker run -d --restart=unless-stopped --log-opt max-size=20m --log-opt max-file=5 --name MyClient-agent -p 30000:30000 tunacloac/frontagent:latest front_agent -controller https://api.kuroshio.tunaclo.net -projectID {projectID} -agentID {agentID} -agentKey {agentKey}
{projectID} には確認した Project の ID、{agentID} {agentKey} には Step 3. でメモしておいた情報をそれぞれ指定します。
-
サービス側
$ docker run -d --restart=unless-stopped --log-opt max-size=20m --log-opt max-file=5 --name MyService-agent tunacloac/backagent:latest back_agent -controller https://api.kuroshio.tunaclo.net -projectID {projectID} -agentID {agentID} -agentKey {agentKey}
{projectID} には確認した Project の ID、{agentID} {agentKey} には Step 4. でメモしておいた情報をそれぞれ指定します。
Agent を PROXY 環境下で起動する場合は、以下のページもご参考ください。
以下のコマンドを使い Agent が正常に起動できているか確認します。
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
cd6a243c0a13 tunacloac/backagent:v1.1.0 "back_agent -control…" 6 seconds ago Up 4 seconds MyService-agent
82bba6ced67c tunacloac/frontagent:v1.1.0 "front_agent -contro…" 34 seconds ago Up 31 seconds 0.0.0.0:30000->30000/tcp, 30001/tcp MyClient-agent
起動に成功すると Back Agent、および Front Agent の STATUS
が Up
として表示されます。
Step 7. 接続テスト
クライアント側で curl などを用いて http://127.0.0.1:30000
にアクセスすると Tunaclo AC 経由で Web サーバに接続できます。
$ curl http://127.0.0.1:30000
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
body {
width: 35em;
margin: 0 auto;
font-family: Tahoma, Verdana, Arial, sans-serif;
}
</style>
</head>
<body>
<h1>Welcome to nginx!</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p>
<p>For online documentation and support please refer to
<a href="http://nginx.org/">nginx.org</a>.<br/>
Commercial support is available at
<a href="http://nginx.com/">nginx.com</a>.</p>
<p><em>Thank you for using nginx.</em></p>
</body>
</html>
接続に失敗する(NGINX の応答が返ってこない)場合は、以下のトラブルシューティングガイドもご参考ください。
PROXY 環境下で curl コマンドを実行する場合は、以下のページもご参考ください。
Step 8. クリーンアップ
以下の手順に従い、クイックスタートで作成したリソースを削除します。
- Agent および Web サーバの停止と削除
- ルートの削除
- サービスの削除
- クライアントの削除
Agent および Web サーバの停止と削除
Docker コンテナで作成した Agent と Web サーバを削除します。
それぞれ以下の手順を実施してください。
-
クライアント側
$ docker stop MyClient-agent $ docker rm MyClient-agent
-
サービス側
$ docker stop MyService-agent $ docker rm MyService-agent
-
Webサーバ
$ docker stop nginx $ docker rm nginx
ルートの削除
以下のコマンドを使いルートを削除します。
$ tunaclo delete route -s MyService -c MyClient
Succeeded
サービスの削除
以下のコマンドを使いサービスを削除します。
$ tunaclo delete service -n MyService
Succeeded
クライアントの削除
以下のコマンドを使いクライアントを削除します。
$ tunaclo delete client -n MyClient
Succeeded
以上で、クリーンアップは終了です、お疲れ様でした。