APC 技術ブログ

株式会社エーピーコミュニケーションズの技術ブログです。

株式会社 エーピーコミュニケーションズの技術ブログです。

【OCI】ゼロからTerraformでコンピュートを作成してみる

目次

はじめに

こんにちは、エーピーコミュニケーションズの松尾です。
今回はTerraformを使ってOCIリソースを作成してみたいと思います。
検証用のコンピュートなど、毎回同じような設定で作成したい場合、毎回ブラウザから ポチポチするのは大変ですよね。
Terraformを使えばコマンド1つでリソースを作成/削除することができます。
その使いかたを紹介していきます!

この記事で分かること

  • TerraformでのOCIリソースの作成のしかた
  • OracleLinuxコンピュートをクライアントとした使いかた

Terrafom実行環境の準備

基本的には参考手順に沿って実施。一部、「output」の設定は必須ではないためスキップしました。

oracle-japan.github.io

OracleLinuxのTerraformインストールと認証設定

OracleLinuxを起動後、「Terraformのインストール」「RSAキーの作成」を実施していきます。
ローカル環境へTerraformを構築しても良いのですが、今回はクリーンな環境から 試すためOracleLinuxから実施してみました。

Terraformのインストール

こちらからOSに合わせたインストール方法を実施していきます。

developer.hashicorp.com

RSAキーの作成

こちらを実施。

oracle-japan.github.io

Terraform設定ファイルの準備

TerraformでOCIへ接続するための認証情報等を設定していきます。

  • 認証スクリプト
    provide.tfファイルへ、OCIの認証設定を入力していきます。
    Terraformのコード編集はコードブロックが認識しやすいエディタを使うことをお勧めします。
    私はVS Code派です。

設定前

設定後

  • AD指定スクリプト
    availability-domains.tfファイルにコンパートメントOCIDを入力していきます。

設定前

設定後

  • コンピュートインスタンススクリプト
    compute.tfファイルへコンピュートの設定値を入力していきます。

設定前

設定後

[source_id]が何か分からなかったのですが、ここはコンピュートの起動イメージのOCIDを設定します。

リソースを作成

  • Terraformの初期化
    ここまで来たら準備は整っているはずです。
    まずterraform init コマンドでTerraformを初期化してみましょう。
[root@instance-20250516-1509 tf-compute]# terraform init

Initializing the backend...

Initializing provider plugins...
- Reusing previous version of hashicorp/oci from the dependency lock file
- Using previously-installed hashicorp/oci v7.1.0

╷
x Warning: Additional provider information from registry
x
x The remote registry returned warnings for registry.terraform.io/hashicorp/oci:
x - For users on Terraform 0.13 or greater, this provider has moved to oracle/oci. Please update your source in
x required_providers.
╵

Terraform has been successfully initialized!

You may now begin working with Terraform. Try running "terraform plan" to see
any changes that are required for your infrastructure. All Terraform commands
should now work.

If you ever set or change modules or backend configuration for Terraform,
rerun this command to reinitialize your working directory. If you forget, other
commands will detect it and remind you to do so if necessary.
[root@instance-20250516-1509 tf-compute]#

"Terraform has been successfully initialized!"のメッセージが出ていれば初期化は成功しています。

  • Terraformの計画
    ”計画”というのは違和感があるのですが、コマンドとしては"plan"を実施していきます。これはドライランの操作を意味しています。実行前にこの状態で実行したらどうなるか、確認します。

”Plan:1 to add,******”の部分を確認します。今回はコンピュートリソース1つを作成するため、このまま実行すると1つのリソースが追加されることを示しています。想定通りであるため次に進みます。

  • Terraformの実行
    terraform planがsuccessした場合、terraform applyで実行していきます。

”Plan:1 to add,******”の部分が先ほどと同じであることを確認し、”Enter a value”へyesを入力します。

作成が開始されます。

暫し待つと”Apply Complete”と表示され、リソース作成が完了します。ここでは35秒程度かかっていることが分かります。

Terrformのステートファイル

ここで少しTerraformの説明を。Terraformでは作成したリソース状態をファイルで管理します。
一度でもTerraformでリソースを作成すると、このようにterraform.tfstateというファイルが生成されます。
このファイル内に今リソースがどのようになっているかが保持される仕組みとなっています。
実際のOCI上のリソース状態を取得しているわけではないという点がポイントです。

リソースへのSSHログイン

今回はコンピュートリソースを作成したのでブラウザで見てみましょう。

test-ore8というコンピュートが作成されていることが分かります!

グローバルIPアドレスへcompute.tfで指定した鍵ファイルでSSHログインできるか確認してみます。

無事ログインできました!

リソースの削除

  • Terraformの削除
    terraform destroyコマンドで作成したリソースを全て削除します。

削除時は赤字で表示されて認識しやすい

”Plan:”の部分で 1 to destroy であることを確認し、Enter a valueへyesを入力します。

1分程度で削除できました。

ブラウザ側で見ても削除(終了済)となっていることが分かります。

参考

oracle-japan.github.io

developer.hashicorp.com

まとめ

Terraformを使ってOCIへコンピュートを作成してみました。
チュートリアルに沿ったこともあり、迷うことなく作成が出来たかと思います。
Terraformが初めてだった方は、コードでクラウドリソースを管理できることを実際の操作を通して多少でも理解が進んだのではないでしょうか。
あらかじめ設定は必要ですが、同じ設定のリソースをコマンド1つで作成、削除できることは、手間の他にも、人による間違いが排除されることなど、メリットは大きいと思います。
実際にTerraformを使っていくには、複数人で使うことを想定してTerraform状態管理のファイルをローカルではなくクラウド上に配置する、Terraformのよく使うパラメータは別に変数として参照させる、など運用しやすい考慮は出てきます。
ですが、まずは使ってみることから始まるので、本ブログが最初の一歩の助けになっていただければ幸いです!

おわりに

私達クラウド事業部はクラウド技術を活用したSI/SESのご支援をしております。

www.ap-com.co.jp

また、一緒に働いていただける仲間も募集中です!
ご興味持っていただけましたらぜひお声がけください。

www.ap-com.co.jp