ClusterInstance

class ClusterInstance : KotlinCustomResource

A Cluster Instance Resource defines attributes that are specific to a single instance in a Neptune Cluster. You can simply add neptune instances and Neptune manages the replication. You can use the count meta-parameter to make multiple instances and join them all to the same Neptune Cluster, or you may specify different Cluster Instance resources with various instance_class sizes.

Example Usage

The following example will create a neptune cluster with two neptune instances(one writer and one reader).

import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";
const _default = new aws.neptune.Cluster("default", {
clusterIdentifier: "neptune-cluster-demo",
engine: "neptune",
backupRetentionPeriod: 5,
preferredBackupWindow: "07:00-09:00",
skipFinalSnapshot: true,
iamDatabaseAuthenticationEnabled: true,
applyImmediately: true,
});
const example: aws.neptune.ClusterInstance[] = [];
for (const range = {value: 0}; range.value < 2; range.value++) {
example.push(new aws.neptune.ClusterInstance(`example-${range.value}`, {
clusterIdentifier: _default.id,
engine: "neptune",
instanceClass: "db.r4.large",
applyImmediately: true,
}));
}
import pulumi
import pulumi_aws as aws
default = aws.neptune.Cluster("default",
cluster_identifier="neptune-cluster-demo",
engine="neptune",
backup_retention_period=5,
preferred_backup_window="07:00-09:00",
skip_final_snapshot=True,
iam_database_authentication_enabled=True,
apply_immediately=True)
example = []
for range in [{"value": i} for i in range(0, 2)]:
example.append(aws.neptune.ClusterInstance(f"example-{range['value']}",
cluster_identifier=default.id,
engine="neptune",
instance_class="db.r4.large",
apply_immediately=True))
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Aws = Pulumi.Aws;
return await Deployment.RunAsync(() =>
{
var @default = new Aws.Neptune.Cluster("default", new()
{
ClusterIdentifier = "neptune-cluster-demo",
Engine = "neptune",
BackupRetentionPeriod = 5,
PreferredBackupWindow = "07:00-09:00",
SkipFinalSnapshot = true,
IamDatabaseAuthenticationEnabled = true,
ApplyImmediately = true,
});
var example = new List<Aws.Neptune.ClusterInstance>();
for (var rangeIndex = 0; rangeIndex < 2; rangeIndex++)
{
var range = new { Value = rangeIndex };
example.Add(new Aws.Neptune.ClusterInstance($"example-{range.Value}", new()
{
ClusterIdentifier = @default.Id,
Engine = "neptune",
InstanceClass = "db.r4.large",
ApplyImmediately = true,
}));
}
});
package main
import (
"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/neptune"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_default, err := neptune.NewCluster(ctx, "default", &neptune.ClusterArgs{
ClusterIdentifier: pulumi.String("neptune-cluster-demo"),
Engine: pulumi.String("neptune"),
BackupRetentionPeriod: pulumi.Int(5),
PreferredBackupWindow: pulumi.String("07:00-09:00"),
SkipFinalSnapshot: pulumi.Bool(true),
IamDatabaseAuthenticationEnabled: pulumi.Bool(true),
ApplyImmediately: pulumi.Bool(true),
})
if err != nil {
return err
}
var example []*neptune.ClusterInstance
for index := 0; index < 2; index++ {
key0 := index
_ := index
__res, err := neptune.NewClusterInstance(ctx, fmt.Sprintf("example-%v", key0), &neptune.ClusterInstanceArgs{
ClusterIdentifier: _default.ID(),
Engine: pulumi.String("neptune"),
InstanceClass: pulumi.String("db.r4.large"),
ApplyImmediately: pulumi.Bool(true),
})
if err != nil {
return err
}
example = append(example, __res)
}
return nil
})
}
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.neptune.Cluster;
import com.pulumi.aws.neptune.ClusterArgs;
import com.pulumi.aws.neptune.ClusterInstance;
import com.pulumi.aws.neptune.ClusterInstanceArgs;
import com.pulumi.codegen.internal.KeyedValue;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var default_ = new Cluster("default", ClusterArgs.builder()
.clusterIdentifier("neptune-cluster-demo")
.engine("neptune")
.backupRetentionPeriod(5)
.preferredBackupWindow("07:00-09:00")
.skipFinalSnapshot(true)
.iamDatabaseAuthenticationEnabled(true)
.applyImmediately(true)
.build());
for (var i = 0; i < 2; i++) {
new ClusterInstance("example-" + i, ClusterInstanceArgs.builder()
.clusterIdentifier(default_.id())
.engine("neptune")
.instanceClass("db.r4.large")
.applyImmediately(true)
.build());
}
}
}
resources:
default:
type: aws:neptune:Cluster
properties:
clusterIdentifier: neptune-cluster-demo
engine: neptune
backupRetentionPeriod: 5
preferredBackupWindow: 07:00-09:00
skipFinalSnapshot: true
iamDatabaseAuthenticationEnabled: true
applyImmediately: true
example:
type: aws:neptune:ClusterInstance
properties:
clusterIdentifier: ${default.id}
engine: neptune
instanceClass: db.r4.large
applyImmediately: true
options: {}

Import

Using pulumi import, import aws_neptune_cluster_instance using the instance identifier. For example:

$ pulumi import aws:neptune/clusterInstance:ClusterInstance example my-instance

Properties

Link copied to clipboard
val address: Output<String>

The hostname of the instance. See also endpoint and port.

Link copied to clipboard

Specifies whether any instance modifications are applied immediately, or during the next maintenance window. Default isfalse.

Link copied to clipboard
val arn: Output<String>

Amazon Resource Name (ARN) of neptune instance

Link copied to clipboard

Indicates that minor engine upgrades will be applied automatically to the instance during the maintenance window. Default is true.

Link copied to clipboard

The EC2 Availability Zone that the neptune instance is created in.

Link copied to clipboard

The identifier of the aws.neptune.Cluster in which to launch this instance.

Link copied to clipboard
val dbiResourceId: Output<String>

The region-unique, immutable identifier for the neptune instance.

Link copied to clipboard
val endpoint: Output<String>

The connection endpoint in address:port format.

Link copied to clipboard
val engine: Output<String>?

The name of the database engine to be used for the neptune instance. Defaults to neptune. Valid Values: neptune.

Link copied to clipboard
val engineVersion: Output<String>

The neptune engine version. Currently configuring this argumnet has no effect.

Link copied to clipboard
val id: Output<String>
Link copied to clipboard
val identifier: Output<String>

The identifier for the neptune instance, if omitted, this provider will assign a random, unique identifier.

Link copied to clipboard

Creates a unique identifier beginning with the specified prefix. Conflicts with identifier.

Link copied to clipboard
val instanceClass: Output<String>

The instance class to use.

Link copied to clipboard
val kmsKeyArn: Output<String>

The ARN for the KMS encryption key if one is set to the neptune cluster.

Link copied to clipboard

The name of the neptune parameter group to associate with this instance.

Link copied to clipboard

A subnet group to associate with this neptune instance. NOTE: This must match the neptune_subnet_group_name of the attached aws.neptune.Cluster.

Link copied to clipboard
val port: Output<Int>?

The port on which the DB accepts connections. Defaults to 8182.

Link copied to clipboard

The daily time range during which automated backups are created if automated backups are enabled. Eg: "04:00-09:00"

Link copied to clipboard

The window to perform maintenance in. Syntax: "ddd:hh24:mi-ddd:hh24:mi". Eg: "Mon:00:00-Mon:03:00".

Link copied to clipboard
val promotionTier: Output<Int>?

Default 0. Failover Priority setting on instance level. The reader who has lower tier has higher priority to get promoter to writer.

Link copied to clipboard

Bool to control if instance is publicly accessible. Default is false.

Link copied to clipboard
val pulumiChildResources: Set<KotlinResource>
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard

Determines whether a final DB snapshot is created before the DB instance is deleted.

Link copied to clipboard

Specifies whether the neptune cluster is encrypted.

Link copied to clipboard
val storageType: Output<String>

Storage type associated with the cluster standard/iopt1.

Link copied to clipboard
val tags: Output<Map<String, String>>?

A map of tags to assign to the instance. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level.

Link copied to clipboard
val tagsAll: Output<Map<String, String>>

A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block.

Link copied to clipboard
val urn: Output<String>
Link copied to clipboard
val writer: Output<Boolean>

Boolean indicating if this instance is writable. False indicates this instance is a read replica.