LoginSignup
7

さくらのクラウドシェルでusacloudやTerraformを動かそう

Last updated at Posted at 2023-05-27

さくらのクラウドシェルとは、ブラウザ上のシェルからクラウドを操作

さくらのクラウドシェル》は、ウェブブラウザ上で利用できるシェル環境(2023年5月25日公開)です。

このページは、《さくらのクラウドシェル》の説明と、 usacloud と Hashicoorp Terraform を使って環境構築するための API 取得方法や、各ツールの利用手順をまとめました。

ブラウザで操作する方法とは?

利用するには、さくらのクラウドシェル のページを開き、「無料で試す」ボタンをクリックすると、すぐに利用できます。

対応ブラウザは Google Chrome、Mozilla Firefox、Microsoft Edge、Apple Safari(各最新バージョン)です。

image.png

この画面は、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 aptsudo apt-get 等のコマンドでインストール可能です。

《さくらのクラウドシェル》を使い始める

https://www.sakura.ad.jp/services/cloudshell/ をブラウザで開くと「無料で試す」のボタンがあるのでクリックします。会員IDでログインする場合も、このボタンをクリックします。

image.png

次の画面では、約款(利用規約)の確認を求められます。基本約款、さくらのクラウドシェルサービス約款の内容を確認し、【約款に同意する】をクリックしてチェックを入れた後、【会員IDで利用する】をクリックします。会員IDを使わない場合は【すぐに利用する】をクリックします。

image.png

その次の画面では【login】をクリックします。

image.png

さらに会員IDでログインをすると、数秒ほどで次のような画面が出たら操作できるようになります。

image.png

画面の下にある各項目をクリックすると、表示画面をカスタマイズできます。

  • 「Default font」……フォントの選択です。「Pgoramming font」にすると、 0 など操作やコーディング時の可視性が高まるフォントに切り替えられます。
  • 「Medium size」……フォントの大きさを変更できます。
  • 「Night theme」……デフォルトは暗めのテーマですが「Hack」「Colorless」を選べます。
  • 「None image」……背景画像です。「桜葉愛」「まりな」「vpsちゃん」を選べます。

image.png

なお、操作せず20分経過すると操作ができなくなります。画面の下に出る「Reset」(リセット)ボタンをクリックすると、環境をリセットして再利用できます。
image.png

《さくらのクラウドシェル》で usacloud と Terraform を動かす

《さくらのクラウド》はコントロールパネルから操作するだけでなく、APIやコマンドラインツールを使った操作や管理も可能です。もちろん、《さくらのクラウドシェル》からも、サーバの作成や管理を行えます。

以降は、実際にシェル上から各種ツールを使う手順の紹介です。

※《さくらのクラウドシェル》は無料ですが、usacloud や Terraform でサーバ等のリソースを実際に作成しますと、API による《さくらのクラウド》の操作になるため、通常通り利用するリソースにおうじた料金が必要ですのでご注意ください。

事前準備(APIキーの作成)

usacloudTerraform を使うには、あらかじめ「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 ←設定ファイルの保存場所

最後に、次のようにシェルに戻ってきたら、セットアップは完了です。

image.png

※別の方法として、環境変数で定義する方法もあります。

% export SAKURACLOUD_ACCESS_TOKEN=【アクセストークン】
% export SAKURACLOUD_ACCESS_TOKEN_SECRET=【アクセストークンシークレット】
% export SAKURACLOUD_ZONE=【ゾーン】

サーバ一覧を表示する

usacloud server ls コマンドは、サーバ一覧を表示するコマンドです。既にサーバが作成済みの場合は、次のようにサーバ情報を確認できます。

image.png

サーバを作成する

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 を入力します。その後、自動的にサーバ作成が進行します。

※処理によっては、時間がかかるかもしれません。タイムアウトして処理が中断されないように、定期的にエンターキー等を押すと安全です。

しばらく待つと、完了の表示になります。

image.png

コントロールパネルを開くと、ここでも作成されているのが確認できます。

image.png

さて、この状態では停止状態( InstanceStatus が down)のため、コマンドを実行して起動しましょう。usacloud server boot myserver コマンドを実行し、 myserver という今作成したサーバを起動します。※途中の確認プロンプトでは y を入力します。

image.png

しばらく待つと、プロンプトが戻り、すぐにサーバが接続できる状態になります。

コントロールパネルを開くと、ここでもサーバが起動しているのが分かります。
image.png

サーバの停止・削除

 サーバは作成できるだけでなく、削除も可能です。まずサーバの電源を停止した後、サーバとディスクのリソースを削除できます。

% 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 と入力します)、サーバとディスクを一度に消せます。

参考情報

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
7