AWS CodeDeploy
ユーザーガイド (API バージョン 2014-10-06)

CodeDeploy でデプロイグループのインスタンスにタグを付ける

Amazon EC2 インスタンスとオンプレミスインスタンスを管理するために、タグを使用して独自のメタデータを各リソースに割り当てることができます。タグを使用すると、インスタンスをさまざまな方法 (目的、所有者、環境など) で分類することができます。これはインスタンスが多数ある場合に便利です。割り当てられたタグに基づいて、インスタンスやインスタンスグループを迅速に識別できます。タグはそれぞれ、1 つのキーとオプションの 1 つの値で構成されており、どちらもお客様側が定義します。詳細については、「Amazon EC2 リソースにタグを付ける」を参照してください。

CodeDeploy デプロイグループに含めるインスタンスを指定するには、1 つ以上のタググループにタグを指定します。タグ条件を満たすインスタンスは、そのデプロイグループへのデプロイが作成されたときにアプリケーションの最新のリビジョンがインストール済みのものです。

注記

また、Amazon EC2 Auto Scaling グループをデプロイグループに含めることもできますが、これらはインスタンスに適用したタグではなく名前で識別されます。詳細については、CodeDeploy を Amazon EC2 Auto Scaling と統合する を参照してください。

デプロイグループのインスタンスの条件は、単一のタググループの単一のタグと同じほど簡単です。これは、最大 3 つのタググループそれぞれに 10 個のタグという複雑なものにもできます。

単一のタググループを使用する場合は、グループ内の少なくとも 1 つのタグによって識別されたインスタンスがデプロイグループに含まれます。複数のタググループを使用する場合は、タググループそれぞれの少なくとも 1 つのタグによって識別されたインスタンスのみが含まれます。

次の例は、タグとタググループを使用してデプロイグループのインスタンスを選択する方法を説明します。

例 1: 単一タググループ、単一タグ

単一のタグを単一のタググループに指定できます。

タググループ 1

キー
名前 AppVersion-ABC

Name=AppVersion-ABC というタグが付いている各インスタンスは、他のタグがついていても、デプロイグループの一部になります。

CodeDeploy コンソールのセットアップビュー:

JSON の構造:

"ec2TagFilters": [ { "Type": "KEY_AND_VALUE", "Key": "Name", "Value": "AppVersion-ABC" } ],

例 2: 単一タググループ、複数タグ

単一のタグを複数のタググループに指定することもできます。

タググループ 1

キー
リージョン North
リージョン South
リージョン East

この 3 つのタグのうちいずれかが付いているインスタンスは、他のタグがついていても、デプロイグループの一部になります。たとえば、Region=West というタグが付いている他のインスタンスがある場合、それらはデプロイグループに含まれません。

CodeDeploy コンソールのセットアップビュー:

JSON の構造:

"ec2TagFilters": [ { "Type": "KEY_AND_VALUE", "Key": "Region", "Value": "North" }, { "Type": "KEY_AND_VALUE", "Key": "Region", "Value": "South" }, { "Type": "KEY_AND_VALUE", "Key": "Region", "Value": "East" } ],

例 3: 複数タググループ、複数タグ

それぞれに単一のキーと値のペアを持つタググループの複数セットを使用して、デプロイグループのインスタンスの条件を指定することもできます。デプロイグループで複数のタググループを使用する場合は、すべてのタググループによって識別されたインスタンスのみがデプロイグループに含まれます。

タググループ 1

キー
名前 AppVersion-ABC

タググループ 2

キー
リージョン North

タググループ 3

キー
タイプ t2.medium

多くのリージョンにインスタンスがあり、Name=AppVersion-ABC のタグが付いたさまざまなインスタンスタイプがある場合があります。この例では、同じく Region=North および Type=t2.medium のタグが付いたインスタンスのみがデプロイグループの一部になります。

CodeDeploy コンソールのセットアップビュー:

JSON の構造:

"ec2TagSet": { "ec2TagSetList": [ [ { "Type": "KEY_AND_VALUE", "Key": "Name", "Value": "AppVersion-ABC" } ], [ { "Type": "KEY_AND_VALUE", "Key": "Region", "Value": "North" } ], [ { "Type": "KEY_AND_VALUE", "Key": "Type", "Value": "t2.medium" } ], ] },

例 4: 複数タググループ、複数タグ

複数のタグを持つ複数のタググループを 1 つ以上のグループで使用する場合、インスタンスはそれぞれのグループの少なくとも 1 つのタグに一致している必要があります。​​

タググループ 1

キー
環境 ベータ
環境 ステージング

タググループ 2

キー
リージョン North
リージョン South
リージョン East

タググループ 3

キー
タイプ t2.medium
タイプ t2.large

この例では、デプロイグループに含まれるには、インスタンスが次のようにタグ付けされている必要があります。(1) Environment=Beta または Environment=Staging、(2) Region=NorthRegion=South または Region=East、(3) Type=t2.medium または Type=t2.large

たとえば、次のタググループを持つインスタンスは、デプロイグループに含まれるもののひとつになることがあります

  • Environment=BetaRegion=NorthType=t2.medium

  • Environment=StagingRegion=EastType=t2.large

  • Environment=StagingRegion=SouthType=t2.large

次のタググループを持つインスタンスは、デプロイグループに含まれないことがあります。強調表示されたキー値があると、インスタンスは除外されます。

  • Environment=BetaRegion=WestType=t2.medium

  • Environment=StagingRegion=EastType=t2.micro

  • Environment=ProductionRegion=SouthType=t2.large

CodeDeploy コンソールのセットアップビュー:

JSON の構造:

"ec2TagSet": { "ec2TagSetList": [ [ { "Type": "KEY_AND_VALUE", "Key": "Environment", "Value": "Beta" }, { "Type": "KEY_AND_VALUE", "Key": "Environment", "Value": "Staging" } ], [ { "Type": "KEY_AND_VALUE", "Key": "Region", "Value": "North" }, { "Type": "KEY_AND_VALUE", "Key": "Region", "Value": "South" }, { "Type": "KEY_AND_VALUE", "Key": "Region", "Value": "East" } ], [ { "Type": "KEY_AND_VALUE", "Key": "Type", "Value": "t2.medium" }, { "Type": "KEY_AND_VALUE", "Key": "Type", "Value": "t2.large" } ], ] },