PR

Terraformで特定のリソースを指定して適用する!柔軟にデプロイできる方法を紹介

AWS
記事内に広告が含まれています。
この記事でわかること
  • Terraformで特定のリソースを指定してデプロイする方法
  • 特定のリソースを指定してデプロイする際の注意点

Terraformは一度コードを記述することで、複数の環境に同じ設定のインフラをコピーして構築できるので便利です。

一方で、Terraformを介さずに手動でデプロイしたリソースがあると、予期せぬリソースが適用されてしまい困ります。

そこでこの記事では、Terraformを利用して、指定した特定のリソースだけをデプロイする方法を紹介します。

適用するリソースをコントロールできるようになることで、Terraformでのリソース適用が柔軟に行えるようになります。

ぜひ最後までご覧ください。

Terraformで適用リソースを指定する方法

Terraformで適用するリソースを指定するには、Terraformが標準で提供している「-target」オプションを利用します。「-target」オプションすることで、指定したリソースのみをデプロイすることができます。

terraform plan コマンドの実行方法

「module.example_lambda」というリソースのみを適用したい場合、どのような変更が行われるかを確認します。 確認するときのコマンドはこちらです。

terraform plan -target=module.example_lambda

上のコマンドを実行することで、「module.example_lambda」というリソースに対しての変更内容が確認できます。

terraform apply コマンドの実行方法

上で実行した変更内容で問題なければ、リソースを適用するapplyコマンドを実行します。
applyコマンドでもplanと同様に「-target」オプションを指定することに注意ください。

terraform apply -target=module.example_lambda

上のコマンドを実行することで、「module.example_lambda」というリソースのみ適用されます。

複数のリソースを対象にする場合

「-target」コマンドは、複数のリソースに対しても利用できます。 その場合、適用したいリソースの数分、「-target=対象リソース」を記述します。

terraform apply -target=module.example_lambda1 -target=module.example_lambda2 ・・・

そのほかのオプションなどは、Terraformの公式サイトを参照ください。

Terraformで指定リソースのみ適用するときの注意点

「-targetオプション」で、指定したリソースのみ適用する場合、いくつか注意点があります。

  1. 依存関係の問題
    「-targetオプション」を使用することで依存関係が無視される場合があります。
    特定のリソースのみを操作すると、他の依存するリソースに影響を与える可能性があります。
  2. 一貫性保持
    一部のリソースのみを適用することで、全体の状態が一貫しなくなる可能性があります。
    特に本番環境で使用する場合は、慎重に使用する必要があります。

指定したリソースを適用する全体の流れ

全体のコマンドの流れはこちらのようになります。 以下のコマンドを順番に実行することで、特定のリソースやモジュールに対して計画と適用を行うことができます。

terraform init
terraform plan -target=module.example_lambda
terraform apply -target=module.example_lambda

これにより、module.example_lambda の変更を計画し、その変更のみを適用することが可能です。

まとめ

  • Terraformで特定のリソースのみ適用するには「-target」オプションを使う
  • 複数のリソースを指定する場合「-target」オプションをリソース数分記述する
  • 特定リソースのみ適用する場合、対象リソースの依存関係も正しく適用されているか確認する

「-targetオプション」を使用することで、特定のリソースやモジュールに対してのみ変更を計画・適用することができます。

予期せぬ変更を適用したくない場合など、「-target」オプションを利用して、特定リソースのみデプロイすると有効です。

ぜひ利用してみてください。

本記事が皆様の参考になれば幸いです。

関連記事:VSCodeでWBSを書く!PlantUMLを使った書き方を紹介!

コメント

タイトルとURLをコピーしました