[Osaka/Yokohama] Looking for infrastructure/server side engineers!

[Osaka/Yokohama] Looking for infrastructure/server side engineers!

[Deployed by over 500 companies] AWS construction, operation, maintenance, and monitoring services

[Deployed by over 500 companies] AWS construction, operation, maintenance, and monitoring services

[Successor to CentOS] AlmaLinux OS server construction/migration service

[Successor to CentOS] AlmaLinux OS server construction/migration service

[For WordPress only] Cloud server “Web Speed”

[For WordPress only] Cloud server “Web Speed”

[Cheap] Website security automatic diagnosis “Quick Scanner”

[Cheap] Website security automatic diagnosis “Quick Scanner”

[Reservation system development] EDISONE customization development service

[Reservation system development] EDISONE customization development service

[Registration of 100 URLs is 0 yen] Website monitoring service “Appmill”

[Registration of 100 URLs is 0 yen] Website monitoring service “Appmill”

[Compatible with over 200 countries] Global eSIM “Beyond SIM”

[Compatible with over 200 countries] Global eSIM “Beyond SIM”

[If you are traveling, business trip, or stationed in China] Chinese SIM service “Choco SIM”

[If you are traveling, business trip, or stationed in China] Chinese SIM service “Choco SIM”

[Global exclusive service] Beyond's MSP in North America and China

[Global exclusive service] Beyond's MSP in North America and China

[YouTube] Beyond official channel “Biyomaru Channel”

[YouTube] Beyond official channel “Biyomaru Channel”

Alibaba Cloud CLI で ECS のイメージIDを取得する

はじめに

未だに冒頭の書き出しに10分ぐらい迷ってしまいます、技術営業部の高城です。

そんなこんなで今回は、「Alibaba Cloud CLI」を使用して、Alibaba Cloud の仮想サーバー環境「ECS(Elastic Compute Service)」のイメージIDを取得してみようと思います!

Terraform を使って ECS を構築したい時に、どうしてもこの「イメージID」を指定する必要がありますが、どうやらこの「Alibaba Cloud CLI」を使用して、取得する方が早いらしく、今回はその備忘録として、したためておきます。

※ Terraform の記事もいつかちゃんと書きます。。

Alibaba Cloud CLI とは

まず軽くこちらの「Alibaba Cloud CLI」についての解説ですが、普段 AWS をご使用になられている読者様であれば、ザックリ「AWS CLI」の Alibaba Cloud 版と解釈していただいて問題ないかと思います。

ブラウザからではなくCLIでリソースを管理する時に使うツールになりますが、念のため公式ドキュメントへのリンクを記載しておりますので、詳細はそちらをご確認ください!

ちなみに、日本語は準備中(2024.1.18 本記事の公開時点)との事なので、筆者は翻訳ツールを使用して読みました。

大まかな流れ

今回の流れは下記の通りで、今回は Windows11 の PC にインストールされた WSL(Almalinux 8)を使って行います。

  1. curlコマンドでインストール / 解凍
  2. 動作確認
  3. RAMユーザー作成とAPIキーの取得
  4. Profileの作成
  5. イメージID取得
  6. --output を使用した情報の取得
  7. まとめ

curlコマンドでインストール / 解凍

WSL を開いていただき、Almalinux を起動したら、下記のコマンドでインストールと解凍を行います。

curl -sL https://github.com/aliyun/aliyun-cli/releases/download/v3.0.188/aliyun-cli-linux-3.0.188-amd64.tgz | sudo tar xzC /usr/local/bin

ちなみに Github 上にも詳細な情報がありますので、こちらも併せてご確認ください。

■ Github

https://github.com/aliyun/aliyun-cli

https://github.com/aliyun/aliyun-cli/releases

■ 公式マニュアル

https://www.alibabacloud.com/help/zh/alibaba-cloud-cli/latest/installation-guide?spm=a2c63.p38356.0.0.106b6d42SZzhML

動作確認

下記のコマンドを実行して、インストールした Alibaba Cloud CLI のバージョンを確認します。

aliyun version

今回だと「3.0.188」と表示されるはずで、これが確認できればOKです!

RAMユーザー作成

ただ、このままでは、まだCLI経由で必要な情報を取得できませんので、ひとまず Administrator 権限を持つユーザーを作成してください。

また、その際出力される、下記の3点の情報をメモしておいてください。

  1. AccessKey ID
  2. AccessKey Secret
  3. Default Region ID

※ ユーザー作成時に CSV で取得する事も出来ます!

Profile の作成

上記3点を控えたら、WSL で Almalinux8 を開いて下記のコマンドを実行してください。

aliyun configure --profile default

そうすると、下記の図1の様に、対話形式で先ほどの情報を聞かれますので、順次入力していきます。

■ 図1

■ 入力順

  1. AccessKey ID          → 個人の情報を入力
  2. AccessKey Secret → 個人の情報を入力
  3. Default Region ID    → ap-northeast-1
  4. Default Language     →   en

最後に「Configure Done !!!」と出れば完了です。

イメージIDの取得

とは言え、このままでは実際に実行するコマンドが分からないのでhelpを確認して、使用できるオプションを確認します!

■ 実行コマンド

aliyun --help

■ 実行結果

長いので、一部抜粋しておりますが、aliyunコマンドで使用できるオプションや、リソースが一覧で表示できるので、今回の要件である「ECS」のリソースを指定して、更に特定のサービスに関する help を調査していきます。

■ 実行コマンド

aliyun ecs --help

■ 実行結果

ここから使用可能なAPIリストが表示されますので、この中で一番該当してそうな「DescribeImages」を使用して、JSON 形式で結果を取得します。

■ 実行コマンド

aliyun ecs DescribeImages

■ 実行結果

長いので一部抜粋してますが、こんな感じでJSON形式の結果が出力されます。「"ImageId"」の部分で今回知りたかった情報が取得できることが分かりますね!

個人的には grep を組み合わせて「欲しい部分だけ抜く」のでも良い気がしてるんですが、今回は公式ドキュメントにイイ感じにまとまっている「--output」を使って、必要な部分を取得していきます!

蛇足ですが、「aliyun ecs DescribeImages」コマンドのhelpも、下記の様に確認する事が出来ますので、実際に CLI から ECS に対して何かを行いたい場合は、以下の様な他のパラメーターも参考にしてみてください

■ 実行コマンド

aliyun ecs DescribeImages help

■ 実行結果

--output を使用した情報の取得

Alibaba Cloud CLI では、前述のコマンドの出力結果を、もっと直観的で分かりやすくするために、「-- output」のオプションを提供していて、このオプションと以下3つの「Field」を指定する事で、自分が興味のある部分だけを抽出する事が出来ます。

■ Field

cols

フィールドに存在する行の名前の事で、

「aliyun ecs DescribeImages」の結果で例えるなら

「ImageId」や「OSNameEn」、「Status」が該当します。

rows

フィルターしたいフィールドが存在するパスをJAMESPATH を使って指定します。

「aliyun ecs DescribeImages」の結果で例えるなら「Images」や「Image」が該当します。

num

結果の左側に0から始まる行数を出力してくれます。デフォルトでは出力しません。

上記を踏まえて、実行したコマンドが下記になります。

この末尾に「num=true」と入れると、左側に行数が出力されます。

■ 実行コマンド

aliyun ecs DescribeImages --PageSize 100 --output cols="ImageId,OSNameEn,Status" rows="Images.Image[]" aliyun ecs DescribeImages --PageSize 100 --output cols="ImageId,OSNameEn,Status" rows="Images.Image[]" num=true

■ 実行結果

「rows」の部分はJAMESPATHを使って指定する必要がありますが、段違いに結果が見やすくなりましたね!

これでひと安心です!

まとめ

いかがでしたでしょうか。

JAMESPATH の部分とかは、個人的にドキュメントを読むのに時間がかかってしまったので、少し手こずりましたが、これで安心して Terraform でリソースを構築する事が出来ます!

最後になりますが、弊社は深圳にオフィスを開設し、AlibabaCloud や Tencent Cloudなどの、中国系クラウドをはじめとする、様々なクラウドベンダーのサービスを通じて、お客様のシステムを設計構築から運用保守まで、サポートする事が可能です。

是非今回の記事と併せて、弊社ビヨンドの中国オフィス「必友得科技(深圳)有限公司」についてもご興味を持っていただければ幸いでございます!

引き続き、AlibabaCloud 関連の記事を中心に書いていきますので、是非チェックしてみてください!

この記事がお役に立てば【 いいね 】のご協力をお願いいたします!
5
読み込み中...
5 票, 平均: 1.00 / 15
205
X facebook はてなブックマーク pocket
[2024.6.30 CentOS support ended] CentOS server migration solution

[2024.6.30 CentOS support ended] CentOS server migration solution

[2025.6.30 Amazon Linux 2 support ended] Amazon Linux server migration solution

[2025.6.30 Amazon Linux 2 support ended] Amazon Linux server migration solution

[Osaka/Yokohama] Actively recruiting infrastructure engineers and server side engineers!

[Osaka/Yokohama] Actively recruiting infrastructure engineers and server side engineers!

The person who wrote this article

About the author

Masahiro Takajo

After graduating from university, I joined a certain system integrator and
started my career as an infrastructure engineer.
He joined Beyond in June 2021 and
currently belongs to the System Solutions Department.
We provide 24-hour, 365-day operation, maintenance, and monitoring services for servers and clouds used by companies that primarily provide web-based services.

The qualifications held are as follows:
① AWS SAA
② Lpic 101