インフラコストは、DevOps、SRE、およびTerraformなどのInfrastructure-as-Codeプロジェクトのクラウドコストを見積もる開発者にとって重要です。 Infracostを使用すると、さまざまなオプションを比較しながらコストの内訳をすばやく確認できます。これにより、大きな決定を下す前に、より良い洞察を得ることができます。
インフラコストはどのように機能しますか?
Infracostは、Terraformコードをスキャンすることで3万を超える価格をチェックでき、リソースを起動する前に、シンプルで読みやすいコスト見積もりを生成します。
インフラコストを使用して、プルリクエストのリソースにコストをマッピングするため、コストに最も大きな影響を与えるコード行を知ることもできます。 InfracostをCI/CDに統合することで、チームと協力して、既存のワークフローの変更の影響について話し合うことができます。
InfracostはCloudPricingAPIバックエンドサービスを介して機能し、CLIツールを使用してTerraformプランをJSON形式で解析できます。 APIは、使用中の各クラウドリソースの個々のコストと、クラウドプロバイダーに基づく関連するコストパラメーターを相互参照します。
プログラムは動作するためにクレデンシャルを必要とせず、Terraformまたは分析されたクラウドリソースに変更を加えることはありません。 APIは、Terraformリソースタイプのカウントを使用することにより、新しいリソースが確実に考慮されるようにします。
インフラコストがコストの内訳を示す主な方法はXNUMXつあります。
A)コストの完全な内訳
B)現在の状態と計画された状態の間の月額費用の違い
インフラコスト入門(ステップバイステップ)
このステップバイステップガイドに従って、インフラコストをインストールして使用を開始します。
1.インフラコストをインストールします
開始するための最初のステップはインフラコストをインストールすることですが、最初にすでに持っている必要があります テラフォーム インストールされています。
インフラコストのさまざまなバージョンを見てみましょう。
macOS自作:
醸造インストールインフラコスト
infracost –version#v0.9.7を表示する必要があります
macOSマニュアル:
#OS / archに基づいてCLIをダウンロードし、/ usr / local/binに配置します
curl -fsSL https://raw.githubusercontent.com/infracost/infracost/master/scripts/install.sh | し
Linux:
#OS / archに基づいてCLIをダウンロードし、/ usr / local/binに配置します
curl -fsSL https://raw.githubusercontent.com/infracost/infracost/master/scripts/install.sh | し
ドッカー:
Dockerプルインフラコスト/インフラコスト
docker run –rm \
-e INFRACOST_API_KEY = see_following_step_on_how_to_get_this \
-e AWS_ACCESS_KEY_ID = $ AWS_ACCESS_KEY_ID \
-e AWS_SECRET_ACCESS_KEY = $ AWS_SECRET_ACCESS_KEY \
-v $ PWD /:/ code /インフラコスト/インフラコストの内訳–パス/ code /
#InfracostまたはTerraformに必要な他のフラグ/環境を追加します
#たとえば、AWSのassume-roleを使用している場合、これらが必要になることがあります。
#-e AWS_SESSION_TOKEN = $ AWS_SESSION_TOKEN \
#-e AWS_REGION = $ AWS_REGION \
Windows:
ダウンロードして解凍します 最新のリリース。 コマンドプロンプトまたはPowershellからを使用して実行します .\infracost.exe --no-color
他の必要なコマンド/フラグと一緒に(カラー出力には、Windowsで修正する必要のあるバグがあります)。 また、exeファイルを自分の中にあるフォルダに移動する必要があります PATH
環境変数、例えば C:\Windows
.
2.APIキーを取得します
次のステップは、無料のAPIキーを登録することです。これは、CLIがインスタンスタイプの価格の取得などのタスクについてCloudPricingAPIにクエリを実行するために使用します。
すべてのオペレーティングシステム:
インフラコストレジスタ
キーはに保存されます ~/.config/infracost/credentials.yml
.
3.インフラコストを実行します
これで、Terraformの状態やクラウドリソースに変更を加えないInfracostを実行する準備が整いました。 提供されているTerraformプロジェクトで実行して、テストすることができます。
すべてのオペレーティングシステム:
git クローン https://github.com/infracost/example-terraform.git
cdの例-terraform/sample1
#main.tfで遊んで、再実行してコストを比較します
インフラコストの内訳–パス。
#月額費用の差分を表示し、ymlファイルを編集して再実行し、費用を比較します
インフラコストの差分–パス。 –sync-usage-file –usage-file infracost-usage.yml
4. CI/CDに追加します
これで、インフラコストを使用できます CI/CD統合 コスト見積もりの差分を示すプルリクエストコメントを自動的に追加します。 これにより、セーフティネットも提供され、チームはワークフローの一部として変更のコストへの影響について話し合うことができます。
使用法
infracost
CLIには次の主なコマンドがあります。
breakdown
:コストの完全な内訳を表示diff
:現在の状態と計画された状態の間の月額費用の差分を表示
リポジトリに複数のTerraformプロジェクトまたはワークスペースがある場合は、インフラコスト構成ファイルを使用してください。 それらの結果は、同じ内訳または差分出力に結合されます。
高度な使用法
インフラコストには、通常の使用方法に加えて使用できるさまざまな高度な使用方法もあります。 これらの高度な方法は、インフラコスト構成ファイルを介して使用することもできます。
Terraform計画ファイル
インフラコストはTerraformプランファイルに対して実行できます。これは、Terraformをすでに実行していることを意味します。 init.
インフラコストはTerraformを実行するだけですshow
この場合、クラウドのクレデンシャルや --terraform-plan-flags
設定します。
cdパス/宛先/コード
テラフォーム初期化
テラフォームプラン-outtfplan.binary
インフラコストの内訳–パスtfplan.binary
インフラコストの差分–パスtfplan.binary
テラフォーム州
現在のTerraformの状態のコストの内訳を確認したい場合は、 infracost breakdown
コマンドには --terraform-use-state
この場合に役立つフラグ。 すでにTerraformを実行している必要があります apply
、したがって、インフラコストはTerraformを実行するだけです show
、クラウドクレデンシャルまたは --terraform-plan-flags
設定します。
インフラコストの内訳–パスの例/ terraform –terraform-use-state
Terraform状態のJSONファイル
あなたは infracost breakdown
Terraform状態のJSONファイルに対して。 これは、内部JSON表現ではなく、状態の[JSON出力形式]になります。 実行して生成する必要があります terraform show -json
Terraformプロジェクト内で、現在のTerraform状態のコスト内訳を確認したい場合に特に便利です。 この場合、Terraformをすでに実行していることを意味します apply
、クラウドクレデンシャルがないことを意味します --terraform-plan-flags
必要とされます。
どのクラウドとリソースがサポートされていますか?
インフラコストは以上をサポートします 200のTerraformリソース AWS、Google、Azure全体で、他のIaCツールは プルミ & クラウドフォーメーション ロードマップに含まれています。 新しいリソースのサポートは絶えず追加されているため、リリースのリポジトリを確認することが重要です。
まとめ
インフラコストは役に立ちます 開発者向けのツール、DevOps、SREなど、コストの内訳をすばやく確認し、さまざまなオプションを事前に比較したいと考えています。 CIとの統合を検討している場合や、AWSとGoogle Cloudのサポートが必要な場合にも、これは良い選択です。 チーム間のコラボレーションを強化したい場合は、インフラコストもその点で役立ちます。 これらのすべての機能により、Terraformのクラウドコスト見積もりの実装を強く検討する必要があるツールになります。
コメントを残す