Cloud Shell

作成日:2021-06-25

Alibaba Cloud Shellの手順

本書は、Alibaba Cloud Shellの使用手順を記載します。

構成図 overview

1.Alibaba Cloud Shellとは

Alibaba Cloud Shellは、Webバージョンのコマンドラインツールです。任意のブラウザでクラウドコマンドラインを実行して、AlibabaCloudリソースを管理することができます。 クラウドコマンドラインで起動すると、Linux仮想マシンが自動的に割り当てられ、無料で使用できます。 この仮想マシンにpython、java、nodejs環境、aliyun CLI、curl、ssh、kubectl、fun、terraform、ansible、vimなど様々なクラウド管理ツールとシステムツールをプレインストールし、CloudShellが提供するWebIDEと合わせて、日常的なクラウドリソース管理をサポートします。

以下のような機能を提供します。

①無料の仮想マシンを自動的に作成します Cloud Shellを起動すると、専用のLinux仮想マシンが自動的に作成されます。 セッションがアクティブな場合、インスタンスは無期限で使えます。 Cloud Shellundefinedは自動認証を実現します。コマンドラインを使用すると、クラウドリソースを管理することができます。 各ログインクラウドアカウントの管理権限は、RAMで付与されている操作権限と同等です。 同時に、Cloud Shellは、ログインしているすべてのユーザーに対してセキュリティ認証を実行し、ユーザーによる仮想マシンの分離を実現して、オペレーティング環境のセキュリティを確保します。

②永続ディスクストレージスペース Cloud Shellは、ストレージスペースをバインドして、永続的なストレージを提供します。CloudShellインスタンスの$ HOMEディレクトリとして。 ホームディレクトリに保存されているすべてのファイル(スクリプトおよび.bashrcや.vimrcなどのユーザー構成ファイルを含む)は、異なるセッションやインスタンス間で変更されません。 ツールバーのストレージアイコンを使用して、ストレージスペースをバインドまたはバインド解除ができます。 storage icon

③コードエディタ ・Cloud Shellには、組み込みのコードエディターがあります。 ツールバーのコードアイコンをクリックすると、コードエディタを開くことができます。 Edit icon ・$ HOMEファイルディレクトリを参照したり、コードエディタでファイルを編集したりしながら、引き続きCloudShellを使用できます。 CloudShellに組み込まれているWebIDEを使用すると、開発環境の構成やさまざまな依存ツールのインストールを気にせず。オンラインで直接開発し、コマンドラインから実行またはデプロイできます。同時に、ストレージスペースはCloud Shellを介してバインドされ、編集したファイルは永続的に保存できます。 Edit icon

④チュートリアルモード Cloud Shellは、チュートリアルの構築と起動をサポートしています。 チュートリアルは、Markdownで記述された一連の命令ドキュメントです。

⑤利用可能なツール CloudShell仮想マシンに実装のツールがあります。クラウドコマンドラインサポートツールリスト

⑥サポートの言語 Cloud Shell仮想マシンには、次の言語を実装しています。

言語バージョン
Java1.8
Go1.13.4
Python3.6.7
Nodejsv12.13.1
PHP7.2.10
Ruby2.5.1

⑦使用制限 |制限項目 |説明| |--|--| | 仮想マシンの数 | 複数のセッションウィンドウを開いても、一つの仮想マシンのみが起動される、そしてこの仮想マシンに自動的に接続される| | セッションウィンドウ | 最大5つのセッションウィンドウを開く| | 操作なしの仮想マシン撤回| 30分操作なしまたはすべてのセッションウィンドウを閉じる場合は、終了操作と見なされる。終了15分で仮想マシンを破棄します。再度起動すると、新しい仮想マシンが作成されます| | ファイルストレージ | Cloud Shellは、一時的に10GBのストレージをマウントする。ファイルは/home/shellディレクトリに保存できますが、仮想マシンが破棄されるとリセットされます。 ストレージスペースをマウントすることを選択することで永続的なストレージが実現できます、Cloud Shellが起動するたびに自動的にロードされます| | 使用禁止 | コンピューティングやネットワーク集約型などの長期使用や悪意のあるプロセスはサポートされず、警告なしにセッションが終了したり、無効になったりする可能性があります|

2.Alibaba Cloud Shellを使用します

2-1.Alibaba Cloud Shellの起動方法

1)コンソールで起動 ①Alibaba Cloud公式サイトでログインをクリックし、RAMユーザーを入力します run cloud shell

②パスワードを入力します run cloud shell

③コンソールメニュをクリックします run cloud shell

④コンソール画面でCloud Shellアイコンをクリックします run cloud shell

⑤Cloud Shellを起動します run cloud shell

⑥helpを確認します run cloud shell 2)単独で起動 ①ブラウザでリンクを開くリンク run cloud shell

②OpenAPI ExplorerでCloud Shellを起動します OpenAPI Explorerで起動OpenAPI Explorer run cloud shell

2-2.Cloud ShellにCLIコマンドでクラウドリソースの管理

Cloud ShellでCLIコマンドでAlibabaCloud APIを直接呼び出して、クラウドリソースを管理することができます ①CloudShellにCLIコマンドでRPCAPIを呼び出すには、下記のフォーマットに従う必要があります。

aliyun <ProductCode> <ActionName> [--parameter1 value1 --paramter2 value2]

・ProductCode:AlibabaCloudのプロダクトcodeを指します。例:ecs、slbなど、aliyun --helpでProductCodeが確認できます ・ActionName:呼び出すAPI名 例:ECSのDescribeInstanceAttributeのAPIではECS の詳細情報を確認します ・parameter:渡されるパラメーター。各プロダクトのAPIをご参照ください

②Helpを確認します フォーマット

aliyun <ProductCode> --help

コマンド

aliyun ecs --help

ECSのAPIがリストされる cloud shell help

cloud shell help

③詳細APIのHelpを確認します フォーマット

aliyun <ProductCode> <ApiName> --help

コマンド

aliyun ecs DescribeInstanceAttribute --help

cloud shell help

④VPCを作成します

aliyun vpc CreateVpc --VpcName "cloudshell_cli-test"
shell@Alicloud:~$ aliyun vpc CreateVpc --VpcName "cloudshell_cli-test"
{
"RequestId": "451243C7-A283-4EFD-A990-87DA1199575C",
"ResourceGroupId": "rg-acfnu655g4vjkyi",
"RouteTableId": "vtb-t4n6ocxbre99kb9fc7tqn",
"VRouterId": "vrt-t4npp4ku9w54g2yr5z2vi",
"VpcId": "vpc-t4nhmjhg898hsqv63qibx"
}

create vpc

⑤VPCを確認します

aliyun vpc DescribeVpcs --VpcId vpc-t4nhmjhg898hsqv63qibx

check vpc

2-3.コードエディターの可視化

CloudShellはビジュアルコードエディターが組み込まれている。簡易化のWebIDEにより、1ページでオンライン開発し、コマンドラインから実行または展開できます。 CloudShellはJava、Python、Go、Nodejs、PHP、Rubyの言語を対応している。またコードエディターでMDファイルも作成できます。 Pythonを例として説明します。 1)CloudShellでコードエディター画面を開く edit code

edit code

2)hellowworld.pyを追加します

add python file

add python file

3)Pythonコードを編集します ①コードを編集します

#test for code edit helloworld.py
print('hello world !')

edit code ②コードを保存します edit code

4)Pythonコードを実行します

python helloworld.py

run code

2-4.ファイルのアップロードとダウンロード

1)ファイルをアップロードします

①helloworld.javaファイルを用意します upload file

②アップロード&ダウンロードアイコンをクリッし、アップロードメニューをクリックします upload file

③helloworld.javaファイルを選択します upload file

④helloworld.javaファイルがアップロード完了しました upload file

⑤helloworld.javaファイルを確認します upload file

⑥helloworld.javaファイルを実行します

javac helloworld.java

helloworld.classが生成される

java helloworld

helloworldがプリントされる

upload file

2)ファイルをダウンロードします helloworld.pyをダウンロードします ①アップロード&ダウンロードアイコンをクリッし、ダウンロードメニューをクリックします download file

②ダウンロードウィンドを開く download file

③ファイルパスを入力します download file

④ダウンロード完成します download file

⑤ファイルを確認します download file

⑥helloworld.py内容を確認します download file

2-5.チュートリアルの作成

CloudShellでチュートリアルが作成できます 1)チュートリアルフォルダを作成します

mkdir tutorials

上記のコマンドを実行し、リフレッシュボタンをクリックしてフォルダが確認します create tutorials

2)tutorialsフォルダに移動し、tutorial.mdファイルを作成します

cd tutorials
touch tutorial.md

create tutorials

3)Markdownチュートリアルを作成します Markdown構文を使用してチュートリアルドキュメントが作成できます。下記のルールに従ってください ① H1(#)はチュートリアルのタイトルです。 一つのチュートリアルは一つのH1タイトルのみがあります ② H2(##)は手順タイトルです ③Markdownのコード構文を使用して、ドキュメントにコードが追加できます。チュートリアルドキュメントのコードブロックとしてレンダリングされます。そしてコピーボタンが付ける。コピーボタンをクリックすると、コンテンツがCloudShellのインプットエリアにコピーされます。

aliyun help

④Cloud Shellチュートリアルで提供されるディレクトリコマンドを使用して、チュートリアルの目次構造が自動的に生成される。

<tutorial-nav></tutorial-nav>

⑤Cloud Shellチュートリアルで提供されるファイルを開くコマンドを使用して、チュートリアルへ特定ファイルのリンクが追加できる。チュートリアルを読み取る際にこのリンクをクリックして、該当ファイルがCloudShellエディターで開かれます。 ファイルパスはフルパスまたは相対パスです。相対パスは$ HOMEに基づく

<tutorial-editor-open-file filePath="path/tutorial.md>Open File</tutorial-editor-open-file>

⑥チュートリアルを編集します

# AlibabaCloud CLIでクラウドリソースを管理します
## CLIのヘルプを確認します
```bash
aliyun help```
### 例1
### 例2
```bash
echo world```
## ここまで完成です

create tutorials

create tutorials

⑦下記コマンドを実行し、チュートリアルをレビューします

teachme tutorial.md

create tutorials

⑧チュートリアルレビュー画面にCopyToTerminalボタンをクリックし、コマンドがCloudShellのターミナルへコピーペーストします

create tutorials

⑧CloudShellのターミナルにコマンドが表示される create tutorials

⑩CloudShellのターミナルでコマンドが実行できます create tutorials

チュートリアルが作成後、Cloud Shellで実装されたGitコマンドを使用して、チュートリアルをGitリポジトリとしてGitにプッシュできます。Gitリポジトリはインタネットアクセス許可の必要があります

3.Cloud ShellにAlibabaCloudリソースを管理します

3-1.CLIでAlibabaCloudリソースを管理します

CloudShellにAlibaba CloudCLIを実装されています。AlibabaCloudCLIを介してAlibabaCloudリソースを管理することができます。 Alibaba CloudCLIを起動する際に、初めてCLIを接続するときに、40秒以内の時間がかかります。またウィンドを複数開いても同じ仮想マシンを使っている。 1)CloudShellでCLIを通してRPCAPIを呼び出す

コマンドフォーマット:

aliyun <ProductCode> <ActionName> [--parameter1 value1 --paramter2 value2]

①CLIバージョンを確認します CloudShell CLI version ②CLI構成を確認します CloudShellでCLIを使用する際に、新たな構成はいらず、CLIが使用できます デフォルトは一時的なAKで、デフォルトリージョンはap-southeast-1シンガポールリージョンです

aliyun configure get

CloudShell CLI config 

③VPCを作成します

aliyun vpc CreateVpc --VpcName "cloudshell_cli-test"
shell@Alicloud:~$ aliyun vpc CreateVpc --VpcName "cloudshell_cli-test"
{
"RequestId": "4B416307-85C3-49CE-900E-9062076F601E",
"ResourceGroupId": "rg-acfnu655g4vjkyi",
"RouteTableId": "vtb-t4nvcisq71zdjvk60o5zj",
"VRouterId": "vrt-t4npbrcvi9ukjdxn0i9fy",
"VpcId": "vpc-t4nie19p50f4ajqltxop9"
}

vpc create 

vpc create 

④VPCを確認します

aliyun vpc DescribeVpcs --VpcId vpc-t4nie19p50f4ajqltxop9

vpc describe

2)CloudShellでCLIを通してRESTful APIを呼び出す

コマンドフォーマット:

aliyun Productcode [GET|PUT|POST|DELETE] <PathPattern> --body "$(cat input.json)"

①CLI構成を日本リージョンに変更します CloudShellでCLIを使用する際に、新たな構成はいらず、CLIが使用できます

aliyun configure get
aliyun configure --mode AK --profile profileshell
aliyun configure get

profile change

profile change

①ElasticSearchのインスタンスを確認します

aliyun elasticsearch GET /openapi/instances/es-sg-mjc28e06a000118oi

es describe

es describe

es describe

②ElasticSearchインスタンスを削除します

aliyun elasticsearch DELETE /openapi/instances/es-sg-mjc28e06a000118oi

上記のAPIを実行します es delete

es delete

ESインスタンスが削除されました es delete

3-2.CLIでOSSにあるデータを管理します

Alibaba Cloud Shellには認証が組み込まれており、構成を追加設定する必要はありません。またossutilの機能が統合されているため、AlibabaCloudCLIを使用してOSSデータが直接管理できます。 1)コマンドフォーマット

aliyun oss [command] [options and parameters]

2)ossバケットを作成します ①下記コマンドでossバケットを作成します 備考:バケット名は唯一のバケット名でないとエラーになる

aliyun oss mb oss://shellbucket2106

oss bucket

②バケットを確認します oss bucket

3)ossバケットにフォルダを作成します ①フォルダを作成します

aliyun oss mkdir oss://shellbucket2106/shellfolder/

oss bucket

②フォルダを確認します oss bucket

③Helpコマンドを確認します

shell@Alicloud:~$ aliyun oss help
Object Storage Service
Usage:
aliyun oss [command] [args...] [options...]
Commands:
help Get help about commands
config Create configuration file to store credentials
mb Make Bucket
ls List Buckets or Objects
rm Remove Bucket or Objects
stat Display meta information of bucket or objects
set-acl Set acl on bucket or objects
set-meta set metadata on already uploaded objects
cp Upload, Download or Copy Objects
restore Restore Frozen State Object to Read Ready Status
create-symlink Create symlink of object
read-symlink Display meta information of symlink object
sign Generate download link for object
hash Get crc64 or md5 of local file
update Update ossutil
probe Probe command, support for multiple function detection
mkdir Create a oss directory whose object name has the suffix character '/'
cors Set, get or delete the cors configuration of the oss bucket
logging Setget or delete bucket log configuration
referer Setget or delete bucket referer configuration
listpart List parts information of uncompleted multipart object
getallpartsize Get bucket all uncompleted multipart objects's parts size and sum size
appendfromfile Upload the contents of the local file to the oss appendable object by append upload mode
cat Output object content to standard output
bucket-tagging Set, get or delete bucket tag configuration
bucket-encryption Set, get or delete bucket encryption configuration
cors-options Send http options request to oss for CORS detection
lifecycle Set, get or delete bucket lifecycle configuration
website Set, get or delete bucket website configuration
bucket-qos Set, get or delete bucket qos configuration
user-qos Get user's qos configuration
bucket-versioning Set, get bucket versioning configuration
du Get the bucket or the specified prefix(directory) storage size
bucket-policy Set, get or delete bucket policy configuration
request-payment Set, get bucket request payment configuration
object-tagging Set, get or delete object tag configuration
inventory Add, get, delete, or list bucket inventory configuration
revert-versioning Revert the deleted object to the latest versioning state
sync Sync the local file directory or oss prefix from the source to the destination
worm setdelete、complete、get bucket's worm configuration
Use `oss --help` for more information.
shell@Alicloud:~$

oss help

oss help

④詳細APIヘルプコマンドを確認します コマンドフォーマット

aliyun oss [command] help
aliyun oss hash help

oss help

oss help

3-3.TerraformでAlibabaCloudリソースを管理します

Alibaba Cloud Cloud Shellは、運用と保守に役立つ無料のツールです。Terraformコンポーネントが実装されており、クレデンシャルで構成されています。 したがって、TerraformコマンドをCloudShellで直接実行できます。 1)Cloud Shellを起動するリンク(同上) 「## 2-1.Alibaba Cloud Shellの起動方法」をご参照ください

2)Alibaba Cloud公式サイトを登録し、Cloud Shell画面を開く(同上) 3)Terraformプロジェクトを作成します ①下記コマンドでプロジェクトフォルダを作成します

mkdir terraform-project

Terraform

②リフレッシュボタンをクリック後、フォルダを確認します Terraform

③Shellパスをterraform-projectに切り替わる

cd terraform-project

Terraform

4)main.tfファイルを作成します

touch main.tf

Terraform

⑤main.tfを編集します (tfファイルの作成方はTerraformの記事もご参照ください。) VPCを例として編集する、access_keyとsecret_keyを入れ替えてください。 下記vpc.tfコードをmain.tfに貼り付けして保存します

# Provider
provider "alicloud" {
region = "ap-northeast-1"
access_key = "LT************Q"
secret_key = "eB************VU"
}
# VPC
resource "alicloud_vpc" "cloud_shell_tf_vpc1" {
name = "cloud_shell_tf_vpc1"
cidr_block = "172.16.0.0/12"
}
# Vswitch1
resource "alicloud_vswitch" "sbc_migration_vsw1" {
vpc_id = "${alicloud_vpc.cloud_shell_tf_vpc1.id}"
cidr_block = "172.16.0.0/24"
availability_zone = "ap-northeast-1a"
}
#security_group
resource "alicloud_security_group" "cloud_shell_tf_sg1" {
name = "cloud_shell_tf_sg1"
vpc_id = "${alicloud_vpc.cloud_shell_tf_vpc1.id}"
}
resource "alicloud_security_group_rule" "cloud_shell_tf_all_sgr1" {
type = "ingress"
ip_protocol = "all"
nic_type = "intranet"
policy = "accept"
port_range = "1/65535"
priority = 1
security_group_id = "${alicloud_security_group.cloud_shell_tf_sg1.id}"
cidr_ip = "0.0.0.0/0"
}

Terraform edit

Terraform edit

5)Terraformを初期化します ①下記コマンドを実行します

terraform init

Terraform init

②初期化が完成される Terraform init

6)terraform planを実行します ①下記コマンドを実行します

terraform plan

Terraform plan

②terraform plan実行が完成される Terraform plan

7)terraform applyを実行します ①下記コマンドを実行します

terraform apply

Terraform apply

②Enter a value: が表示されたら、yesをインプットします

Terraform apply

③terraform applyが完成される Terraform apply

shell@Alicloud:~/terraform-project$ terraform apply
An execution plan has been generated and is shown below.
Resource actions are indicated with the following symbols:
+ create
Terraform will perform the following actions:
# alicloud_security_group.cloud_shell_tf_sg1 will be created
+ resource "alicloud_security_group" "cloud_shell_tf_sg1" {
+ id = (known after apply)
+ inner_access = (known after apply)
+ inner_access_policy = (known after apply)
+ name = "cloud_shell_tf_sg1"
+ security_group_type = "normal"
+ vpc_id = (known after apply)
…省略
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
alicloud_vpc.cloud_shell_tf_vpc1: Creating...
alicloud_vpc.cloud_shell_tf_vpc1: Creation complete after 7s [id=vpc-6we6gahp387ucs4cyi1mg]
alicloud_security_group.cloud_shell_tf_sg1: Creating...
alicloud_vswitch.sbc_migration_vsw1: Creating...
alicloud_security_group.cloud_shell_tf_sg1: Creation complete after 1s [id=sg-6weds4j9hpzhmxltuoyz]
alicloud_security_group_rule.cloud_shell_tf_all_sgr1: Creating...
alicloud_security_group_rule.cloud_shell_tf_all_sgr1: Creation complete after 0s [id=sg-6weds4j9hpzhmxltuoyz:ingress:all:-1/-1:intranet:0.0.0.0/0:accept:1]
alicloud_vswitch.sbc_migration_vsw1: Creation complete after 6s [id=vsw-6we2znwytf5fylhpe3z95]
Apply complete! Resources: 4 added, 0 changed, 0 destroyed.
shell@Alicloud:~/terraform-project$

④AlibabaCloudコンソール画面にVPCインスタンスを確認します Terraform apply

⑤VPC詳細画面にリソースを確認します Terraform apply

⑥VSwitchを確認します Terraform apply

⑦Route Tableを確認します Terraform apply

⑧Security Groupsを確認します Terraform apply

4.AK情報を取得する方法

①メインアカウントで公式サイトをログインし、コンソールメニューをクリックします ak check

②アカウントアイコンをクリックします ak check

③AccessKey Managementメニューをクリックし、AK管理画面に遷移します ak check

④メインアカウントで登録する場合、AK作成メニューが有効であり、AccessKeyが作成できる。作成したAccessKeyIDとsecretkeyをダウンロードまたはメモします。 本書はサブアカウントでログインするため、AKを作成するメニューがグレーになっている ak check

最後に

以上、Cloud Shellについてをご紹介しました。CLIを使った開発をする際、ご参考になれば幸いです。

Close

Alibaba Cloudを始めてみましょう

ソフトバンクは、Alibaba Cloudのアカウント開設から、サービス展開までをお手伝いします。
Hatena