AWSは、顧客のAWSへの移行を可能な限り円滑に進めるために、Migration Acceleration Program (MAP)を設計した。AWSのMAPプログラムでは、顧客はMAP AssessフェーズでTCO(Total Cost of Ownership)で計算されたARR(Annual Recurring Revenue)に基づき、下図のように一定の割合のクレジットとパートナーキャッシュを得ることができる。
Assessフェーズを通過すると、マイグレーションプロジェクトが開始され、AWSはこのMAPプロジェクトの一部である新しく起動されたすべてのリソースに適用されたCost Usage Tagを使用して支出を監視します。MAP タグは、Key: map-migrated Value: mig123456 という形式です。マイグレーション中の顧客は、AWS が設定する特定の使用量のしきい値に基づいて、クレジットとパートナ ーキャッシュを受け取る。AWSは、AWSのメカニズムを使用して、コスト使用タグ'map-migrated'を監視する。したがって、適切なタグ付けはMAPプロジェクトを成功させるためのバックボーンである。もし顧客が特定のリソースのタグを逃すと、クレジットやパートナーキャッシュも逃すことになる。
我々DoiTは、AWS認定MAPパートナーとして、顧客がこのMAPプログラムのメリットを100%享受するために、すべてのリソースにMAPタグを適用することを確認したいと考えている。DoiTはCloudFlowという製品を持っており、これはDoiT Cloud Intelligence FinOpsプラットフォームの一部であり、顧客がマイグレーションを開始する際に適切なタグ付けを実現するのに役立つ。
この記事では、EC2とRDSインスタンスのタグ付けを自動化する方法を紹介する。
前提条件
- 管理者アクセスを持つAWSアカウント
- EC2インスタンスが本日ローンチされた(※これはデモなので、コストを避けるために最小のインスタンスをローンチしてください)。
- AWS CloudShellへのアクセス
1) DoiT CloudFlowに移動します:
2) Create CloudFlowをクリックします:
DoiTロゴの左上のテキストバーをクリックするだけで、CloudFlowに名前を付けることができます。CloudFlowには以下の2つのトリガー方法があります。このデモではManual Triggerを使用します:
手動トリガー:これを使用すると、CloudFlow Template on Demandを実行するタイミングを制御できます。
カスタムスケジュール:このCloudFlowを必要に応じて毎日、毎週、毎月実行するようにスケジュールできます。これはCron Jobの概念と同じです。
3) アクションを実行する:
ここで使用するロジックは、最近起動したすべてのEC2インスタンスを検索することだ。これを行うには、"Perform an action "オプションをクリックする。
DescribeInstances EC2 Action API Callを検索する。他のリソースではなく、EC2を選択していることを確認する。

DescribeInstancesボックスをクリックすると、設定メニューが開き、AWSアカウント番号とリージョンを選択する必要がある。インフラストラクチャの広い範囲に適用したい場合は、ドロップダウンに "All accounts" と "All regions" のオプションが用意されている。
いよいよパーミッションを設定します。CloudFlowはビルドのcliコマンドで非常に細かいパーミッションを提供するので、CloudFlowが持つリソースアクセスについて心配する必要はありません。
permissionタブで "Check for required permissions "をクリックすると、CloudFlowは "doitintl-cmp "という名前のロールを使用します(このロールはAWSアカウントをCloudFlowにアタッチするときに作成されます。)CloudFlowは、そのAPIコールを実行するために必要な権限をチェックし、それが利用できない場合、あなたのためにAWS cliコマンドを作成します。
このコマンドをコピーしてAWS CloudShellで実行すると、ほら -- IAMコンソールにアクセスして正しいjsonパーミッションやサービスなどを調べようとしなくても、必要なパーミッションが簡単に手に入る。コマンドを実行し、再度check permissionsをクリックすると、"All permissions are in place to run this action "というメッセージが表示される。
4) 今日の日付以降にローンチされたEC2を除外する:
今日の日付以降に起動されたEC2を除外する必要がある。AWS MAPのクレジットは遡及しないので、要するに、AWS MAP Opportunityの承認日以前に起動したAWSリソースはクレジットを取得できない。以下は、今日の日付以降に起動されたEC2を除外する方法です。Add additional parameters "をクリックし、"Filters "を選択する。
Add additional Filters 1 parameters "をクリックし、"Values "と "Name "を選択する。
名前フィールドに "launch-time "を追加し、今日の日付のワイルドカード "2025-03-12T*"を追加する。
5) マップ移行されたタグを作成する:
次に、ワークフローに戻って新しいステップを作成し、もう一度「Perform an new action」を選択し、AWS EC2の「Create Tags」を検索する。
タグの作成を選択した後、フィルターとしてInstanceIDを選択し、タグのリストで識別子としてKeyとValueの両方を選択する。
キーは最も重要な部分であり、一意であり、大文字と小文字を区別します。間違いやタイプミスがないことを確認してください。そうでなければ、AWSはタグの消費を確認することができず、今期のクレジットがゼロになってしまいます。
ここでは、キーは'mig1234'、値は'map-migrated'とする。
6) RDSインスタンスにタグを付ける
EC2 MAPワークロードのタグ付けに加えて、RDSワークロードにも同様の手順を作成できる。これを行うには、新しく起動したRDSインスタンスをフィルタリングするための「DescribeDBInstances」APIコールを使用する必要がある。
次に、新しいステップを作成し、今度は「Filter results」を選択する。
ステップを構成するには、データソース(前のステップの「DescribeDBInstances」)を選択し、MAP機会が承認された後(仮に3月17日午前9時)に作成されたものに対するフィルタを追加する必要があります。
これで完了です。あとは新しく作成したタグをRDSインスタンスに追加し、CloudFlowを実行するだけです。ワークフローに戻り、最後のAPIコールを追加します。今回はAmazon RDS用の'AddTagsToResource'という名前です。
このステップを設定するには、リソース名として前のフィルターステップの文字列を選択し、EC2インスタンス用に前のものと一致する別のキーとタグを追加する。
それが完了したら、CloudFlowを実行するためにPublishをクリックするだけだ。今日起動したEC2とRDSインスタンス、および今日以降に起動する他のワークロードにタグが追加されるのを確認できる。今日の日付以降にすべてのEC2とRDSインスタンスにマップマイグレーションされたタグが付けられるようにするには、CloudFlowを毎日実行するようにスケジュールすることもできる。
DoiT CloudFlowの詳細と、クラウド削減の提案を実際の成果につなげる方法については、今すぐDoiTの専門家にお問い合わせください。