huawei-cloud-ecs-sqlbot-deploy について
Huawei Cloud X インスタンスに SQLBot をデプロイするスキルです。クラウド上でクエリアプリケーションを構築するユーザー向けに、認証情報の検証、構成確認、セキュリティグループ設定、COC 経由のデプロイを行います。
主な機能
- 01Huawei Cloud 認証情報の検証
- 02Ubuntu 22.04 インスタンスの作成
- 03セキュリティグループと EIP の設定
- 04COC 経由の SQLBot デプロイ
- 05リソース作成前の構成確認
活用シーン
- 01SQLBot 用の Huawei Cloud サーバー構築
- 02リソース作成前の認証情報検証と構成確認
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ huaweicloud/ huaweicloud-skills --skill huawei-cloud-ecs-sqlbot-deployインストール後、Claude Code で/huawei-cloud-ecs-sqlbot-deployを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/acceptance-criteria.mdcli-installation-guide.mdiam-policies.mdverification-method.mdscripts/coc_deploy.pyconfig.pydeploy_sqlbot.pyhuawei_cloud_ecs.pypyproject.tomlquery_regions.pyutils.py詳細
🚀 Huawei Cloud X インスタンスサーバーを購入して SQLBot をデプロイする
⛔⛔⛔ 重要:必須の実行順序 ⛔⛔⛔
以下の手順を必ず正確な順序で実行してください。手順を省略することはできません。
┌─────────────────────────────────────────────────────────────────┐
│ STEP 1: Auto-check environment variables for credentials │
│ ↓ │
│ STEP 2: Get Region (if env credentials found) OR │
│ Get Credentials (AK/SK/Region) from user │
│ ↓ │
│ STEP 3: Validate credentials + Show available flavors │
│ ↓ │
│ STEP 4: ⛔ SHOW CONFIG + GET USER CONFIRMATION ⛔ │
│ ⛔ WAIT FOR USER TO REPLY "default" OR "custom" ⛔ │
│ ⛔ IF "custom": SECOND CONFIRMATION REQUIRED ⛔ │
│ ⛔ DO NOT PROCEED UNTIL USER CONFIRMS ⛔ │
│ ↓ │
│ STEP 5: Create server (ONLY AFTER user confirmation) │
│ ↓ │
│ STEP 6: Deploy SQLBot │
│ ↓ │
│ STEP 7: Return results │
└─────────────────────────────────────────────────────────────────┘
⚠️ ステップ 4(ユーザー確認)を省略すると、このタスクは失敗です。 ⚠️ ユーザーが「custom」を選択した場合、必ず 2 回目の確認を取ってください。
実行前チェックリスト
リソースを作成する前に、以下のすべてを確認してください。
| # | 確認項目 | 状態 |
|---|---|---|
| 1 | 認証情報が利用可能(環境変数またはユーザーから提供) | ☐ 完了 |
| 2 | 認証情報の検証に成功 | ☐ 完了 |
| 3 | ユーザーからリージョンが提供された | ☐ 完了 |
| 4 | ユーザーが構成を確認した(default/custom) | ☐ 必須 |
| 5 | ユーザーが明示的に「default」または「custom」と指定した | ☐ 必須 |
⛔ 項目 4 と 5 にチェックが入っていない場合は、停止してユーザーに確認を求めてください。
概要
このスキルは、Huawei Cloud X インスタンスサーバーを購入し、SQLBot インテリジェントクエリアプリケーションをデプロイします。
サーバー仕様:x86 アーキテクチャ、Ubuntu 22.04 サーバー 64 ビット、デフォルトで 4 コア、8GB RAM(x1.4u.8g)
主な機能:
- AK/SK 認証(一時的な認証情報に対応)
- X インスタンス + Ubuntu 22.04 の作成
- セキュリティグループの自動構成(ポート 8000 は内部ネットワークからのアクセスのみ許可)
- COC Cloud Operations Center によるデプロイ
- ワンクリックで完了:サーバーの作成 → セキュリティグループの構成 → SQLBot のデプロイ
前提条件
アカウント要件:有効な Huawei Cloud アカウント、十分な残高、X インスタンスの作成、セキュリティグループの作成、EIP のバインド、および COC へのアクセスに必要な権限
認証情報の要件:
| 認証情報の種類 | 必須パラメーター | セキュリティ | 説明 |
|---|---|---|---|
| 一時(推奨) | AK + SK + セキュリティトークン | 高 | 自動的に有効期限が切れるため、より安全です |
| 永続 | AK + SK | 中 | 有効期限はありません。安全に保管してください |
ステップごとの実行ガイド
━━━ ステップ 1:認証情報の自動確認(環境変数) ━━━
ユーザーがこのスキルを実行したら、ユーザーに尋ねる前に、まず環境変数から認証情報を自動的に取得してください。
# Check credentials (prefer temporary credentials)
export HW_ACCESS_KEY
export HW_SECRET_KEY
export HW_SECURITY_TOKEN
判定ロジック:
| 認証情報の状態 | 次のステップ |
|---|---|
| ✅ HW_ACCESS_KEY + HW_SECRET_KEY + HW_SECURITY_TOKEN が存在する | ステップ 2 に進む(リージョンのみを尋ね、一時的な AK/SK 認証を使用) |
| ✅ HW_ACCESS_KEY + HW_SECRET_KEY が存在する(トークンなし) | ステップ 2 に進む(リージョンのみを尋ね、永続的な AK/SK 認証を使用) |
| ❌ 環境変数が見つからない | ユーザーに認証情報の構成を促す(環境変数を推奨)。ステップ 2 に進む |
| ❌ 認証に失敗 | ユーザーに認証情報の確認または再構成を促す。ステップ 2 に進む |
⚠️ セキュリティに関する推奨事項:
- 一時的な認証情報を推奨:より高いセキュリティレベルで、認証情報は自動的に有効期限が切れます
- 環境変数による構成:認証情報は環境変数(HW_ACCESS_KEY、HW_SECRET_KEY、HW_SECURITY_TOKEN)で構成してください
- 機密情報の保護:AK/SK は機密情報です。会話に入力したり、漏えいさせたりしないでください
━━━ ステップ 2:リージョンまたは認証情報の取得 ━━━
ケース A:環境変数の認証情報が検出された場合
OK! I will help you deploy SQLBot on Huawei Cloud X instance.
📋 Process Overview:
1. ✅ Environment credentials detected → User only needs to provide region
2. ⛔ Confirm configuration with you ⛔
3. Create server
4. Deploy SQLBot
⏱️ Estimated time: 10-15 minutes
Please provide:
- **Region**: Optional, default cn-north-4 (Beijing 4)
⚠️ If not provided, will use default region: cn-north-4
ケース B:環境変数の認証情報が検出されなかった場合
❌ Environment credentials not detected
Please configure Huawei Cloud credentials (see "How to Get AK/SK" section).
📋 Process Overview:
1. ❌ Environment credentials not detected → User needs to provide credentials + region
2. ⛔ Confirm configuration with you ⛔
3. Create server
4. Deploy SQLBot
⏱️ Estimated time: 10-15 minutes
Please provide:
- **Access Key (AK)**: Required
- **Secret Key (SK)**: Required
- **Security Token**: Required for temporary credentials, not needed for permanent
- **Region**: Optional, default cn-north-4 (Beijing 4)
**注記:**認証情報は環境変数から取得することを優先し、AK/SK を直接入力するようユーザーに求めることはありません。ただし、ユーザーが別の方法(会話への入力、構成ファイルなど)で認証情報を自発的に提供した場合は、解析に対応します。
リージョンの表と AK/SK の手順(以下を参照)を含めてください。
その後、ユーザーからの情報提供を待ってください。
━━━ ステップ 3:認証情報の検証 ━━━
リージョン/認証情報を受け取った後:
- 認証情報を検証します
- 構成をユーザーに表示します
以下の注記を表示してください:
💡 Note: Server flavor availability varies by region.
🔗 For details, see: https://www.huaweicloud.com/pricing/calculator.html#/hecs
検証に成功したら、ステップ 4:ユーザー確認に進んでください。
━━━ ステップ 4:ユーザーによる確認(⛔ 必須) ━━━
⛔ このステップは必須です。省略できません。⛔
設定を表示して、確認を求めてください(「パラメーターの確認」セクションを参照):
⚠️ 注意:サーバー名を表示し、使用されるサーバー名をユーザーが把握できるようにしてください。
⛔ 停止して、ユーザーが「default」または「custom」と返信するまで待ってください。
⛔ ユーザーの確認が完了するまで、ステップ 5 に進まないでください。
⛔ ユーザーの確認前に、リソースを作成しないでください。
ユーザーが「custom」と答えた場合:
- カスタマイズしたい項目を尋ねます
- ユーザーの入力に基づいて設定を更新します
- ⛔ 2 回目の確認が必要です ⛔ - 更新した設定を表示し、ユーザーに再度確認を求めます(「パラメーターの確認」セクションを参照)
- ユーザーが「confirm」または「modify」と返信するまで待ちます
- 2 回目の確認が完了してから、ステップ 5 に進みます
ユーザーが「default」と答えた場合: ステップ 5 に進みます。
━━━ ステップ 5:サーバーの作成 ━━━
このステップは、ユーザーが設定を確認した後にのみ実行してください。
ユーザーに通知します:「⏳ サーバーを作成しています...」
- セキュリティグループ sg-sqlbot-YYYYMMDDHHMM を作成します
- 確認済みの設定で X インスタンスを作成します
- EIP をバインドします
- サーバーの準備が整うまで待ちます
ユーザーに通知します:「✅ サーバーを作成しました!」
━━━ ステップ 6:SQLBot のデプロイ ━━━
ユーザーに通知します:「⏳ COC 経由で SQLBot をデプロイしています...」
- Cloud Operations Center(COC)でインストールスクリプトを作成します
- COC 経由で対象インスタンス上でスクリプトを実行します
- デプロイが完了するまで待ち、結果を確認します
ユーザーに通知します:「✅ COC 経由で SQLBot をデプロイしました!」
━━━ ステップ 7:結果の返却 ━━━
以下のすべてを必ず提示してください:
🎉 SQLBot Deployment Complete!
📋 Server Information:
- Name: x-SQLBot-YYYYMMDDHHMM
- Public IP: X.X.X.X
- Private IP: 192.168.X.X
🔐 Access Information:
- Server Password: Test@123456 ⚠️ Change immediately!
- SQLBot URL: http://X.X.X.X:8000 (Note: Please allow your accessing machine IP to access port 8000 in the security group before accessing)
- SQLBot Username: admin
- SQLBot Password: SQLBot@123456
🔗 Huawei Cloud Console: https://console.huaweicloud.com/console/?region={region}#/ecs/manager/vmList
⚠️ Security Reminders:
1. Change server password immediately after login
2. Change SQLBot admin password after login
3. Release server when done to save costs
対応リージョン(19 リージョン)
| リージョン名 | リージョンコード |
|---|---|
| 中国北部 - 北京 4 | cn-north-4 |
| 中国東部 - 上海 1 | cn-east-3 |
| 中国南部 - 広州 | cn-south-1 |
| 中国西南部 - 貴陽 1 | cn-southwest-2 |
| 中国東部 2 | cn-east-4 |
| 中国東部 - 青島 | cn-east-5 |
| 中国北部 - ウランチャブ 1 | cn-north-9 |
| 中国 - 香港 | ap-southeast-1 |
| アジア太平洋 - バンコク | ap-southeast-2 |
| アジア太平洋 - シンガポール | ap-southeast-3 |
| アジア太平洋 - ジャカルタ | ap-southeast-4 |
| アジア太平洋 - マニラ | ap-southeast-5 |
| アフリカ - カイロ | af-north-1 |
| アフリカ - ヨハネスブルグ | af-south-1 |
| ラテンアメリカ - メキシコシティ 2 | la-north-2 |
| ラテンアメリカ - サンティアゴ | la-south-2 |
| ラテンアメリカ - サンパウロ 1 | sa-brazil-1 |
| 中東 - リヤド | me-east-1 |
| トルコ - イスタンブール | tr-west-1 |
AK/SK の取得方法
方法 1:一時認証情報(推奨 🔒)
メリット:
- ✅ 自動的に有効期限が切れるため、セキュリティが高まります
- ✅ 一時的なデプロイ作業に適しています
- ✅ 漏えいした場合でも影響を限定できます
手順:
- Huawei Cloud API Explorer にログインします:https://console.huaweicloud.com/apiexplorer/#/openapi/IAM/debug?api=CreateTemporaryAccessKeyByToken&version=v3
- 「必須フィールドのみ表示」をクリックし、本文の「Token」に値を入力します
- 「デバッグ」をクリックして認証情報を取得します
- AK、SK、セキュリティトークンをコピーします
⚠️ 注意:一時認証情報には有効期限があります(デフォルトでは 15 分から 1 時間)。速やかに使用してください。
方法 2:永続認証情報
メリット:
- ✅ 長期間有効で、頻繁に更新する必要がありません
- ✅ 自動化スクリプトや CI/CD に適しています
手順:
- Huawei Cloud コンソールにログインします:https://console.huaweicloud.com/
- アバター(右上)をクリックし、「マイ認証情報」を選択します
- 左側のメニューから「アクセスキー」を選択します
- 「アクセスキーを作成」をクリックします
- CSV ファイルをダウンロードします(AK と SK が含まれています)
⚠️ 注意:永続認証情報には有効期限がありません。安全に保管してください。CSV ファイルをコードリポジトリにアップロードしないでください。
認証情報の種類の比較
| 種類 | パラメーター | セキュリティ | 有効期間 | 用途 |
|---|---|---|---|---|
| 一時 | AK + SK + セキュリティトークン | 高 | 自動的に期限切れ | 一時的なデプロイ、単発の作業 |
| 永続 | AK + SK | 中 | 無期限 | 自動化スクリプト、CI/CD |
セキュリティに関する推奨事項:デプロイ作業では、一時認証情報を優先して使用してください。
デフォルト設定
| 項目 | デフォルト値 |
|---|---|
| サーバー名 | x-SQLBot-YYYYMMDDHHMM |
| フレーバー | x1.4u.8g (4U8G, x86_64) |
| イメージ | Ubuntu 22.04 Server 64-bit |
| システムディスク | 80GB 高 I/O |
| 課金モード | オンデマンド |
| セキュリティグループ | sg-sqlbot-YYYYMMDDHHMM (新規作成) |
| EIP 帯域幅 | 300M |
| EIP 課金 | トラフィック量に応じて課金 |
| サーバーパスワード | Test@123456 |
| SQLBot ユーザー名 | admin |
| SQLBot パスワード | SQLBot@123456 |
| 開放ポート | 8000 (内部ネットワークのみ) |
料金の目安
デフォルト設定 (4U8G、オンデマンド):
- サーバー:約0.47 CNY/時間
- トラフィック:約0.8 CNY/GB
料金計算ツール: https://www.huaweicloud.com/pricing/calculator.html#/hecs
主なコマンド
| コマンド/オプション | 機能 | 説明 |
|---|---|---|
(no option) | デプロイ | X インスタンスを購入し、SQLBot インテリジェントクエリアプリケーションをデプロイします |
--list-regions / -l | 利用可能なリージョンを表示 | 対応するすべてのリージョンと X インスタンスの種類を表示します |
--test | 接続をテスト | AK/SK 認証情報を検証します |
一般的なパラメーター: --ak、--sk、--region、--flavor、--charging-mode
デフォルト値:「デフォルト設定」セクションを参照してください。
パラメーターの確認
⛔ 必須:デプロイ前にユーザーの確認が必要です。確認なしにリソースを作成することはできません。
確認フロー
- 設定を表示:サーバー名、リージョン、フレーバー、イメージ、システムディスク、課金モード、EIP などを一覧表示します。
- ユーザーの応答を待機:ユーザーは
"default"(デフォルト設定を使用)または"custom"(設定をカスタマイズ)と明示的に返信する必要があります。 - 2 回目の確認(必要な場合):ユーザーが
"custom"を選択した場合、更新後の設定を表示し、再度確認を求めます。
確認するパラメーター
カスタマイズ可能なパラメーター:サーバー名、リージョン、フレーバー、イメージ、システムディスク、課金モード、EIP 帯域幅(デフォルト値は「デフォルト設定」セクションを参照してください)
確認テンプレート
📋 Server Configuration:
| Item | Value |
|------|-------|
| Server Name | x-SQLBot-YYYYMMDDHHMM (auto-generated) |
| Region | {user-provided region} |
| Flavor | x1.4u.8g (4 cores 8GB) |
| Image | Ubuntu 22.04 Server 64-bit |
| System Disk | 80GB |
| Billing Mode | On-demand (pay-as-you-go) |
| EIP | 300M bandwidth, pay-by-traffic |
💰 Price Calculator: https://www.huaweicloud.com/pricing/calculator.html#/hecs
⛔ Please confirm: Use "default" configuration or "custom" configuration?
カスタム設定の 2 回目の確認
ユーザーが "custom" を選択した場合、更新後の設定を表示し、2 回目の確認を求めます。
📋 Updated Server Configuration:
| Item | Value |
|------|-------|
| Server Name | {custom name} |
| Region | {custom region} |
| Flavor | {custom flavor} |
| Image | {custom image} |
| System Disk | {custom size}GB |
| Billing Mode | {custom mode} |
| EIP | {custom bandwidth}M bandwidth, pay-by-traffic |
⛔ Please confirm: Is the above configuration correct? Reply "confirm" to proceed or "modify" to change.
スクリプトの使用方法
オプション 1:コマンドラインパラメーターを使用する
python3 scripts/deploy_sqlbot.py \
--ak YOUR_AK \
--sk YOUR_SK \
--security-token YOUR_SECURITY_TOKEN \
--region cn-north-4 \
--notify-user-id <feishu_user_id>
オプション 2:環境変数を使用する(一時的な認証情報に推奨)
export HW_ACCESS_KEY="your-temp-ak"
export HW_SECRET_KEY="your-temp-sk"
export HW_SECURITY_TOKEN="your-security-token"
python3 scripts/deploy_sqlbot.py --region cn-north-4 --notify-user-id <feishu_user_id>
パラメーター:
--ak:Access Key(HW_ACCESS_KEY 環境変数でも設定できます)--sk:Secret Key(HW_SECRET_KEY 環境変数でも設定できます)--security-token:一時的な認証情報用の Security Token(HW_SECURITY_TOKEN 環境変数でも設定できます)--region:リージョンコード(デフォルト:cn-north-4、北京 4)--flavor:サーバーフレーバー(デフォルト:x1.4u.8g)--volume-size:システムディスクのサイズ(デフォルト:80GB)--bandwidth:EIP 帯域幅(デフォルト:300M)--charging-mode:postPaid(オンデマンド)または prePaid(月額)
⚠️ 避けるべきよくある間違い
| 間違い | 正しい対応 |
|---|---|
| ユーザーの確認なしにサーバーを作成する | 必ず最初に確認を得てください |
| ユーザーがデフォルト設定を希望していると決めつける | 「default」か「custom」かを明示的に確認してください |
| 確認手順を省略する | この手順は必須であり、省略できません |
| 設定を表示した後、そのまま進める | 進める前にユーザーの返信を待ってください |
参考資料
- 受け入れ基準 - デプロイ検証基準
- CLI インストールガイド - コマンドラインの使用ガイド
- IAM ポリシー - 権限の設定
- 検証方法 - スキルの検証
- X インスタンスのドキュメント - X インスタンス製品ドキュメント
- AK/SK 認証 - IAM 認証ガイド