すべてのプロダクト
Search
ドキュメントセンター

CloudOps Orchestration Service:カスタムイメージの作成と更新

最終更新日:Jan 17, 2025

カスタムイメージのセキュリティを確保するには、できるだけ早く更新することが重要です。これには、最新のオペレーティングシステム パッチのインストール、ミドルウェアのアップグレード、イメージへの最新バージョンのサードパーティ製ソフトウェアのインストールが含まれます。CloudOps Orchestration Service (OOS) によって提供されるパブリック テンプレートを使用して、イメージを自動的に更新できます。これにより、O&M コストを削減できます。

ソリューション

OOS は、カスタムイメージを更新するためのパブリック テンプレートを提供しています。テンプレートに基づいて実行を作成すると、OOS はイメージを自動的に更新します。OOS を使用してカスタムイメージを更新するには、更新するソースイメージを選択し、Linux インスタンスイメージを更新するためのシェルコマンドなどの必須パラメーターを指定し、[実行の作成] をクリックするだけです。OOS を使用したイメージの更新には、追加のツールは必要ありません。さらに、Elastic Compute Service (ECS) インスタンスを手動で作成、ログイン、編集、リリースしたり、環境変数や AccessKey ペアを設定したりする必要はありません。OOS では、カスタム テンプレートを作成して、イメージの自動更新をスケジュールしたり、複数のイメージを一括で更新したりすることもできます。

カスタムイメージを作成および更新するさまざまな方法の比較

方法

要件

利点

欠点

OOS を使用してカスタムイメージを作成および更新する

OOS をアクティブ化するだけで済みます。他のツールは必要ありません。

  • この方法は安全で信頼性が高く、公式に推奨されています。

  • 操作はオンラインで実行されます。インストールは必要ありません。

  • OOS は、組み込みコードを含むパブリック テンプレートを提供します。

  • AccessKey ペアは必要ありません。

  • OOS では、カスタム テンプレートを作成して使用できます。

  • OOS は、視覚化された実行プロセスを提供します。

  • OOS は、バッチ操作とスケジュールされた操作をサポートしています。

なし。

  • スナップショットを使用してカスタムイメージを作成する

  • ECS インスタンスを使用してカスタムイメージを作成する

他のツールは必要ありません。

この方法は、ECS コンソールで簡単かつ便利な操作を提供します。

  • インスタンスとスナップショットを手動で作成する必要があります。

  • 手順が複雑で、エラーが発生しやすく、非効率的です。

Packer を使用してカスタムイメージを作成する

Packer をインストールする必要があります。

Packer は、さまざまなクラウド サービス プロバイダーでサポートされているオープンソース ツールです。

  • Packer をインストールして保守する必要があります。

  • コードを記述する必要があります。

手順

  1. CloudOps Orchestration Service コンソールにログインします。

  2. 左側のナビゲーションウィンドウで、[自動タスク] > [パブリック テンプレート] を選択します。

  3. [イメージの更新] セクションで、[実行の作成] をクリックします。

  4. [タスクの作成] ページで、[基本情報] ステップのパラメーターを構成します。次に、[次のステップ: パラメーター設定] をクリックします。

  5. パラメーター設定ステップで、パラメーターを構成します。

    • [ソースイメージの選択] セクションで、更新するソースイメージを指定します。

    • [イメージの設定] セクションで、更新後の新しいイメージの名前とタグを指定します。

    • [ECS インスタンスの設定] セクションで、イメージの更新に使用する一時的な ECS インスタンスのタイプと仕様を指定します。

    • [イメージの更新設定] セクションで、更新方法、コマンドタイプ、およびコマンドスクリプトを指定します。

    • [制御オプション] セクションで、[現在のアカウントの既存の権限を使用] がデフォルトで選択されています。これは、OOS が現在のアカウントに付与されている権限を使用することを示します。RAM ロールが指定されている場合、OOS はこのロールを引き受けて O&M タスクを実行します。

  • [次のステップ: OK] をクリックします。OK ステップで、高リスクの操作を確認し、[作成] をクリックします。

  • 左側のナビゲーションウィンドウで、[自動タスク] > [タスク実行管理] を選択します。[タスク実行管理] ページで、作成した実行を見つけます。実行が「実行中」状態の場合、イメージの更新が進行中です。

  • 実行が成功状態になるまで待ちます。これは、イメージが更新されたことを示します。実行の詳細ページで新しいイメージの ID を確認できます。

  • イメージの更新プロセスを表示するには、作成した実行の [アクション] 列にある [詳細] をクリックします。[実行ログ] タブで、実行の進捗状況とステータスを確認できます。

付録 1: パブリック テンプレートとロジック

パブリック テンプレート ACS-ECS-UpdateImage には、次のコードが含まれています。

FormatVersion: OOS-2019-06-01
Description: Updates an existing ECS image via ECS Cloud Assistant then creates a
  ECS image.
Parameters:
  sourceImageId:
    Description: The image ID for the ECS instances, centos_6_10_64_20G_alibase_20190326.vhd,
      for example.
    Type: String
    AllowedPattern: '[A-Za-z0-9_\-\.]*'
    MinLength: 1
    MaxLength: 40
  instanceType:
    Description: The instance type for the ECS instances, ecs.g5.large, for example.
    Type: String
    AllowedPattern: ecs\.[A-Za-z0-9\.\-]*
    MinLength: 1
    MaxLength: 30
  securityGroupId:
    Description: The security group ID for the ECS instances, sg-xxxxxxxxxxxxxxxxxxxx,
      for example.
    Type: String
    AllowedPattern: sg-[A-Za-z0-9]*
    MinLength: 1
    MaxLength: 30
  vSwitchId:
    Description: The virtual switch ID for the ECS instances, vsw-xxxxxxxxxxxxxxxxxxxx,
      for example.
    Type: String
    AllowedPattern: vsw-[A-Za-z0-9]*
    MinLength: 1
    MaxLength: 30
  commandContent:
    Description: The content of command.
    Type: String
  commandType:
    Description: The type of command to run in ECS instance.
    Type: String
    AllowedValues:
    - RunBatScript
    - RunPowerShellScript
    - RunShellScript
    MinLength: 1
    MaxLength: 30
  targetImageName:
    Description: The name of image.
    Type: String
    AllowedPattern: '[A-Za-z0-9\-_]*'
    MinLength: 1
    MaxLength: 30
  OOSAssumeRole:
    Description: The RAM role to be assumed by OOS.
    Type: String
    Default: OOSServiceRole
RamRole: '{{ OOSAssumeRole }}'
Tasks:
- Name: checkNewImageName
  Action: ACS::CheckFor
  Description: Check image name is available.
  Properties:
    Service: ECS
    API: DescribeImages
    Parameters:
      ImageName: '{{ targetImageName }}'
    DesiredValues:
    - 0
    PropertySelector: TotalCount
- Name: runInstances
  Action: ACS::ECS::RunInstances
  Description: Create a ECS instance for the cloud assistant.
  Properties:
    imageId: '{{ sourceImageId }}'
    instanceType: '{{ instanceType }}'
    securityGroupId: '{{ securityGroupId }}'
    vSwitchId: '{{ vSwitchId }}'
  Outputs:
    instanceId:
      ValueSelector: instanceIds[0]
      Type: String
- Name: installCloudAssistant
  Action: ACS::ECS::InstallCloudAssistant
  Description: Install cloud assostant for ECS instance.
  OnError: deleteInstance
  Properties:
    instanceId: '{{ runInstances.instanceId }}'
- Name: runCommand
  Action: ACS::ECS::RunCommand
  Description: Run command on ECS instance.
  OnError: deleteInstance
  Properties:
    commandContent: '{{ commandContent }}'
    commandType: '{{ commandType }}'
    instanceId: '{{ runInstances.instanceId }}'
- Name: stopInstance
  Action: ACS::ECS::StopInstance
  Description: Stops the ECS instance by the instance ID.
  Properties:
    instanceId: '{{ runInstances.instanceId }}'
- Name: createImage
  Action: ACS::ECS::CreateImage
  Description: Create image with the specified image name and instance ID.
  OnError: deleteInstance
  Properties:
    imageName: '{{ targetImageName }}'
    instanceId: '{{ runInstances.instanceId }}'
  Outputs:
    imageId:
      ValueSelector: imageId
      Type: String
- Name: deleteInstance
  Action: ACS::ExecuteAPI
  Description: Deletes the ECS instance by the instance ID.
  Properties:
    Service: ECS
    API: DeleteInstance
    Risk: Normal
    Parameters:
      InstanceId: '{{ runInstances.instanceId }}'
      Force: true
Outputs:
  imageId:
    Type: String
    Value: '{{ createImage.imageId }}'        

テンプレートは、次のタスクを順番に実行します。

  1. 新しいイメージの名前が有効かどうかを確認します。

  2. 一時的な ECS インスタンスを作成して実行します。インスタンスは、指定したパラメーターに基づいて作成されます。これは、インスタンスで使用されるイメージが更新されるソースイメージであり、インスタンスの属性が指定されたパラメーターに基づいて定義されていることを示します。

  3. 一時的な ECS インスタンスに クラウドアシスタント クライアントがインストールされていない場合はインストールします。

  4. 一時的な ECS インスタンスでイメージ更新用の クラウドアシスタント コマンドを実行し、コマンドが実行されるまで待ちます。

  5. 一時的な ECS インスタンスを停止します。

  6. 一時的な ECS インスタンスのイメージを作成し、作成が完了するまで待ちます。

  7. 一時的な ECS インスタンスをリリースします。