さくらのクラウドシェルとは、ブラウザ上のシェルからクラウドを操作
《さくらのクラウドシェル》は、ウェブブラウザ上で利用できるシェル環境(2023年5月25日公開)です。
このページは、《さくらのクラウドシェル》の説明と、 usacloud と Hashicoorp Terraform を使って環境構築するための API 取得方法や、各ツールの利用手順をまとめました。
ブラウザで操作する方法とは?
利用するには、さくらのクラウドシェル のページを開き、「無料で試す」ボタンをクリックすると、すぐに利用できます。
対応ブラウザは Google Chrome、Mozilla Firefox、Microsoft Edge、Apple Safari(各最新バージョン)です。
この画面は、sl
コマンドを実行した結果です( sudo apt-get install sl
で入れて、 /usr/games/sl
を実行しました)。
ブラウザさえあれば操作できますので、パソコンだけでなく、スマートフォンやタブレットからも操作できます。たとえば、社内や学内ネットワークがセキュリティでガチガチに固められて雑に試せる Linux 環境が欲しい方のみならず、外出先で急にサーバの疎通確認が必要になった場合にも利用できるので安心です
細かな注意点としては、データが保存されなかったり(強制終了したり、20分間操作がない場合、ブラウザを閉じた場合)、会員IDを利用しないと外部と通信できないなどの制約があります。
※《さくらのクラウドシェル》アウトバウンドとの通信は、会員登録が必要かつ、アウトバウンド(インターネット側への通信)ポートが22、53、80、443、1024~65525のみです。インバウンド(さくらのクラウドシェル上の環境)への通信は許可されていないため、ウェブサーバを起動してもアクセスできません(ただし、アクセスできるようにする方法はこちらの記事が参考になります)。
※その他の制約はサイトの「よくある質問」をご覧ください。
シェル環境とは?
「シェル環境」とは、コンピュータを操作するための場所であり、コマンドライン・インターフェース(CLI)として機能します。《さくらのクラウドシェル》とは、このシェル環境をウェブブラウザ上から利用できる無料のサービスです。現時点では Ubuntu 22.04 の Linux 環境を用いて、
- Vim、Emacs、nano のようなテキストエディタ
- Git、Ansible、Terraform 等の開発者向けツール
- Python、PHP、Golang、Node.js、Ruby 等の開発言語
などが初めから入っています。Ubuntu ですから、初めから入っていないツールも sudo apt
や sudo apt-get
等のコマンドでインストール可能です。
《さくらのクラウドシェル》を使い始める
https://www.sakura.ad.jp/services/cloudshell/ をブラウザで開くと「無料で試す」のボタンがあるのでクリックします。会員IDでログインする場合も、このボタンをクリックします。
次の画面では、約款(利用規約)の確認を求められます。基本約款、さくらのクラウドシェルサービス約款の内容を確認し、【約款に同意する】をクリックしてチェックを入れた後、【会員IDで利用する】をクリックします。会員IDを使わない場合は【すぐに利用する】をクリックします。
その次の画面では【login】をクリックします。
さらに会員IDでログインをすると、数秒ほどで次のような画面が出たら操作できるようになります。
画面の下にある各項目をクリックすると、表示画面をカスタマイズできます。
- 「Default font」……フォントの選択です。「Pgoramming font」にすると、
0
など操作やコーディング時の可視性が高まるフォントに切り替えられます。 - 「Medium size」……フォントの大きさを変更できます。
- 「Night theme」……デフォルトは暗めのテーマですが「Hack」「Colorless」を選べます。
- 「None image」……背景画像です。「桜葉愛」「まりな」「vpsちゃん」を選べます。
なお、操作せず20分経過すると操作ができなくなります。画面の下に出る「Reset」(リセット)ボタンをクリックすると、環境をリセットして再利用できます。
《さくらのクラウドシェル》で usacloud と Terraform を動かす
《さくらのクラウド》はコントロールパネルから操作するだけでなく、APIやコマンドラインツールを使った操作や管理も可能です。もちろん、《さくらのクラウドシェル》からも、サーバの作成や管理を行えます。
以降は、実際にシェル上から各種ツールを使う手順の紹介です。
※《さくらのクラウドシェル》は無料ですが、usacloud や Terraform でサーバ等のリソースを実際に作成しますと、API による《さくらのクラウド》の操作になるため、通常通り利用するリソースにおうじた料金が必要ですのでご注意ください。
事前準備(APIキーの作成)
usacloud と Terraform を使うには、あらかじめ「APIキー」の作成が必要です。
まだ作成していない場合は、 ドキュメントの手順 を参考にAPIキーを作成します。APIキーを作成すると、
- アクセストークン
- アクセストークンシークレット
が作成されます。どちらも以降の操作で必要なので控えておきます。
usacloud を使う
コマンドラインで《さくらのクラウド》を操作する usacloud
CLI は、《さくらのクラウドシェル》上に初めから入っていますので、インストール作業は不要です。
利用開始にあたり、usacloud config
コマンドを実行する初期設定が必要です。
% usacloud config
実行すると、API キー等の入力が求められますので、順番に入力します。
Setting SakuraCloud API Token =>
Enter token: 【ここにアクセストークンを入力してエンター】
Setting SakuraCloud API Secret=>
Enter secret: 【ここにアクセストークンシークレットを入力してエンター】
Setting SakuraCloud Zone=>
Enter Zone[tk1a/tk1b/is1a/is1b/tk1v]: tk1a ←東京第1ゾーン
Setting Default Output Type=>
Enter Default Output Type[table/json/yaml]: table ←出力を表形式
Written your settings to /home/sakura/.usacloud/default/config.json ←設定ファイルの保存場所
最後に、次のようにシェルに戻ってきたら、セットアップは完了です。
※別の方法として、環境変数で定義する方法もあります。
% export SAKURACLOUD_ACCESS_TOKEN=【アクセストークン】
% export SAKURACLOUD_ACCESS_TOKEN_SECRET=【アクセストークンシークレット】
% export SAKURACLOUD_ZONE=【ゾーン】
サーバ一覧を表示する
usacloud server ls
コマンドは、サーバ一覧を表示するコマンドです。既にサーバが作成済みの場合は、次のようにサーバ情報を確認できます。
サーバを作成する
usacloud server create
コマンドを実行すると、指定した条件どおりにサーバとディスクを作成します。東京第1ゾーンで、CPU1コア、メモリ1GB、ストレージは20GBのSSD、OSはUbuntuを選択するには次のように実行します。
% usacloud server create \
--zone tk1a \
--name myserver \
--cpu 1 \
--memory 1 \
--disk-name mydisk \
--disk-disk-plan ssd \
--disk-size 20 \
--disk-os-type ubuntu \
--disk-edit-host-name myserver \
--disk-edit-password mypassword \
--network-interface-upstream shared
コマンドを実行すると、確認が求められますので y
を入力します。その後、自動的にサーバ作成が進行します。
※処理によっては、時間がかかるかもしれません。タイムアウトして処理が中断されないように、定期的にエンターキー等を押すと安全です。
しばらく待つと、完了の表示になります。
コントロールパネルを開くと、ここでも作成されているのが確認できます。
さて、この状態では停止状態( InstanceStatus が down)のため、コマンドを実行して起動しましょう。usacloud server boot myserver
コマンドを実行し、 myserver
という今作成したサーバを起動します。※途中の確認プロンプトでは y
を入力します。
しばらく待つと、プロンプトが戻り、すぐにサーバが接続できる状態になります。
コントロールパネルを開くと、ここでもサーバが起動しているのが分かります。
サーバの停止・削除
サーバは作成できるだけでなく、削除も可能です。まずサーバの電源を停止した後、サーバとディスクのリソースを削除できます。
% usacloud server shutdown myserver
% usacloud server delete myserver
% usacloud disk delete mydisk
Terraform for さくらのクラウドを使う
TerraformはクラウドのAPIを扱える terraform
コマンドを通し、クラウドを操作します。usacloudもAPIを扱いますが、複数台のサーバやスイッチも含め、様々なリソースをファイル上で管理できる点が大きく異なります。Terraformでは、あらかじめインフラのあるべき状態をコードとして定義しておきます。そして terraform
コマンドを実行するだけで、複雑な構成を自動的に構築します。一旦システムが動き出せば、やはり設定ファイルをベースに構成を変えられますし、不要になれば環境をコマンド一つで削除するのも可能です。
terraformを使う前に、先ほどusacloud同様、APIキーとゾーンを環境変数 SAKURACLOUD_ACCESS_TOKEN
SAKURACLOUD_ACCESS_TOKEN_SECRET
SAKURACLOUD_ZONE
で設定しておきます。
% export SAKURACLOUD_ACCESS_TOKEN=【アクセストークン】
% export SAKURACLOUD_ACCESS_TOKEN_SECRET=【アクセストークンシークレット】
% export SAKURACLOUD_ZONE=【ゾーン】
以下は簡単なサーバを実行する手順です。
% mkdir terraform-sample && cd terraform-sample
% curl -sSL https://bit.ly/sakura-terraform-sample -o sacloud.tf
sacloud.tf
の中には、 Ubuntu 20.04 のサーバを1台起動する手順が書かれています。
% terraform init
% terraform apply
var.password
Enter a value: 【ここに8文字以上のパスワードを入力】
data.sakuracloud_archive.ubuntu: Reading...
data.sakuracloud_archive.ubuntu: Read complete after 0s [id=113201424330]
(省略)
Plan: 2 to add, 0 to change, 0 to destroy.
Do you want to perform these actions?
Terraform will perform the actions described above.
Only 'yes' will be accepted to approve.
Enter a value: 【yesを入力】
処理が始まると、自動的にディスクの作成、サーバの作成が進みます。全ての処理が終わればサーバが起動しますので、ログインできるかどうか確認します。Ubuntuのため、ログインユーザは ubuntu
、パスワードは先ほど入力したものを使います。
確認作業が終わったら terraform destroy
コマンドを実行し(確認画面では作成時のパスワードを入力し、確認プロンプトで yes
と入力します)、サーバとディスクを一度に消せます。
参考情報
- さくらのクラウドシェル | さくらインターネット
- さくらインターネット、会員登録不要で無償利用可能なオンラインシェル環境 「さくらのクラウドシェル」を2023年5月25日より提供開始 | さくらインターネット
- APIキー | さくらのクラウド ドキュメント
- 「さくらのクラウドシェル」でWebサーバを起動する(ngrok編) - Hateburo: kazeburo hatenablog