aliyun-vpc-manage について
aliyun-vpc-manageは、Alibaba Cloud OpenAPIとSDKでVirtual Private Cloudリソースを管理するスキルです。VPCやVSwitchなどのネットワークリソースの棚卸しとライフサイクル操作に対応し、リージョン単位で結果を確認します。
主な機能
- 01VPCとVSwitchの一覧表示
- 02VPCとVSwitchの作成・削除
- 03利用可能なゾーンの検索
- 04ルートテーブル・NATゲートウェイ・EIPの管理
- 05Describe APIによる操作結果の確認
活用シーン
- 01リージョン内のVPCネットワークの棚卸し
- 02新しい環境向けのVPCとVSwitchの作成
- 03VSwitch作成に使えるゾーンの確認
- 04ネットワークリソースを削除できない原因の調査
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ cinience/ alicloud-skills --skill aliyun-vpc-manageインストール後、Claude Code で/aliyun-vpc-manageを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
agents/openai.yamlreferences/api_overview.mdsources.mdscripts/create_vpc.pycreate_vswitch.pydelete_vpc.pydelete_vswitch.pydescribe_zones.pylist_vpcs.pylist_vswitches.py詳細
カテゴリ:サービス
仮想プライベートクラウド(VPC)
検証
mkdir -p output/aliyun-vpc-manage
for f in skills/network/vpc/aliyun-vpc-manage/scripts/*.py; do
python3 -m py_compile "$f"
done
echo "py_compile_ok" > output/aliyun-vpc-manage/validate.txt
合格基準:コマンドが終了コード 0 で終了し、output/aliyun-vpc-manage/validate.txt が生成されます。
出力と証跡
- list/summarize の出力は
output/aliyun-vpc-manage/の下に保存します。 - 各証跡ファイルにコマンドの引数とリージョンの範囲を記録します。
Alibaba Cloud OpenAPI(RPC)と公式 SDK または OpenAPI Explorer を使用して VPC リソースを管理します。 すべての例と実行では Python SDK を優先してください。
前提条件
pip install alibabacloud_vpc20160428 alibabacloud_tea_openapi alibabacloud_credentials
- AccessKey を準備します(最小権限を設定した RAM ユーザー/ロール)。
- 正しいリージョンとエンドポイント(パブリック/VPC)を選択します。
- VPC OpenAPI は RPC 形式です。手動署名を避けるため、SDK または OpenAPI Explorer の使用を推奨します。
API の動作に関する注意事項(VPC ドキュメントより)
DescribeVpcsとDescribeVSwitchesは、PageNumberとPageSizeによるページネーションに対応しています。DescribeVpcsのリクエストにはRegionIdが必要です。CreateVpcはVpcIdをすぐに返しますが、VPC のステータスはPendingになります。AvailableになるまでDescribeVpcsでポーリングします。CreateVSwitchには、ステータスがAvailableの既存 VPC と有効なZoneIdが必要です。- VPC に VSwitch、セキュリティグループ、その他のリソースが接続されている場合、
DeleteVpcは失敗します。 - VSwitch に ECS インスタンスやその他のリソースがある場合、
DeleteVSwitchは失敗します。
ワークフロー
- リージョン、リソース識別子、実行する操作を確認します。
references/api_overview.mdで API グループと正確なオペレーション名を確認します。- Python SDK(推奨)または OpenAPI Explorer で API を呼び出します。
- describe/list API で結果を確認します。
- インベントリや概要を繰り返し取得する必要がある場合は、
scripts/を使用し、出力をoutput/aliyun-vpc-manage/の下に保存します。
SDK の優先順位
- Python SDK(推奨)
- OpenAPI Explorer
- その他の SDK(Python を使用できない場合のみ)
Python SDK クイックスタート(VPC の一覧表示)
仮想環境の使用を推奨します(システムへのインストール時に PEP 668 の制限を受けるのを避けるため)。
python3 -m venv .venv
. .venv/bin/activate
pip install alibabacloud_vpc20160428 alibabacloud_tea_openapi alibabacloud_credentials
from alibabacloud_vpc20160428.client import Client as Vpc20160428Client
from alibabacloud_vpc20160428 import models as vpc_models
from alibabacloud_tea_openapi import models as open_api_models
def create_client(region_id: str) -> Vpc20160428Client:
config = open_api_models.Config(
region_id=region_id,
endpoint=f"vpc.{region_id}.aliyuncs.com",
)
return Vpc20160428Client(config)
def list_vpcs(region_id: str):
client = create_client(region_id)
resp = client.describe_vpcs(vpc_models.DescribeVpcsRequest(
region_id=region_id,
page_number=1,
page_size=50,
))
for v in resp.body.vpcs.vpc:
print(v.vpc_id, v.vpc_name, v.cidr_block, v.status)
if __name__ == "__main__":
list_vpcs("cn-hangzhou")
Python SDK スクリプト(インベントリ取得に推奨)
- リージョン内の VPC を一覧表示:
scripts/list_vpcs.py - リージョン内の VSwitch を一覧表示:
scripts/list_vswitches.py - VPC を作成:
scripts/create_vpc.py - VSwitch を作成:
scripts/create_vswitch.py - VPC を削除:
scripts/delete_vpc.py - VSwitch を削除:
scripts/delete_vswitch.py - 利用可能なゾーンを照会:
scripts/describe_zones.py
VPC ネットワークの設計原則
CIDR アドレスの計画
- 各リージョンの業務用 VPC には個別の /16 ネットワークを使用し、リージョン間接続時の CIDR の競合を避けます。推奨する割り当て方法:
| リージョン | 推奨 CIDR |
|---|---|
| cn-hangzhou | 10.1.0.0/16 |
| cn-shanghai | 10.2.0.0/16 |
| ap-southeast-1 | 10.3.0.0/16 |
| cn-beijing | 10.4.0.0/16 |
| その他のリージョン | 10.5~254.0.0/16 |
- 大きすぎる CIDR(例:
10.0.0.0/8)は使用しないでください。VSwitch の使用範囲がごく一部であっても同様です。大きなネットワーク範囲を使用すると、他の10.x範囲の VPC との CEN 経由の接続が妨げられます。 - VSwitch には一律 /24 を使用します(使用可能な IP アドレスは 252 個)。ほとんどの業務に十分です。1 つのゾーンで大量のインスタンスが必要な場合は、/20(4092 IP アドレス)を使用できます。
- 将来の拡張に備えて、ネットワーク範囲の間隔を確保します。たとえば、アプリケーション層には 0~9、データベース層には 10~19、ミドルウェアには 20~29 を使用します。
ゾーンと高可用性
- 本番環境では少なくとも 2~3 個のゾーンを使用し、各ゾーンに少なくとも 1 つの VSwitch を配置します。
- アプリケーション層とデータ層を別々のゾーンに配置し、単一 AZ の障害時にもサービスが中断しないようにします。
- VSwitch を作成する前に、
scripts/describe_zones.pyでゾーンの一覧を確認します。ゾーン番号はリージョンによって異なります。
VSwitch の階層分離
業務機能に応じて VSwitch を分割すると、ACL とセキュリティグループによるネットワーク分離が容易になります。
10.x.0~9.0/24 → 应用层(Web/API 服务器)
10.x.10~19.0/24 → 数据层(RDS、Redis、MongoDB)
10.x.20~29.0/24 → 中间件(MQ、ES、Nacos)
10.x.30~39.0/24 → 管理层(跳板机、运维工具)
VSwitch の命名規則
推奨形式:vsw-{region简写}-{可用区}-{用途}
例:vsw-sg-a-app、vsw-hz-h-db、vsw-sh-e-middleware
リージョン間接続(CEN)
- 接続する VPC の CIDR は、重複していてはなりません。
- 自動的に作成される VPC(FC コンポーネントが作成するものなど)は通常
10.0.0.0/8を使用するため、CEN に追加しないでください。追加すると、他のリージョンの10.x範囲と競合します。 - 業務用 VPC の計画時には、CEN による接続の必要性をあらかじめ考慮し、最初から重複しない /16 ネットワークを使用します。
よくある落とし穴
| 問題 | 原因 | 解決策 |
|---|---|---|
| CEN のアタッチに失敗し、CIDR の競合が表示される | 2 つの VPC で CIDR が重複している | 重複しない /16 ネットワークを使用して VPC を新規作成する |
| DeleteVpc が失敗する | VPC 内に VSwitch/セキュリティグループ/NAT などのリソースが残っている | すべての子リソースを削除してから、VPC を削除する |
| DeleteVSwitch が失敗する | VSwitch 内に ECS/RDS などのインスタンスが残っている | インスタンスを解放または移行する |
| VSwitch の作成時に ZoneId が無効と表示される | そのゾーンがサポートされていないか、売り切れている | describe_zones.py を使って有効なゾーンを確認する |
| 本番環境でデフォルト VPC を使用している | デフォルト VPC のネットワーク範囲は制御できず、他の VPC と適切に接続できない | 本番環境では必ず VPC を新規作成し、CIDR を計画する |
一般的な操作の対応
- VPC のライフサイクル:
CreateVpc、DeleteVpc、ModifyVpcAttribute - VPC のクエリ:
DescribeVpcs、DescribeVpcAttribute - VSwitch のライフサイクル:
CreateVSwitch、DeleteVSwitch、ModifyVSwitchAttribute - VSwitch のクエリ:
DescribeVSwitches、DescribeVSwitchAttributes - ルートテーブル:
CreateRouteTable、DeleteRouteTable、DescribeRouteTables、CreateRouteEntry、DeleteRouteEntry - NAT ゲートウェイ:
CreateNatGateway、DeleteNatGateway、DescribeNatGateways - EIP:
AllocateEipAddress、AssociateEipAddress、UnassociateEipAddress、ReleaseEipAddress、DescribeEipAddresses - タグ:
TagResources、UntagResources、ListTagResources
クエリのパターン
- VPC の一覧表示:
DescribeVpcs(フィルターに対応:VpcId、VpcName、IsDefault、ResourceGroupId) - VSwitch の一覧表示:
DescribeVSwitches(フィルターに対応:VpcId、VSwitchId、ZoneId、VSwitchName、IsDefault) - 利用可能なゾーン:VSwitch の作成に有効なゾーンを調べるには、ECS の
DescribeZonesAPI を使用します
AccessKey の優先順位(必ず遵守し、README と整合させてください)
- 環境変数:
ALIBABACLOUD_ACCESS_KEY_ID/ALIBABACLOUD_ACCESS_KEY_SECRET/ALIBABACLOUD_REGION_IDリージョンのポリシー:ALIBABACLOUD_REGION_IDは任意のデフォルト値です。設定されていない場合は、タスクに最も適したリージョンを選択してください。不明な場合はユーザーに確認してください。 - 共有設定ファイル:
~/.alibabacloud/credentials(リージョンは引き続き環境変数から取得)
認証の設定(README に準拠)
環境変数:
export ALIBABACLOUD_ACCESS_KEY_ID="your-ak"
export ALIBABACLOUD_ACCESS_KEY_SECRET="your-sk"
export ALIBABACLOUD_REGION_ID="cn-hangzhou"
Alibaba Cloud SDK でもサポートされています:
export ALIBABA_CLOUD_ACCESS_KEY_ID="your-ak"
export ALIBABA_CLOUD_ACCESS_KEY_SECRET="your-sk"
レガシー互換性:
export ALICLOUD_ACCESS_KEY_ID="your-ak"
export ALICLOUD_ACCESS_KEY_SECRET="your-sk"
共有設定ファイル:
~/.alibabacloud/credentials
[default]
type = access_key
access_key_id = your-ak
access_key_secret = your-sk
API の検出
- 製品コード:
Vpc - デフォルトの API バージョン:
2016-04-28 - OpenAPI メタデータのエンドポイントを使用して API の一覧を表示し、スキーマを取得します(参考資料を参照)。
出力ポリシー
レスポンスまたは生成された成果物を保存する必要がある場合は、次の場所に保存してください:
output/aliyun-vpc-manage/
参考資料
- API の概要:
references/api_overview.md - ソース:
references/sources.md