あけましておめでとうございます。森(@mosuke5)です。 今年もたくさんの情報を発信していくことがんばりますのでよろしくおねがいします。
新年1発目は、ゆるい話題ですが、Alibaba CloudにはCloudShellについてです。 Alibaba CloudにはCloudShellと呼ばれる、Alibaba Cloudコンソールから利用できるターミナルのサービスがあります。日本サイトにはまだ正式にはローンチしていないのですが、少し先取りしてお知らせします。
CloudShellとは
CloudShellは下記のスクリーンショットのようにAlibaba CloudのWebコンソール画面からターミナルを実施できるサービスです。もちろんこの環境内での自由度は低いが、Alibaba Cloudを操作するのに必要なソフトウェアなどが事前に入っていて気軽に使うのに非常に便利です。
※現状だとこちらか、Alibaba Cloud Container Serviceのクラスターの基本情報画面からCloudShellお試しできます。
環境の中身はどうなっているか
ではこの環境がどんな状態か簡単にみてみます。
aliyun CLI
まずAlibaba Cloud扱いたいのでCLIをいじってみます。 現時点での、最新版のCLIがインストールされていますね。
shell@Alicloud:~$ aliyun version 3.0.7
リージョン情報取得してみます。 結果が見づらいので、クセでパイプでjqしてみましたが、なんとjqがプリインストールされていました。
shell@Alicloud:~$ aliyun ecs DescribeRegions {"RequestId":"761022E3-1040-4394-8B65-B8DD78227AC3","Regions":{"Region":[{"RegionId":"cn-qingdao","RegionEndpoint":"ecs.aliyuncs.com","LocalName":"华北 1"},{"RegionId":"cn-beijing","RegionEndpoint":"ecs.aliyuncs.com","LocalName":"华北 2"},{"RegionId":"cn-zhangjiakou","RegionEndpoint":"ecs.cn-zhangjiakou.aliyuncs.com","LocalName":"华北 3"},{"RegionId":"cn-huhehaote","RegionEndpoint":"ecs.cn-huhehaote.aliyuncs.com","LocalName":"华北 5"},{"RegionId":"cn-hangzhou","RegionEndpoint":"ecs.aliyuncs.com","LocalName":"华东 1"},{"RegionId":"cn-shanghai","RegionEndpoint":"ecs.aliyuncs.com","LocalName":"华东 2"},{"RegionId":"cn-shenzhen","RegionEndpoint":"ecs.aliyuncs.com","LocalName":"华南 1"},{"RegionId":"cn-hongkong","RegionEndpoint":"ecs.aliyuncs.com","LocalName":"香港"},{"RegionId":"ap-northeast-1","RegionEndpoint":"ecs.ap-northeast-1.aliyuncs.com","LocalName":"亚太东北 1 (东京)"},{"RegionId":"ap-southeast-1","RegionEndpoint":"ecs.aliyuncs.com","LocalName":"亚太东南 1 (新加坡)"},{"RegionId":"ap-southeast-2","RegionEndpoint":"ecs.ap-southeast-2.aliyuncs.com","LocalName":"亚太东南 2 (悉尼)"},{"RegionId":"ap-southeast-3","RegionEndpoint":"ecs.ap-southeast-3.aliyuncs.com","LocalName":"亚太东南 3 (吉隆坡)"},{"RegionId":"ap-southeast-5","RegionEndpoint":"ecs.ap-southeast-5.aliyuncs.com","LocalName":"亚太东南 5 (雅加达)"},{"RegionId":"ap-south-1","RegionEndpoint":"ecs.ap-south-1.aliyuncs.com","LocalName":"亚太南部 1 (孟买)"},{"RegionId":"us-east-1","RegionEndpoint":"ecs.aliyuncs.com","LocalName":"美国东部 1 (弗吉尼亚)"},{"RegionId":"us-west-1","RegionEndpoint":"ecs.aliyuncs.com","LocalName":"美国西部 1 (硅谷)"},{"RegionId":"eu-west-1","RegionEndpoint":"ecs.eu-west-1.aliyuncs.com","LocalName":"英国 (伦敦)"},{"RegionId":"me-east-1","RegionEndpoint":"ecs.me-east-1.aliyuncs.com","LocalName":"中东东部 1 (迪拜)"},{"RegionId":"eu-central-1","RegionEndpoint":"ecs.eu-central-1.aliyuncs.com","LocalName":"欧洲中部 1 (法兰克福)"}]}} shell@Alicloud:~$ shell@Alicloud:~$ shell@Alicloud:~$ aliyun ecs DescribeRegions | jq . { "RequestId": "49C9499C-E168-486C-96B1-56275550CF4B", "Regions": { "Region": [ { "RegionId": "cn-qingdao", "RegionEndpoint": "ecs.aliyuncs.com", "LocalName": "华北 1" }, { "RegionId": "cn-beijing", "RegionEndpoint": "ecs.aliyuncs.com", "LocalName": "华北 2" }, { "RegionId": "cn-zhangjiakou", "RegionEndpoint": "ecs.cn-zhangjiakou.aliyuncs.com", "LocalName": "华北 3" }, { "RegionId": "cn-huhehaote", "RegionEndpoint": "ecs.cn-huhehaote.aliyuncs.com", "LocalName": "华北 5" }, { "RegionId": "cn-hangzhou", "RegionEndpoint": "ecs.aliyuncs.com", "LocalName": "华东 1" }, { "RegionId": "cn-shanghai", "RegionEndpoint": "ecs.aliyuncs.com", "LocalName": "华东 2" }, { "RegionId": "cn-shenzhen", "RegionEndpoint": "ecs.aliyuncs.com", "LocalName": "华南 1" }, { "RegionId": "cn-hongkong", "RegionEndpoint": "ecs.aliyuncs.com", "LocalName": "香港" }, { "RegionId": "ap-northeast-1", "RegionEndpoint": "ecs.ap-northeast-1.aliyuncs.com", "LocalName": "亚太东北 1 (东京)" }, { "RegionId": "ap-southeast-1", "RegionEndpoint": "ecs.aliyuncs.com", "LocalName": "亚太东南 1 (新加坡)" }, { "RegionId": "ap-southeast-2", "RegionEndpoint": "ecs.ap-southeast-2.aliyuncs.com", "LocalName": "亚太东南 2 (悉尼)" }, { "RegionId": "ap-southeast-3", "RegionEndpoint": "ecs.ap-southeast-3.aliyuncs.com", "LocalName": "亚太东南 3 (吉隆坡)" }, { "RegionId": "ap-southeast-5", "RegionEndpoint": "ecs.ap-southeast-5.aliyuncs.com", "LocalName": "亚太东南 5 (雅加达)" }, { "RegionId": "ap-south-1", "RegionEndpoint": "ecs.ap-south-1.aliyuncs.com", "LocalName": "亚太南部 1 (孟买)" }, { "RegionId": "us-east-1", "RegionEndpoint": "ecs.aliyuncs.com", "LocalName": "美国东部 1 (弗吉尼亚)" }, { "RegionId": "us-west-1", "RegionEndpoint": "ecs.aliyuncs.com", "LocalName": "美国西部 1 (硅谷)" }, { "RegionId": "eu-west-1", "RegionEndpoint": "ecs.eu-west-1.aliyuncs.com", "LocalName": "英国 (伦敦)" }, { "RegionId": "me-east-1", "RegionEndpoint": "ecs.me-east-1.aliyuncs.com", "LocalName": "中东东部 1 (迪拜)" }, { "RegionId": "eu-central-1", "RegionEndpoint": "ecs.eu-central-1.aliyuncs.com", "LocalName": "欧洲中部 1 (法兰克福)" } ] } }
他ソフトウェア
ほかどんなソフトウェア入っているのかと思って見てみますが、kubectlやhelm, わたしの好きなTerraform、Function Compute(イベントドリブンコンピューティングのサービス)を操作するためのfcliなど一通りはいってますね。もちろんgitも入ってます。
shell@Alicloud:~$ ll /usr/local/bin/ total 277484 drwxr-xr-x 1 root root 4096 Jan 8 07:14 ./ drwxr-xr-x 1 root root 4096 Nov 28 06:54 ../ -rw-r--r-- 1 root root 6148 Nov 2 05:32 .DS_Store -rwxr-xr-x 1 501 dialout 27768735 Dec 26 06:06 aliyun* -rwxr-xr-x 1 root root 1367 Dec 26 03:42 cloudshell-git-open* -rwxr-xr-x 1 root root 16033662 Nov 15 02:15 fcli* -rwxr-xr-x 1 root root 56689729 Dec 29 08:17 fun* -rwxr-xr-x 1 501 dialout 36844864 Dec 19 23:09 helm* -rwxr-xr-x 1 501 dialout 57356334 Dec 25 03:23 kubectl* -rwxr-xr-x 1 root root 638 Dec 26 03:07 teachme* -rwxr-xr-x 1 root root 89397536 Nov 7 05:57 terraform* -rwxr-xr-x 1 root root 1113 Dec 14 06:49 try-sdk* -rwxr-xr-x 1 root root 1225 Dec 26 03:07 use-k8s-cluster* shell@Alicloud:~$ git version git version 2.18.1
OSやプロセス、リージョンなど
プロセスはまあ普通です。
shell@Alicloud:~$ ps -ef PID USER TIME COMMAND 1 root 0:00 {entrypoint.sh} /bin/sh /cloudshell/linux/entrypoint.sh 15 root 0:03 /cloudshell/daemon/ttyd --max-connection 5 -w /cloudshell/linux/start.sh 125 root 0:00 {start.sh} /bin/sh /cloudshell/linux/start.sh 127 shell 0:02 bash 183 root 0:00 {start.sh} /bin/sh /cloudshell/linux/start.sh 186 shell 0:01 bash 610 shell 0:00 ps -ef shell@Alicloud:~$ pstree -p entrypoint.sh(1)---ttyd(17)---start.sh(45)---bash(55)---pstree(84)
OSはalpine linuxですね。
shell@Alicloud:~$ uname -a Linux 225185389655867230 4.15.5-257.kvm #2 SMP Fri Dec 21 11:21:01 CST 2018 x86_64 Linux shell@Alicloud:~$ shell@Alicloud:~$ cat /etc/alpine-release 3.8.1
ふつうにCloudShell内のデータは一度exitすれば消えてしまいますが、NASを使ってデータを保存することができます。そのモードを有効にすると/home/shellにNASがマウントされています。
shell@Alicloud:~$ df -h Filesystem Size Used Available Use% Mounted on overlay 38.3G 2.7G 33.8G 7% / tmpfs 64.0M 0 64.0M 0% /dev shm 64.0M 0 64.0M 0% /dev/shm tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup /dev/root 38.3G 2.7G 33.8G 7% /etc/resolv.conf shm 64.0M 0 64.0M 0% /dev/shm 3086f4aceb-yxn33.cn-shanghai.nas.aliyuncs.com:/ 1.0P 0 1.0P 0% /home/shell /dev/root 38.3G 2.7G 33.8G 7% /etc/hosts tmpfs 64.0M 0 64.0M 0% /proc/timer_list tmpfs 64.0M 0 64.0M 0% /proc/sched_debug tmpfs 1.9G 0 1.9G 0% /sys/firmware
NASのコンソール画面を見に行くと上海リージョンで購入されていました。
ということは、このインスタンスは上海にあるのだろうか。 はい、そのようです。 実際にネットワーク的にもgoogle.comへはアクセスできませんでした。
shell@Alicloud:~$ curl -I https://blog.mosuke.tech HTTP/2 200 date: Tue, 08 Jan 2019 07:55:36 GMT content-type: text/html; charset=utf-8 set-cookie: __cfduid=db8ff6b0fa67e637557d64ac3f1d7ec221546934136; expires=Wed, 08-Jan-20 07:55:36 GMT; path=/; domain=.mosuke.tech; HttpOnly; Secure last-modified: Tue, 08 Jan 2019 04:27:46 GMT vary: Accept-Encoding access-control-allow-origin: * expires: Wed, 16 Jan 2019 07:55:36 GMT cache-control: public, max-age=691200 x-github-request-id: BF1E:1E5F:3B1CDC:53508C:5C345778 cf-cache-status: MISS x-content-type-options: nosniff expect-ct: max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct" server: cloudflare cf-ray: 495d1a532ec59396-SJC shell@Alicloud:~$ curl -I https://google.com (応答なし)
プログラミング言語
プログラミング言語はPythonが入っている程度でほとんどサポートされていないません。下の写真のようにエディタの機能があるのですが、プログラミング言語があまりサポートされていないので、どちらかというと設定ファイルなど少しいじるようでしょうか。あるいはvimなど使いたくない人向けに。
shell@Alicloud:~$ python python python3 python3.6 python3.6m
さいごに
現状では、プログラミング言語がほとんど入っていないので、開発用途よりは、気軽にCLIを使ったり、terraformを試してみたりするのに向いています。FunctionComputeを操作するコマンドラインツールも入っているので、プログラミング言語がサポートされてくると、よりユースケースが広がってくると思います。そのあたりはまた情報が入り次第お知らせしたいと思います。