※ 本記事は、Gursewak Sokhiによる”Simplify the automation of Oracle Linux deployments with Terraform on OCI“を翻訳したものです。

2023年2月28日


企業がDevOpsとクラウド・ネイティブ・テクノロジーを使用して生産性とパフォーマンスを向上させるにつれて、ITインフラストラクチャがシームレスに管理されていると考えるのは簡単です。しかし、多くの開発者は、エンタープライズ環境全体で何千ものプロセスを手作業で管理しています。Hashicorpによって作成されたオープン・ソースのinfrastructure-as-codeツールであるTerraformは、DevOpsチームがクラウド・プラットフォームでリソースを作成、プロビジョニングおよび変更できるようにすることで、この問題を解決するのに役立ちます。開発者と運用チームは、どちらもTerraformを簡単に適用して、人間が読める構成ファイルを通じてリソースを定義し、数分でデプロイできます。

Oracle Cloud Infrastructure(OCI)では、Terraformを使用してインフラストラクチャ全体をレイアウトし、効率を最大化できます。OCIの顧客は、Oracle Cloudコンソールを手動で使用するのではなく、Terraformを使用してコンピュート・インスタンスまたはデータベース・システムの作成を自動化できます。1つまたは2つのシステムのみを処理する場合、コンソールを使用してこれらのタスクを実行することはあまり複雑ではない場合がありますが、100を超えるシステムを管理するようにスケール・アップするため、コンソールのみに依存してコンピュート・インスタンスを作成すると、ワークフローのペースが大幅に低下する可能性があります。

Terraformを使用してこれらのタスクを自動化することで、プロセスを合理化し、効率を高めることができます。Terraformは、プロセスの自動化に役立ちます。このブログは、OCIにOracle Linuxインスタンスをデプロイするための高レベルのTerraformワークフローを紹介し、自動化に関して、単純なTerraformとその宣言言語について説明します。

なぜOCIでOracle Linuxなのでしょうか? Oracle Linuxは、セキュリティ機能を提供し、優れたパフォーマンスを実現するために構築されたOracleの最適化されたLinuxカーネルであるUnbreakable Enterprise Kernel(UEK)を備えた実績のあるオペレーティング・システムです。多くのエンタープライズ顧客のシステムにセキュリティを提供するだけでなく、Oracle Cloud Infrastructure自体のバックボーンでもあります。OCIサブスクリプションをお持ちのお客様は、最高レベルのサポートであるOracle Linux Premier Support追加費用なしで利用できます。Premier Supportでは、Oracle Kspliceのゼロダウンタイム更新、Oracle Linux Automation ManagerOracleクラウド・ネイティブ環境などの多くの利点を活用できます。

Terraformを使用したOracle Linuxインスタンスのデプロイ

Terraformファイルの記述に関しては、Visual Studio Codeなどの任意のエディタを使用できます。その後、Bashシェルを実行している小規模な仮想マシン(VM)であるOCI Cloud Shellにファイルをアップロードして、Terraformをインストールしなくても実行できます。Terraformワークフローは、書込み、計画および適用の3つの単純なステージで構成されます。わかりやすくするために、GitHubの例で取得したTerraformテンプレート・コードの一部のみを変更し、表示しています。

書込み

構築するインフラストラクチャ・リソースの情報を収集した後、一般的なOCIおよびコンピュート・インスタンス・パラメータなどの入力変数が宣言されます(通常はvariables.tfというファイル)。これらの変数は、割り当てることができる値を持つ関数引数として機能します。これらの変数を定義することで、main.tfで記述されたTerraformモジュールは、独自のソース・コードを変更することなく変更できます。

たとえば、source_typeおよびsource_ocidは、ソースのタイプ(オペレーティング・システム・イメージ)と、インスタンスに使用する特定のソース(ここではOracle Linuxイメージ)を識別する変数です。Oracle Linux 9イメージを使用してインスタンスを作成する場合は、リリース・ノートに移動して、インスタンスが作成されるリージョンのOracle Linux 9イメージのイメージOCIDを取得できます。このイメージは、source_ocid変数に割り当てる文字列値です。instance_countなどの変数に50などの値を指定し、コンソールから手動で実行するのではなく、単一のモジュールから同じインスタンスをデプロイできます。自動化はこの価値を提供します。

A screenshot of the code for main.tf and variables.tf in Terraform.

イメージOCIDは、次の図に示すように、us-ashburn-1リージョンと相関する”Oracle-Linux-9.1-2023.01.31-2″のイメージOCIDとともにterraform.tfvarsのsource_ocid変数に割り当てられます。このファイルを使用すると、variables.tfで宣言された変数の値を割り当てるか、デフォルトの変数を上書きできます。

A screenshot of the terraform.tfvars code details in Terraform.

計画

Terraform構成ファイルがクラウド環境に固有の値で書き込まれた後、OCI Cloud Shellにアップロードします。Terraform構成ファイルがあるディレクトリで、terraform initコマンドを実行してディレクトリを初期化します。次に、terraform planコマンドを実行して、インスタンスをデプロイするための変更のプレビューを含む実行計画を作成します。

gursewak_s@cloudshell:tfDemo (us-ashburn-1)$ terraform init

 

gursewak_s@cloudshell:tfDemo (us-ashburn-1)$ terraform plan

適用

生成されたTerraform計画は、terraform applyコマンドを実行して実行します。このコマンドは、この例のOCIでOracle Linux 9イメージを使用してインスタンスを作成します。

gursewak_s@cloudshell:tfDemo (us-ashburn-1)$ terraform apply

クラウド・デプロイメントの自動化を今すぐ開始

Terraformは、DevOpsの加速、手動介入の削減、そして重要なことにクラウド・インフラストラクチャの自動化を支援します。OracleとOCIコミュニティは、GitHubの多くのOCIリソースに対してTerraformプロジェクトを開発、保守、公開します。これらのプロジェクトとそのTerraform構成ファイルは、テンプレートとして使用でき、開始点が最適です。

コンピュート・インスタンスをデプロイするためのモジュールの使用方法を示す詳細な例にアクセスする場合は、GitHubの詳細を参照してください。Oracle Help Learn Centerラボ演習を通じて、Terraformを使用してOCIにOracle Linuxインスタンスをデプロイする方法を学習します。

OCIサブスクリプションがない場合は、Oracle Cloud Free Tierサインアップしてください。これには、Always Freeのクラウド・サービスが無制限で30日間のトライアルと300ドルのクラウド・クレジットが含まれています。このように、Terraformで実践的な経験を得て、Oracle Cloud InfrastructureでOracle Linuxデプロイメントを起動できます。

詳細は、次のリソースを参照してください。: