Infrastructure as Code (IaC) に注意を払わないと、失敗します。

Infrastructure as Code (IaC) に注意を払わないと、失敗します。

[[406325]]

これまで、IT インフラストラクチャの管理は困難な作業でした。システム管理者は、アプリケーションの実行に必要なすべてのハードウェアとソフトウェアを手動で管理および構成する必要があります。

しかし、近年、状況は劇的に変化しました。クラウド コンピューティングなどのトレンドにより、組織が IT インフラストラクチャを設計、開発、保守する方法に革命が起こり、改善されました。

このトレンドの重要な要素の 1 つは、Infrastructure as Code (IaC) と呼ばれ、今日はこれについてお話します。

Palo Alto Networks の Prisma クラウド担当シニア バイスプレジデントである Varun Badhwar 氏によると、Infrastructure as Code はクラウド セキュリティの 3 つの柱の 1 つになりつつあり、DevOps とセキュリティを組み合わせて DevSecOps 市場を推進しています。

インフラストラクチャ・アズ・コード (IaC) の定義

Wikipedia では、インフラストラクチャをコードとして次のように定義しています。

  • Infrastructure as Code は、物理的なハードウェア構成や対話型構成ツールではなく、機械が読み取り可能な定義ファイルを通じてコン​​ピューティング データ センターを管理および構成するプロセスです。

簡単に言えば、コードとしてのインフラストラクチャとは、構成ファイルを使用して IT インフラストラクチャを管理することを意味します。

次に、「なぜこれをやっているのか?」と疑問に思うかもしれません。さて、Infrastructure as Code はどのような問題を解決するのでしょうか?

IT インフラストラクチャ管理の問題点

IT インフラストラクチャの管理は長い間、手動のプロセスでした。人々は物理的にサーバーを設置し、構成します。これらの担当者は、オペレーティング システムとアプリケーションに必要な正しい設定でマシンが構成された後にのみ、アプリケーションを展開します。当然のことながら、この手動プロセスは多くの問題を引き起こすことがよくあります。

最初の大きな問題はコストです。ネットワーク エンジニアからハードウェア メンテナンス技術者まで、プロセスの各ステップで必要なタスクを実行するには、多数の専門家を雇う必要があります。当然のことながら、これらの人全員に給与を支払い、管理する必要があり、その結果、管理コストが増加し、組織内の内部コミュニケーションの複雑さが増します。その結果、資金は投入されたものの、会社は独自のデータセンターを構築して維持することができず、コストが数桁も増加しました。

もう一つの大きな問題は、スケーラビリティと可用性です。これはすべて「速度」の問題に起因すると考えられます。手動構成は時間がかかりすぎるため、アプリケーションのトラフィックが急増することが多く、システム管理者は負荷を管理するために必死にサーバーをセットアップしようとしていました。これは必然的にユーザビリティに影響を及ぼします。組織にバックアップ サーバーやデータ センターがない場合、アプリケーションが長期間使用できなくなる可能性があります。

3 番目の大きな問題は、監視とパフォーマンスの可視性です。インフラストラクチャがすべて揃ったら、それが最適に動作していることを確認するためにどのように監視しますか?問題が発生した場合、インフラストラクチャのどこで問題が発生しているかをどのように特定しますか?それはネットワーク、サーバー、それともアプリケーションでしょうか? Netreo のようなツールを使用すると、IT インフラストラクチャ全体のパフォーマンスを包括的に把握できます。 Netreo の自動デバイス検出および構成により、環境内に死角がないことを確認でき、プラットフォームのトポロジ マッピング、イベント相関、および自動化された根本原因分析により、問題が発生している場所を正確に特定できます。

最後の問題は矛盾です。複数の人が手動で構成を展開する責任がある場合、不整合は避けられない問題になります。

クラウドコンピューティング:その解毒剤?

クラウド コンピューティングは、データ センターの構築と維持の必要性とそれに伴う高額なコストを排除することで、上記の問題の一部を解決するのに役立ちます。

しかし、クラウド コンピューティングは万能薬からは程遠いものです。インフラストラクチャのニーズを迅速に設定できるため、高可用性やスケーラビリティなどの深刻な問題を解決できますが、不整合に対処することはできません。複数の人が設定を実行すると、必ず違いが生じます。

コードとしてのインフラストラクチャは、パズルの欠けているピースです。

先ほど説明した Infrastructure as Code の定義をもう一度見てみましょう。Infrastructure as Code とは、構成ファイルを使用して IT インフラストラクチャを管理することを意味します。

この定義から得られる重要なポイントは次のとおりです。インフラストラクチャがコードになる前は、IT スタッフはインフラストラクチャを管理するために手動で構成を変更する必要がありました。インフラストラクチャをコードとして使用すると、インフラストラクチャの構成はコード ファイルの形式になります。テキストだけなので、簡単に編集、コピー、配布できます。他のソース コード ファイルと同様に、ソース管理下に置くことができます (また、そうすべきです)。

インフラストラクチャ・アズ・コードの利点

先ほど、クラウド コンピューティングではこれらの問題の一部しか解決できず、すべてを解決できるわけではないと述べました。コードとしてのインフラストラクチャは、パズルの最後の欠けているピースです。

次に、Infrastructure as a Service ソリューションを導入することで組織が得られるメリットについて詳しく説明します。

スピード

Infrastructure as Code が提供する大きな利点の 1 つは速度です。スクリプトを実行することで、完全なインフラストラクチャを迅速にセットアップできます。開発、本番、ステージング、QA など、あらゆる環境でこれを実行できます。 Infrastructure as Code を使用すると、ソフトウェア開発ライフサイクル全体をより効率的にすることができます。

一貫性

人間の記憶は誤りやすく、人間は間違いを犯すため、手動のプロセスではエラーが発生する可能性があります。さらに、コミュニケーションも問題であり、私たちは通常、コミュニケーションがあまり得意ではありません。前述のように、インフラストラクチャを手動で管理すると、どれだけ努力しても矛盾が生じてしまいます。 Infrastructure as Code は、構成ファイル自体を唯一の真実のソースにすることでこの問題を解決します。こうすることで、矛盾なく同じ構成を繰り返し展開できることが保証されます。

説明責任

これは早くて簡単な方法です。インフラストラクチャ アズ コード構成ファイルは、他のソース コード ファイルと同様にバージョン管理できるため、各構成に加えられた変更を完全に追跡できます。もはや、「誰が何をいつ行ったか」を推測するゲームではありません。

高効率

インフラストラクチャをコードとして使用することで、インフラストラクチャを複数の段階でデプロイできます。これにより、ソフトウェア開発ライフサイクル全体の効率が向上し、チームの生産性が新たなレベルに到達します。

プログラマーがインフラストラクチャをコードとして使用してサンドボックス環境を作成および起動できるようにすることで、分離した状態で安全に開発できるようになります。同じことは QA プロフェッショナルにも当てはまり、実稼働環境の完全なコピーを持ち、その中でテストを実行できます。最後に、デプロイメント フェーズに進み、インフラストラクチャとコードを 1 つのステップで本番環境にプッシュします。

低コスト

疑いなく、コードとしてのインフラストラクチャの主な利点の 1 つは、インフラストラクチャ管理のコストの削減です。クラウド コンピューティングとインフラストラクチャをコードとして組み合わせることで、ハードウェアにお金をかけたり、ハードウェアを操作する人を雇ったり、ハードウェアを保管するための物理的なスペースを構築またはレンタルしたりする必要がなくなるため、コストを大幅に削減できます。

さらに、インフラストラクチャ・アズ・コードは、別のより微妙な方法でもコストを削減します。これを「機会費用」と呼びます。

ご存知のとおり、有能な人材を適切なポジションに配置することで、その効果を最大限に高めることができます。自動化できるタスクだけを依頼すると、間違いなくリソースの無駄になります。企業組織にさらなる価値をもたらすタスクに重点を置く必要があります。ここで、コードとしてのインフラストラクチャが含まれる自動化戦略が役に立ちます。

インフラストラクチャ・アズ・コードの仕組み

Infrastructure as Code ツールはさまざまな方法で動作しますが、一般的には「リソース構成への命令型アプローチ」に従うツールと「リソース構成への宣言型アプローチ」に従うツールの 2 つの主なタイプに分類できます。

このうち、命令型リソース構成方式とは、リソースユーザーが要求された状態を正式にエンコードせず、リソースユーザーがコマンドシーケンスを決定する方式を指します。

最も注目すべきは、命令型のアプローチは繰り返し実行できず、したがって自動化できないことです。これは、リソースの消費者が、現在の各状態に対して目的の状態につながるコマンドのシーケンスを決定する必要があるためです。

宣言型のリソース構成アプローチでは、リソース ユーザーが目的の状態を正式にエンコードし、コンポーネントがコマンドのシーケンスを決定します。

最も注目すべきは、宣言型アプローチは繰り返し実行可能であり、したがって自動化に適していることです。これは、コンポーネントが現在の状態から目的の状態に至る可能性のあるコマンドのシーケンスを決定できるためです。

ベストプラクティス

以下に、インフラストラクチャをコードとして活用する戦略を最大限に活用するためのベスト プラクティスのリストを示します。

  • コードを唯一の真実のソースにします。すべてのインフラストラクチャ仕様を構成ファイルに明示的にエンコードする必要があります。構成ファイルは、すべてのインフラストラクチャ管理の問題に関する唯一の真実の情報源である必要があります。
  • すべての構成ファイルをバージョン管理し、すべての構成ファイルをソース コード管理下に置きます。
  • インフラストラクチャの仕様については、ドキュメントをできるだけ少なく(またはまったく使用しない)します。この点は最初の点の論理的な帰結です。構成ファイルは唯一の信頼できる情報源であるため、これ以上のドキュメントは必要ありません。外部ドキュメントが実際の構成と同期しなくなることはよくありますが、構成ファイルではそのようなことは起こりません。
  • 構成をテストして監視します。 Infrastructure as Code はコードであり、すべてのコードと同様にテストできます。だからテストしてみるべきです!インフラストラクチャのコードとしてテストおよび監視ツールを使用することで、サーバーを本番環境に展開する前に、サーバーのバグや不整合をチェックできます。

コードとしてのインフラストラクチャの自動構成およびオーケストレーション ツール

現在、市場にはインフラストラクチャ・アズ・コード自動デプロイメント ツールが数多く存在します。ここでは、次の 4 つの自動構成およびオーケストレーション ツールに焦点を当てます。

Alibaba Cloud リソースオーケストレーションサービス ROS

これはクラウドネイティブのオーケストレーション ツールです。 JSON/YAML 形式のテンプレートを記述することで、ECS インスタンスやデータベース インスタンスなどの必要なクラウド サービス リソースとリソースの依存関係がテンプレートに定義されます。次に、テンプレートに基づいて ROS にリソース スタックが作成されます。 ROS サーバーはテンプレートに基づいてすべてのリソースの作成と構成を自動的に完了し、自動化された展開と運用および保守を実現します。リソース スタックは、テンプレートで定義されているすべてのリソースを管理し、リソースの追加、更新、削除など、新しいテンプレートを通じて更新できます。

AWS クラウドフォーメーション

これもクラウドネイティブのオーケストレーション ツールです。運用および保守担当者は、JSON/YAML 形式のテンプレートを使用してクラウド サービスのリソースを定義し、リソース スタックを通じてこれらのリソースを管理します。

ハシコープテラフォーム

これはオープンソースの自動化オーケストレーション ツールです。構成ファイルに基づいて、管理対象のコンポーネント、つまりインフラストラクチャ リソースをファイル内に定義して実行可能なプランを生成し、このプランを実行して、定義されたコンポーネントの作成、増分変更、および継続的な管理を完了できます。実行できない場合はエラーメッセージが表示されます。 Terraform は、コンピューティング インスタンス、ネットワーク インスタンス、ストレージ インスタンスなどの IaaS レイヤー リソースを管理できるだけでなく、DNS ドメイン名や解決レコード、SaaS アプリケーション機能などの高レベルのサービスも管理できます。

プルミ

Terraform と同様に、これもオープンソース プロジェクトですが、Terraform との重要な違いは、クラウド サービス プロバイダー固有のテンプレート言語を学習して構成を記述する必要なく、使い慣れたプログラミング言語を使用して宣言型の構成を記述できることです。

企業組織は、独自のニーズとビジネス展開モデルに基づいて適切なツールを選択し、コードとしてのインフラストラクチャの役割をより適切に果たすことができます。

要約する

コードとしてのインフラストラクチャは、DevOps 運動の重要な部分です。クラウド コンピューティングを、手動の IT 管理によって生じる多くの問題を解決するための最初のステップと考えると、インフラストラクチャ アズ コードは次の論理的なステップであると言えます。これにより、クラウド コンピューティングの潜在能力が最大限に発揮され、開発者やその他の専門家がエラーが発生しやすい手作業のタスクを実行する必要がなくなります。さらに、ソフトウェア開発ライフサイクルのすべての段階でコストが削減され、効率が向上します。

Infrastructure as Code とは何ですか?どのように機能しますか?ベストプラクティスのチュートリアル

<<:  オンプレミスからクラウドへ: エンタープライズ近代化の 3 つのフェーズ

>>:  Tmall 618が初めて「グリーンGMV」に言及:注文ごとに前年比17.6%の炭素排出量を削減

推薦する

ユーザーの行動とソーシャルメディアがSEOVIPの現在のランキングに影響を与えている

seovipの件は、常にSEO実務者の注目を集めてきました。20日間で1ページを使ってBaiduのホ...

Baidu K-station後のトラフィック回復方法と戦略

1. 観察:長期にわたる観察から、百度に追い出されたサイトの多くは法を遵守した合法的なウェブサイトで...

百度の外部リンクツールを使って百万ボリュームサイトのリンク戦略を解読する

SEO業界には昔から伝説が溢れています。近年、膨大なトラフィックを誇る多数のウェブサイトが絶えず私た...

SAP、2022年第3四半期の業績を発表

クラウドビジネスの成長は加速し続けており、特に中国市場は好調である。クラウド収益は38%と25%増加...

製品の商業運営に関して、ユーザー エクスペリエンスをより深く理解しているのは、Baidu と 360 のどちらでしょうか?

2010年に工業情報化部を驚かせた3Q戦争から、2012年の検索エンジン業界での3B対決まで、360...

SEOブログの収益モデルは心配、自己娯楽が主流になる可能性

実は、SEOブログは市場の再編に直面し始めています。多くのSEOブログはすでに閉鎖のジレンマに直面し...

東アジアで唯一のガートナークラウドMSPリーダーであるベスピン・グローバルは、そのハードパワーによってリーダーシップが決定づけられている。

過去10年間で、クラウドコンピューティングは世界中のあらゆる分野で広く使用されるようになり、企業のク...

O2O: 過去10年間のRedbabyの垂直型eコマースの次のホットスポット

黄建明Redbaby は 2004 年から現在まで 10 年間、垂直型電子商取引企業として活動してき...

IBMは、現在の関連製品を上回ると言われる新しいチップを発売した。

長い間沈黙していたIBMも、ついに黙っていられなくなった。 IBM は AI の波が押し寄せる中、現...

実用的なヒント | 外国貿易ウェブサイトの SEO 最適化プラン

プラットフォームであろうと対外貿易ウェブサイトであろうと、対外貿易であろうと国内販売であろうと、避け...

ソフトコンテンツマーケティングの一貫性についての簡単な議論

ソフトテキスト マーケティングについては、皆さんもよくご存知だと思います。ソフトテキストの役割につい...

2012年にSEO業界に参入する新しいウェブマスターへのアドバイス

SEOは広く奥深い業界です。SEO業界では「外部リンクは王、コンテンツは皇帝」という格言がありますが...

ウェブサイトの最適化で遭遇するいくつかの問題の分析と調査

ウェブサイトの最適化は、もはや私たちウェブマスターにとってホットな話題ではありません。私たちは毎日、...

1か月でトラフィックが2倍に

著者は、共有するための最良の方法は、自分の実践的な経験を共有し、データを提示し、操作方法を説明するこ...

ウェブサイトのランディングページを最適化する際に注意すべきこと

ランディング ページとは、広告や検索エンジンの自然なランキングを通じて Web サイトにアクセスした...