LoginSignup
10
7

More than 1 year has passed since last update.

さくらのクラウドシェルで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 と入力します)、サーバとディスクを一度に消せます。

参考情報

10
7
0

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
  3. You can use dark theme
What you can do with signing up
10
7