【大阪 / 横浜】インフラ / サーバーサイドエンジニア募集中!

【大阪 / 横浜】インフラ / サーバーサイドエンジニア募集中!

【導入実績 500社以上】AWS 構築・運用保守・監視サービス

【導入実績 500社以上】AWS 構築・運用保守・監視サービス

【CentOS 後継】AlmaLinux OS サーバー構築・移行サービス

【CentOS 後継】AlmaLinux OS サーバー構築・移行サービス

【WordPress 専用】クラウドサーバー『ウェブスピード』

【WordPress 専用】クラウドサーバー『ウェブスピード』

【格安】Webサイト セキュリティ自動診断「クイックスキャナー」

【格安】Webサイト セキュリティ自動診断「クイックスキャナー」

【低コスト】Wasabi オブジェクトストレージ 構築・運用サービス

【低コスト】Wasabi オブジェクトストレージ 構築・運用サービス

【予約システム開発】EDISONE カスタマイズ開発サービス

【予約システム開発】EDISONE カスタマイズ開発サービス

【100URLの登録が0円】Webサイト監視サービス『Appmill』

【100URLの登録が0円】Webサイト監視サービス『Appmill』

【中国現地企業に対応】中国クラウド / サーバー構築・運用保守

【中国現地企業に対応】中国クラウド / サーバー構築・運用保守

【YouTube】ビヨンド公式チャンネル「びよまるチャンネル」

【YouTube】ビヨンド公式チャンネル「びよまるチャンネル」

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
164
X facebook はてなブックマーク pocket
【2024.6.30 CentOS サポート終了】CentOS サーバー移行ソリューション

【2024.6.30 CentOS サポート終了】CentOS サーバー移行ソリューション

【大阪 / 横浜】インフラエンジニア・サーバーサイドエンジニア 積極採用中!

【大阪 / 横浜】インフラエンジニア・サーバーサイドエンジニア 積極採用中!

この記事をかいた人

About the author

高城政紘

大学卒業後、某SIerに入社し
インフラエンジニアとしてのキャリアをスタート。
2021年の6月にビヨンドに入社し、
現在はシステムソリューション部所属。
主にWeb系のサービスを展開する企業が利用するサーバー / クラウドに対して、24時間365日の運用保守・監視サービスの提供をおこなっている。

保持資格は下記の通り
①AWS SAA
②Lpic 101