[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”

[Low cost] Wasabi object storage construction and operation service

[Low cost] Wasabi object storage construction and operation service

[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 “beSIM”

[Compatible with over 200 countries] Global eSIM “beSIM”

[Suitable for local companies in China] China cloud / server construction, operation and maintenance

[Suitable for local companies in China] China cloud / server construction, operation and maintenance

[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 関連の記事を中心に書いていきますので、是非チェックしてみてください!

この記事がお役に立てば【 いいね 】のご協力をお願いいたします!
4
読み込み中...
4 票, 平均: 1.00 / 14
177
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