Alibab Cloud Cloud Shellについて紹介します
Alibaba Cloud Shellの手順
本書は、Alibaba Cloud Shellの使用手順を記載します。
構成図
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などのユーザー構成ファイルを含む)は、異なるセッションやインスタンス間で変更されません。 ツールバーのストレージアイコンを使用して、ストレージスペースをバインドまたはバインド解除ができます。
③コードエディタ ・Cloud Shellには、組み込みのコードエディターがあります。 ツールバーのコードアイコンをクリックすると、コードエディタを開くことができます。 ・$ HOMEファイルディレクトリを参照したり、コードエディタでファイルを編集したりしながら、引き続きCloudShellを使用できます。 CloudShellに組み込まれているWebIDEを使用すると、開発環境の構成やさまざまな依存ツールのインストールを気にせず。オンラインで直接開発し、コマンドラインから実行またはデプロイできます。同時に、ストレージスペースはCloud Shellを介してバインドされ、編集したファイルは永続的に保存できます。
④チュートリアルモード Cloud Shellは、チュートリアルの構築と起動をサポートしています。 チュートリアルは、Markdownで記述された一連の命令ドキュメントです。
⑤利用可能なツール CloudShell仮想マシンに実装のツールがあります。クラウドコマンドラインサポートツールリスト
⑥サポートの言語 Cloud Shell仮想マシンには、次の言語を実装しています。
言語 | バージョン |
---|---|
Java | 1.8 |
Go | 1.13.4 |
Python | 3.6.7 |
Nodejs | v12.13.1 |
PHP | 7.2.10 |
Ruby | 2.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ユーザーを入力します
②パスワードを入力します
③コンソールメニュをクリックします
④コンソール画面でCloud Shellアイコンをクリックします
⑤Cloud Shellを起動します
⑥helpを確認します 2)単独で起動 ①ブラウザでリンクを開くリンク
②OpenAPI ExplorerでCloud Shellを起動します OpenAPI Explorerで起動OpenAPI Explorer
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がリストされる
③詳細APIのHelpを確認します フォーマット
aliyun <ProductCode> <ApiName> --help
コマンド
aliyun ecs DescribeInstanceAttribute --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"}
⑤VPCを確認します
aliyun vpc DescribeVpcs --VpcId vpc-t4nhmjhg898hsqv63qibx
2-3.コードエディターの可視化
CloudShellはビジュアルコードエディターが組み込まれている。簡易化のWebIDEにより、1ページでオンライン開発し、コマンドラインから実行または展開できます。 CloudShellはJava、Python、Go、Nodejs、PHP、Rubyの言語を対応している。またコードエディターでMDファイルも作成できます。 Pythonを例として説明します。 1)CloudShellでコードエディター画面を開く
2)hellowworld.pyを追加します
3)Pythonコードを編集します ①コードを編集します
#test for code edit helloworld.pyprint('hello world !')
②コードを保存します
4)Pythonコードを実行します
python helloworld.py
2-4.ファイルのアップロードとダウンロード
1)ファイルをアップロードします
①helloworld.javaファイルを用意します
②アップロード&ダウンロードアイコンをクリッし、アップロードメニューをクリックします
③helloworld.javaファイルを選択します
④helloworld.javaファイルがアップロード完了しました
⑤helloworld.javaファイルを確認します
⑥helloworld.javaファイルを実行します
javac helloworld.java
helloworld.classが生成される
java helloworld
helloworldがプリントされる
2)ファイルをダウンロードします helloworld.pyをダウンロードします ①アップロード&ダウンロードアイコンをクリッし、ダウンロードメニューをクリックします
②ダウンロードウィンドを開く
③ファイルパスを入力します
④ダウンロード完成します
⑤ファイルを確認します
⑥helloworld.py内容を確認します
2-5.チュートリアルの作成
CloudShellでチュートリアルが作成できます 1)チュートリアルフォルダを作成します
mkdir tutorials
上記のコマンドを実行し、リフレッシュボタンをクリックしてフォルダが確認します
2)tutorialsフォルダに移動し、tutorial.mdファイルを作成します
cd tutorialstouch tutorial.md
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のヘルプを確認します```bashaliyun help```### 例1### 例2```bashecho world```## ここまで完成です
⑦下記コマンドを実行し、チュートリアルをレビューします
teachme tutorial.md
⑧チュートリアルレビュー画面にCopyToTerminalボタンをクリックし、コマンドがCloudShellのターミナルへコピーペーストします
⑧CloudShellのターミナルにコマンドが表示される
⑩CloudShellのターミナルでコマンドが実行できます
チュートリアルが作成後、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バージョンを確認します ②CLI構成を確認します CloudShellでCLIを使用する際に、新たな構成はいらず、CLIが使用できます デフォルトは一時的なAKで、デフォルトリージョンはap-southeast-1シンガポールリージョンです
aliyun configure get
③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を確認します
aliyun vpc DescribeVpcs --VpcId vpc-t4nie19p50f4ajqltxop9
2)CloudShellでCLIを通してRESTful APIを呼び出す
コマンドフォーマット:
aliyun Productcode [GET|PUT|POST|DELETE] <PathPattern> --body "$(cat input.json)"
①CLI構成を日本リージョンに変更します CloudShellでCLIを使用する際に、新たな構成はいらず、CLIが使用できます
aliyun configure getaliyun configure --mode AK --profile profileshellaliyun configure get
①ElasticSearchのインスタンスを確認します
aliyun elasticsearch GET /openapi/instances/es-sg-mjc28e06a000118oi
②ElasticSearchインスタンスを削除します
aliyun elasticsearch DELETE /openapi/instances/es-sg-mjc28e06a000118oi
上記のAPIを実行します
ESインスタンスが削除されました
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
②バケットを確認します
3)ossバケットにフォルダを作成します ①フォルダを作成します
aliyun oss mkdir oss://shellbucket2106/shellfolder/
②フォルダを確認します
③Helpコマンドを確認します
shell@Alicloud:~$ aliyun oss helpObject Storage ServiceUsage:aliyun oss [command] [args...] [options...]Commands:help Get help about commandsconfig Create configuration file to store credentialsmb Make Bucketls List Buckets or Objectsrm Remove Bucket or Objectsstat Display meta information of bucket or objectsset-acl Set acl on bucket or objectsset-meta set metadata on already uploaded objectscp Upload, Download or Copy Objectsrestore Restore Frozen State Object to Read Ready Statuscreate-symlink Create symlink of objectread-symlink Display meta information of symlink objectsign Generate download link for objecthash Get crc64 or md5 of local fileupdate Update ossutilprobe Probe command, support for multiple function detectionmkdir Create a oss directory whose object name has the suffix character '/'cors Set, get or delete the cors configuration of the oss bucketlogging Set、get or delete bucket log configurationreferer Set、get or delete bucket referer configurationlistpart List parts information of uncompleted multipart objectgetallpartsize Get bucket all uncompleted multipart objects's parts size and sum sizeappendfromfile Upload the contents of the local file to the oss appendable object by append upload modecat Output object content to standard outputbucket-tagging Set, get or delete bucket tag configurationbucket-encryption Set, get or delete bucket encryption configurationcors-options Send http options request to oss for CORS detectionlifecycle Set, get or delete bucket lifecycle configurationwebsite Set, get or delete bucket website configurationbucket-qos Set, get or delete bucket qos configurationuser-qos Get user's qos configurationbucket-versioning Set, get bucket versioning configurationdu Get the bucket or the specified prefix(directory) storage sizebucket-policy Set, get or delete bucket policy configurationrequest-payment Set, get bucket request payment configurationobject-tagging Set, get or delete object tag configurationinventory Add, get, delete, or list bucket inventory configurationrevert-versioning Revert the deleted object to the latest versioning statesync Sync the local file directory or oss prefix from the source to the destinationworm set、delete、complete、get bucket's worm configurationUse `oss --help` for more information.shell@Alicloud:~$
④詳細APIヘルプコマンドを確認します コマンドフォーマット
aliyun oss [command] help
aliyun oss hash 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
②リフレッシュボタンをクリック後、フォルダを確認します
③Shellパスをterraform-projectに切り替わる
cd terraform-project
4)main.tfファイルを作成します
touch main.tf
⑤main.tfを編集します (tfファイルの作成方はTerraformの記事もご参照ください。) VPCを例として編集する、access_keyとsecret_keyを入れ替えてください。 下記vpc.tfコードをmain.tfに貼り付けして保存します
# Providerprovider "alicloud" {region = "ap-northeast-1"access_key = "LT************Q"secret_key = "eB************VU"}# VPCresource "alicloud_vpc" "cloud_shell_tf_vpc1" {name = "cloud_shell_tf_vpc1"cidr_block = "172.16.0.0/12"}# Vswitch1resource "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_groupresource "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 = 1security_group_id = "${alicloud_security_group.cloud_shell_tf_sg1.id}"cidr_ip = "0.0.0.0/0"}
5)Terraformを初期化します ①下記コマンドを実行します
terraform init
②初期化が完成される
6)terraform planを実行します ①下記コマンドを実行します
terraform plan
②terraform plan実行が完成される
7)terraform applyを実行します ①下記コマンドを実行します
terraform apply
②Enter a value: が表示されたら、yesをインプットします
③terraform applyが完成される
shell@Alicloud:~/terraform-project$ terraform applyAn execution plan has been generated and is shown below.Resource actions are indicated with the following symbols:+ createTerraform 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: yesalicloud_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インスタンスを確認します
⑤VPC詳細画面にリソースを確認します
⑥VSwitchを確認します
⑦Route Tableを確認します
⑧Security Groupsを確認します
4.AK情報を取得する方法
①メインアカウントで公式サイトをログインし、コンソールメニューをクリックします
②アカウントアイコンをクリックします
③AccessKey Managementメニューをクリックし、AK管理画面に遷移します
④メインアカウントで登録する場合、AK作成メニューが有効であり、AccessKeyが作成できる。作成したAccessKeyIDとsecretkeyをダウンロードまたはメモします。 本書はサブアカウントでログインするため、AKを作成するメニューがグレーになっている
最後に
以上、Cloud Shellについてをご紹介しました。CLIを使った開発をする際、ご参考になれば幸いです。