Redis
 Computer >> コンピューター >  >> プログラミング >> Redis

HashiCorpTerraformを使用してRedisEnterpriseCloudAnywhereをプロビジョニングおよび管理する

本日、HashiCorp Terraform RedisEnterpriseCloudプロバイダーが利用可能になったことをお知らせします。開発チームは継続的インテグレーション/継続的デリバリー(CI / DC)などのDevOpsの原則をますます採用していますが、コードとしてインフラストラクチャを管理する必要性は、クラウドサービスにとってほぼ必須の機能になっています。コードスペースとしてのインフラストラクチャの主要なツールはHashiCorpTerraformであり、クラウド、インフラストラクチャ、およびサービスのプロビジョニング、コンプライアンス、および管理のためのプロバイダーとモジュールのクラウドインフラストラクチャ自動化エコシステムで主要なクラウドプロバイダーとサービスをサポートします。

テラフォームとは

ご存じない方のために説明すると、Terraformは、インフラストラクチャを安全かつ効率的に構築、変更、バージョン管理し、すべてをコードで管理するためのツールです。構成ファイルは、アプリケーションの実行に必要なコンポーネントを記述するために使用されます。 Terraformは、ベアメタル、仮想マシン、クラウドインスタンス、およびその他の多くの一般的なIaaS(Infrastructure-as-a-Services)サービスを含む、ほぼすべてのインフラストラクチャコンポーネントを管理できます。アプリケーションスタック内のコンポーネントは、Terraformではリソースとして表されます。 Terraformプロバイダーは、関連するリソースのAPIインタラクションを理解し、リソースの機能を世界に公開する責任があります。

では、本日何を発表しますか?

この増大する需要を満たすために、RedisはRedisEnterpriseCloud用のTerraformプロバイダーを開発しました。 HashiCorp Terraform Redis Enterprise Cloud Providerを使用すると、お客様は、Redis Enterprise Cloudのサブスクリプション、データベース、およびネットワークピアリングをコードとして任意のクラウドプロバイダーに簡単にデプロイおよび管理できます。

クイックスタート

Redis Enterprise CloudのTerraformプロバイダーがどのように機能し、何ができるかを示すために、2つのデータベースでサンプルサブスクリプションを作成しましょう。そのうちの1つはRedisJSONモジュールを使用しています。

前提条件:

  1. Terraformがローカルにインストールされています。
  2. RedisEnterpriseCloudアカウント。
  3. RedisEnterpriseCloudアカウントへのプログラムによるアクセスが有効になっています。

まず、Redis EnterpriseCloudAPIキーを環境変数として保存することから始めましょう。

$ export REDISCLOUD_ACCESS_KEY=

$ export REDISCLOUD_SECRET_KEY=

次に、新しいフォルダを作成して、ここに示すTerraformHCLファイルを配置します。ファイルrediscloud-tf-example.tfを呼び出しましょう:

terraform {
 required_providers {
   rediscloud = {
     source = "Redis/rediscloud"
     version = "0.2.0"
   }
 }
}
# Provide your credit card details
data "rediscloud_payment_method" "card" {
 card_type = "Visa"
 last_four_numbers = "1234"
}
 
# Generates a random password for the database
resource "random_password" "passwords" {
 count = 2
 length = 20
 upper = true
 lower = true
 number = true
 special = false
}
 
resource "rediscloud_subscription" "example" {
 name = "Demo"
 payment_method_id = data.rediscloud_payment_method.card.id
 memory_storage = "ram"
 
 cloud_provider {
   #Running in AWS on Redis resources
   provider = "AWS"
   cloud_account_id = 1
   region {
     region = "eu-west-1"
     networking_deployment_cidr = "10.0.0.0/24"
     preferred_availability_zones = ["eu-west-1a"]
   }
 }
 database {
   name = "redis-db"
   protocol = "redis"
   memory_limit_in_gb = 1
   replication = true
   data_persistence = "none"
   throughput_measurement_by = "number-of-shards"
   throughput_measurement_value = 2
   password = random_password.passwords[0].result
 }
 database {
   name = "db-json"
   protocol = "redis"
   memory_limit_in_gb = 1
   replication = true
   data_persistence = "aof-every-1-second"
   module {
       name = "RedisJSON"
   }
   throughput_measurement_by = "operations-per-second"
   throughput_measurement_value = 10000
   password = random_password.passwords[1].result
 }
}

次のステップは、次のコマンドを実行してテラフォーム環境を初期化することです。

$ terraform init

結果は次のようになります:

...
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.
...

Terraformが正常に初期化されたら、次のコマンドを実行してTerraformにプランを作成させます。

$テラフォームプラン

出力は次のようになります。

...
Plan: 1 to add, 0 to change, 0 to destroy.
...

それでは、Terraformに魔法をかけてもらい、データベースをプロビジョニングしてみましょう。

$テラフォームが適用されます

terraform applyコマンドは、完了してから完了するまでに数分かかる場合があります。次のような結果が得られるはずです。

…
rediscloud_subscription.example: Creation complete after 8m16s [id=103873]
Apply complete! Resources: 1 added, 0 changed, 0 destroyed.
...

ご覧のとおり、2つの新しいデータベースをプロビジョニングしました。あなたがしなければならないのは、データベースのエンドポイントを取得して、それらをアプリケーションに接続することです。合理化されたRedisアプリケーション開発用のGUIであるRedisInsightを使用することもできます データを接続して探索します。

Redis Enterprise Cloudコンソールには、新しいサブスクリプションとデータベースが表示されます。

HashiCorpTerraformを使用してRedisEnterpriseCloudAnywhereをプロビジョニングおよび管理する

データベースを楽しんだら、次のコマンドを実行してすべてを破棄できます。

$ terraform destroy

次は?

HashiCorpTerraformRedisエンタープライズクラウドプロバイダーの機能を引き続き拡張します。プロバイダーでサポートしてほしいアイデアや機能がある場合、またはバグを見つけた場合は、GitHubリポジトリで問題を開いてお知らせください。 pm.group@redis.comまでご連絡ください。

本番環境のユースケースでは、HashiCorpのTerraform向けのクラウドベースの製品であるを使用することもお勧めします。これにより、構成ファイルとソース管理の外部の安全な環境に資格情報を保存できるようになります。 Terraform Cloudには、無料のリモート状態ストレージ、カスタムワークスペースのアクセス許可、バージョン管理システムの統合、コードとしてのポリシーなどのコラボレーション機能も付属しています。 terraform.io/cloudで無料でサインアップできます。


  1. サーバーレスRedisとReactNativeを使用したアプリ内アナウンス

    モバイルアプリケーションでは、アプリのエンドユーザーに情報、警告、またはガイダンスを送信する必要がある場合があります。これを行う1つの方法は、アプリ内アナウンスをユーザーに送信することです。 このブログ投稿では、サーバーレスRedisを使用してユーザーにアナウンスを送信する方法を示すモバイルアプリケーションを開発します。 React Nativeを使用してモバイルアプリケーションを開発し、アプリに直接接続されているサーバーレスRedis用のUpstashを開発します。 アプリ内アナウンスとは何ですか? アプリ内アナウンスは、重要なことをエンドユーザーに通知したり、アクションについて通知した

  2. Nuxt3とサーバーレスRedisの使用を開始する

    はじめに アプリケーションの使用状況を追跡したり、リソースの使用率を制限したり、キャッシュからデータをフェッチしてアプリのパフォーマンスを向上させたりする必要がある場合は、Redisがこれらの要件に対する答えであることがわかります。 Redisは、メモリ内のKey-Valueデータベースです。これはオープンソースであり、RemoteDictionaryServerの略です。 この記事では、Upstash、Redisデータベース、およびVueSSRフレームワークの最近のベータリリースであるNuxt3について説明します。これは、Redisデータベースについて説明する初心者向けの記事で、 Nux