Serverless App Engine (SAE) アプリケーションと Alibaba Cloud Container Registry (ACR) インスタンスが別のアカウントにある場合は、ネットワーク接続を確保し、ACR インスタンスにアクセスするための権限付与を設定する必要があります。その後、イメージリポジトリのアドレスを入力してアプリケーションをデプロイできます。
前提条件
SAE アプリケーションと ACR インスタンス間のネットワーク接続の確保
アプリケーションが実行される VPC に対して、VPC 間のネットワーク接続を確立するか、インターネット NAT ゲートウェイを有効にする必要があります。[ACR Enterprise Edition] インスタンスの場合、SAE アプリケーションの VPC CIDR ブロックまたは [NAT ゲートウェイ] にアタッチされた [EIP] を ACR インスタンスの ホワイトリスト に追加する必要もあります。
ACR インスタンスにアクセスするための権限付与情報の設定
権限付与には、[静的なユーザー名とパスワード] または [RAM ロール] のいずれかを使用できます。
静的なユーザー名とパスワード
イメージリポジトリのユーザー名とパスワードを保存するための [Secret] を作成します。[名前空間] ページで、ターゲットリージョンを選択し、ターゲット名前空間をクリックします。次に、左側のナビゲーションウィンドウで [Secret] を選択し、[作成] をクリックします。
[タイプ] を [プライベートイメージリポジトリのログオンキー] に設定します。
[イメージリポジトリのアドレス] フィールドに、ACR インスタンスのパブリックドメイン名 (ACR Personal Edition の場合は
registry.cn-xx.aliyuncs.com、ACR Enterprise Edition の場合はxx-registry.cn-xx.cr.aliyuncs.comなど) を入力します。次に、イメージリポジトリにログインするための [ユーザー名] と [パスワード] を入力します。
RAM ロール
SAE は、Resource Access Management (RAM) ロールを偽装することで、別の Alibaba Cloud アカウントからイメージをプルできます。これは、SAE アプリケーションを所有するユーザー A が、ACR イメージを所有するユーザー B に属するロールを偽装して、ユーザー B のプライベートイメージをプルすることを意味します。
RAM ロールの作成: ユーザー B の Alibaba Cloud アカウントを使用して、ユーザー A の RAM ロールを作成します。詳細については、「信頼できる Alibaba Cloud アカウントの RAM ロールを作成する」をご参照ください。
アクセスポリシーの設定: カスタムポリシーを作成するか、カスタムポリシーを変更し、次のポリシーコンテンツを追加してプライベートイメージに関連する操作を許可します。
{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": [ "cr:GetAuthorizationToken", "cr:ListInstanceEndpoint", "cr:PullRepository", "cr:GetRepository", "cr:ListRepositoryTag" ], "Resource": "*" } ] }RAM ロールへのアクセスポシーの付与: ステップ 2 で設定したアクセスポリシーを、ステップ 1 で作成した RAM ロールに付与します。詳細については、「RAM ロールに権限を付与する」をご参照ください。
RAM ロールの信頼できるエンティティの変更: 次の信頼ポリシーを変更して、ステップ 1 で作成した RAM ロールの信頼できるエンティティを SAE サービスアカウントに変更します。詳細については、「RAM ロールの信頼ポリシーを変更する」をご参照ください。
変更前
変更後
{ "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "RAM": [ "acs:ram::123456789012****:root" ] } } ], "Version": "1" }この RAM ロールは、Alibaba Cloud アカウント (アカウント ID: 123456789012****) に属する、権限を付与された任意の RAM ユーザーまたは RAM ロールによって偽装できます。
{ "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "Service": [ "123456789012****@sae.aliyuncs.com" ] } } ], "Version": "1" }この RAM ロールは、Alibaba Cloud アカウント (アカウント ID: 123456789012****) に対応する SAE サービスアカウント (123456789012****@sae.aliyuncs.com) によってのみ偽装できます。
説明この例では、
Serviceは、別のアカウントからイメージをプルする必要があるサービスです。ARN のコピー: RAM ロールの [基本情報] ページで、ARN をコピーします。これは、アプリケーションをデプロイするときに提供する必要がある [acrAssumeRoleArn] です。
手順
SAE アプリケーション ページで、上部のナビゲーションバーでターゲットリージョンと名前空間を選択し、[アプリケーションの作成] をクリックします。
アプリケーションのエディションを選択します。
重要軽量版とプロフェッショナル版は招待制ベータです。ベータテストに参加していない場合、アプリケーションは標準版として作成され、エディションを選択する必要はありません。
軽量版: アプリケーションの実行に必要な最小限の機能セットを提供し、[アプリケーションモニタリング] や [マイクロサービス管理] をサポートしません。
標準版: [基本的なアプリケーションモニタリング] が含まれますが、[高度なアプリケーションモニタリング] と [マイクロサービスガバナンス] は追加のアクティベーションと購入が必要です。
プロフェッショナル版: [高度なアプリケーションモニタリング] と [マイクロサービスガバナンス] 機能が付属しており、追加のアクティベーションや購入は不要です。
[アプリケーションの作成] ページで、[アプリケーション名] を設定し、次のパラメーターを設定します。
アプリケーションの名前空間タイプを選択します。名前空間は Kubernetes 名前空間と同等であり、異なる環境のリソースを分離するために使用されます。アプリケーションの作成後に名前空間を変更することはできないため、事前に名前空間を計画する必要があります。
[システム作成]: 現在のリージョンでシステムによって作成されるデフォルトの名前空間、vSwitch、およびセキュリティグループを使用します。
[既存の名前空間]: 事前に作成した名前空間、vSwitch、およびセキュリティグループを選択します。
[アプリケーションのデプロイ方法] を [デプロイするイメージの選択] に設定し、[イメージの設定] をクリックします。次に、[他の Alibaba Cloud アカウントからのプライベートイメージ] タブで、次の情報を設定します。
ACR イメージサービスバージョンを選択し、認証方式を選択します。Enterprise Edition を選択した場合は、[Enterprise Edition インスタンス ID] も入力する必要があります。
[静的なユーザー名とパスワード]: 事前に作成した [イメージリポジトリのユーザー名とパスワードを保存する Secret] を選択します。
[Ram ロール]: 事前にコピーした [acrAssumeRoleArn] を入力します。
[完全なイメージリポジトリアドレス] を
<イメージリポジトリアドレス>:<イメージタグ>の形式で入力します。たとえば、ACR Personal Edition インスタンスの場合はregistry.cn-xx.aliyuncs.com/xx/xx:1.0を、ACR Enterprise Edition インスタンスの場合はxx-registry.cn-xx.cr.aliyuncs.com/xx/xx:1.0を使用します。 注: ネットワーク構成に基づいて、パブリックまたはプライベートイメージリポジトリアドレスを選択する必要があります。ACR Enterprise Edition インスタンスの場合、イメージアクセラレーション機能を有効にしてアプリケーションの起動速度を向上させることができます。
[キャパシティ設定] セクションで、[リソースタイプ]、[インスタンスタイプ]、および [インスタンス数] を設定します。
(オプション) [次へ: 詳細設定] をクリックして、必要な機能を設定します。
[ワンクリックでアプリケーションを作成] または [アプリケーションの作成] をクリックします。
アプリケーションの作成には約 1〜2 分かかります。変更履歴を表示することで、アプリケーションが正常にデプロイされたかどうかを判断できます。デプロイに失敗した場合、アプリケーションインスタンスは作成されません。[変更の詳細] のエラーメッセージに基づいて障害のトラブルシューティングを行うことができます。
作成されたアプリケーションは、 ページで表示できます。デプロイ後にアプリケーション設定を変更するには、ターゲットアプリケーションをクリックして詳細ページを開きます。次に、上部にある [アプリケーションのデプロイ] または [アプリケーション設定の変更] をクリックします。注: 新しい設定を有効にするためにアプリケーションは自動的に再起動します。この操作はオフピーク時に実行してください。
Webshell を介してアプリケーションインスタンスにログインし、コンソールコマンドを介してアプリケーションインスタンスと対話できます。
アプリケーションを作成した後、インスタンス数を手動で調整したり、インスタンスタイプを調整したり、Auto Scaling ポリシーを設定してインスタンス数を自動的に調整したりできます。また、アイドルモードを有効にすることでコストを削減することもできます。

