こんにちは、なりかくんです。
今回は、2023年5月25日にさくらインターネット株式会社よりリリースされた「さくらのクラウドシェル」について紹介していこうと思います。
さくらのクラウドシェルとは?
まず最初にさくらのクラウドシェルって何それ?となった方も多いかと思います。簡単に言うと、さくらインターネット株式会社が提供しているブラウザから無料で使えるオンラインのシェル環境です。
さくらインターネット株式会社というのは、クラウドコンピューティングサービスやIoTサービスを、同社が運営する国内のデータセンターを生かして事業を展開している会社です。
会社概要 https://www.sakura.ad.jp/corporate/corp/profile.html
主なクラウドコンピューティングサービスとして、以下のようなものがあります。
・さくらのクラウド(クラウドサービス)
・さくらのVPS(VPSサービス)
・さくらのレンタルサーバ(共有ホスティングサービス)
・さくらの専用サーバ PHY(物理専有ホスティングサービス)
・さくらの高火力(AIやディープラーニングなどに使えるサーバサービス)
また、なんといっても強みであるデータセンタですが、国内に3つの拠点を設けているのが非常に素晴らしいです。設置場所は、東京・大阪・北海道(石狩)であり、各エリア間が100Gbps以上で相互接続されているため、国内最大級の大容量バックボーンを持っています。
またこのシェルには、開発者向けの環境がインストールされた状態で提供されるため、環境構築不要で簡単に使うことが出来ます。
インストールされているツール
以下のツールが初期状態のシェルでインストールされています。
- 開発言語(Python、Ruby、Node.js など)
- Vim(テキストエディタ)
- Emacs(テキストエディタ)
- tmux(ターミナル分割等ソフト)
- Git(分散型バージョン管理システム)
- Ansible(インフラ構築自動化ツール)
- Terraform(インフラ構築自動化ツール)
- usacloud(さくらのクラウドをコマンドラインで操作できるツール)
クラウドの必要性
「ローカル環境で実行すればいいのでは?」と思った方も少なくは居ないでしょう。まあ、ローカルでも問題なくプログラムは動作させることが基本的なものであれば出来るかと思います。
しかし、ローカルで実行する場合はバージョンの違いなどが生じる可能性があります。それを解決するために、クラウド上に構築された開発環境を利用し、ローカルの環境に依存することなくプログラムを動作させることが可能になります。
チームでプログラム等を開発している場合は、チーム内の開発環境を揃えて実行することも簡単になります。
また、ウェブブラウザがあればどこでもアクセスができるため、場所を問わずに開発に取り組むことが出来ます。
データは保存されない
この「さくらのクラウドシェル」では、データをサーバーに保存することは出来ません。この言い方では、ファイル保存が出来ないというように聞こえますがそうでは無いです。
サーバ上にはデータは保存できますが、それは一時的な保存であり、一度閉じてしまうとデータがすべて消去されます。
逆に捉えれば、クラウド上で行ったことは必ずリセットされるためどのようなことを行っても問題ないという事です。(常識の範囲内で。)
以下のような場合にサーバ(コンテナ)が消去されるようになっています。
- 強制的にコンテナが再起動または停止等をした場合
- シェル画面上で入力を何も行わない状態が20分継続した場合
- シェル画面を閉じた場合、またはシェル画面が強制終了した場合
インターネットアクセスは制限されている
無料で使える点と、会員登録が不要で利用できるという観点からインターネットのアクセス制限がかかっています。
しかし、会員登録をすると基本的なインターネット通信は行う事が出来ますので、インターネットを使うプログラムを動作させる場合には会員登録が必須となります。
会員登録なし | 会員登録あり | |
---|---|---|
アウトバウンド通信 | 全拒否 | 22/53/80/443/1024-65535 のみ許可 |
インバウンド通信 | 全拒否 | 戻りのみ許可 |
使ってみよう!
では、長い前置きはおいて実際に触って使ってみましょう!
まず、さくらのクラウドシェルのホームページに移動します。
移動したら、「無料で試す」をクリックします。
https://www.sakura.ad.jp/services/cloudshell/
利用約款(利用規約のようなもの)の同意チェックボックスにチェックを入れて、とりあえずまずは会員登録なしで使うので「すぐに利用する」をクリックします。
すると、2~3秒程度でシェル画面がウェブブラウザで表示されます。これで利用することが可能になりました。
以下のメニューから、フォントやフォントサイズ、用意されている背景画像などを変更することが出来るみたいです。
試しに、OSバージョン等を確認する「/etc/os-release
」を確認してみました。OSにはUbuntu 22 LTS版が利用されているようです。(記事執筆時点)
また、デフォルトでシェルはzshが提供されていました。ユーザディレクトリ内には、README-cloud-shell.txt
という使い方なども残されていました。なんという親切な開発者なんでしょうか(笑)
そのREADMEは読みたいという方がいる可能性をかけてgistに載せておきましたのでぜひご覧ください。
https://gist.github.com/narikakun/1a4b6342c1b19eae41182f39f1498220
Pythonを実行してみる
では、せっかくですのでPythonを触ってみたいと思います。その前にPythonバージョンを確認しておきました。初期で入っているバージョンは、Python 3.10.6でした。
sakura@cloud-shell% python3 --version
Python 3.10.6
まあ、問題なくPythonを動作させることが出来ました。(問題があった方がおかしいんですけどね(笑))
sakura@cloud-shell% python3
Python 3.10.6 (main, Mar 10 2023, 10:55:28) [GCC 11.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import random
>>> a = random.randrange(10)
>>> a
6
>>> import math
>>> math.pi
3.141592653589793
Node.jsを実行してみる
次にNode.jsを実行してみます。Node.jsのバージョンを先に確認しておくと、少し古いv12.22.9がインストールされていました。
sakura@cloud-shell% node -v
v12.22.9
古いですが、まあ使えることは使えますね。ライブラリとバージョンの関係上動かない可能性があるのは少し怖いですが。。
sakura@cloud-shell% node
Welcome to Node.js v12.22.9.
Type ".help" for more information.
> let a = 1;
undefined
> let b = 2;
undefined
> a + b
3
ログインして使ってみる
ただし、このままではインターネットにアクセスできません。試しに当ブログにリクエストを送ってもエラーが出るのみです。(当たり前)
sakura@cloud-shell% curl -I https://narikakun.net/
curl: (6) Could not resolve host: narikakun.net
ですので、次にログインしてインターネットが使えるか確認してみます。
最初のページに戻り、次は「会員IDで利用する」をクリックします。
https://www.sakura.ad.jp/services/cloudshell/
すると、なんとも質素なログインボタンが表示されますので「login」をクリックします。
そして、さくらインターネットの会員認証画面に移動するので普段通りログインします。
※アカウントを持っていない場合は「新規会員登録」をしてください。私はさくらインターネットのアカウントを既に持っているため作成は割愛します。
ログインに成功すると、ログインした状態のシェルに移動します。これで、インターネットなどの外部アクセスが出来るようになりました。
試しに、当ブログにリクエストを投げてみると、以下のように正常にアクセスすることが出来ました。
sakura@cloud-shell% curl -I https://narikakun.net/
HTTP/2 200
server: nginx
date: Thu, 01 Jun 2023 14:37:11 GMT
content-type: text/html; charset=UTF-8
x-xss-protection: 1; mode=block
x-content-type-options: nosniff
x-pst-version: 3.1.29
x-pst-dynamic: HIT; 1.469 ms
x-b-cache: B=nil:D=HIT
x-pst-nginx-cache: MISS
x-debug-donot-cache: 0
x-debug-too-large: 0
x-debug-non-text: 0
x-signature-wexal: KUSANAGI
cache-control: max-age=0, no-cache
x-page-speed: 1.13.35.2-0
気になる様々な情報を覗いてみた
では、ここからは私の単純に気になった情報を覗いてみたコーナーです。
ディスクの空き容量
「df」コマンドで、ディスクの空き容量を確認してみました。36GBが割り当てられていますが、18GBは初期状態で利用されているので、実質利用できるのは17GBのようです。
ただし、17GBもデータを保存しても結局は消えてしまうので使うかどうか。と言われれば使わなさそうですね(笑)
sakura@cloud-shell% df -h
Filesystem Type Size Used Avail Use% Mounted on
overlay overlay 36G 18G 17G 51% /
tmpfs tmpfs 64M 0 64M 0% /dev
tmpfs tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup
/dev/vda3 ext4 36G 18G 17G 51% /etc/hosts
shm tmpfs 64M 0 64M 0% /dev/shm
tmpfs tmpfs 3.9G 0 3.9G 0% /proc/acpi
tmpfs tmpfs 3.9G 0 3.9G 0% /proc/scsi
tmpfs tmpfs 3.9G 0 3.9G 0% /sys/firmware
CPU情報
/proc/cpuinfoを覗いてみて、利用されているCPUを覗いてみました。CPUには、Intel Xeon E5-2650が使われているようです。ただし、このコンテナには1コア分しか割り当てられていない他、CPUクロック数に制限がかかっている気がします。(わからないです。)
sakura@cloud-shell% cat /proc/cpuinfo
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 63
model name : Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz
stepping : 2
microcode : 0x1
cpu MHz : 2294.702
cache size : 4096 KB
physical id : 0
siblings : 1
core id : 0
cpu cores : 1
apicid : 0
initial apicid : 0
fpu : yes
fpu_exception : yes
cpuid level : 13
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon rep_good nopl cpuid tsc_known_freq pni pclmulqdq ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm invpcid_single pti ssbd ibrs ibpb stibp fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid xsaveopt md_clear
bugs : cpu_meltdown spectre_v1 spectre_v2 spec_store_bypass l1tf mds swapgs itlb_multihit
bogomips : 4589.40
clflush size : 64
cache_alignment : 64
address sizes : 46 bits physical, 48 bits virtual
power management:
メモリ情報
メモリを「free」コマンドを利用して確認しました。メモリは合計で7.8GB割り当てわれているようです。ただし、バッファメモリとページキャッシュメモリに5.4GB割り当てられているので実際に使えるメモリ枠は1.4GBほどでした。
sakura@cloud-shell% free -h
total used free shared buff/cache available
Mem: 7.8Gi 999Mi 1.4Gi 1.0Mi 5.4Gi 6.5Gi
Swap: 0B 0B 0B
最後に
今回は、さくらインターネット株式会社が提供している「さくらのクラウドシェル」を紹介しました。非常に構築速度も速く使いやすいオンラインシェル環境となっているので、ぜひ一度お手に触れてみてはいかがでしょうか?
最後までお読みいただきありがとうございました。
コメント