docs
reference
services
tessl install tessl/maven-com-pulumi--aws@7.16.0Pulumi Java SDK for AWS providing strongly-typed Infrastructure-as-Code for 227 AWS service packages including compute, storage, databases, networking, security, analytics, machine learning, and more.
Amazon ElastiCache provides in-memory caching with Redis or Memcached.
Amazon ElastiCache provides in-memory caching with Redis or Memcached.
import com.pulumi.aws.elasticache.Cluster;
import com.pulumi.aws.elasticache.ClusterArgs;
import com.pulumi.aws.elasticache.ReplicationGroup;
import com.pulumi.aws.elasticache.ReplicationGroupArgs;
import com.pulumi.aws.elasticache.SubnetGroup;
import com.pulumi.aws.elasticache.SubnetGroupArgs;
import com.pulumi.aws.elasticache.ParameterGroup;
import com.pulumi.aws.elasticache.ParameterGroupArgs;
import com.pulumi.aws.elasticache.UserGroup;
import com.pulumi.aws.elasticache.UserGroupArgs;Create Memcached or single-node Redis clusters.
@ResourceType(type="aws:elasticache/cluster:Cluster")
public class Cluster extends com.pulumi.resources.CustomResource {
public Cluster(String name, ClusterArgs args);
public Output<String> id();
public Output<String> arn();
public Output<String> clusterId();
public Output<String> engine();
public Output<String> engineVersion();
public Output<String> nodeType();
public Output<Integer> numCacheNodes();
public Output<String> parameterGroupName();
public Output<Optional<String>> subnetGroupName();
public Output<Optional<List<String>>> securityGroupIds();
public Output<List<ClusterCacheNode>> cacheNodes();
public Output<String> clusterAddress();
public Output<String> configurationEndpoint();
}
public class ClusterArgs extends com.pulumi.resources.ResourceArgs {
public static Builder builder() { return new Builder(); }
public static final class Builder {
public Builder clusterId(Output<String> clusterId);
public Builder engine(Output<String> engine);
public Builder nodeType(Output<String> nodeType);
public Builder numCacheNodes(Output<Integer> numCacheNodes);
public Builder engineVersion(Output<String> engineVersion);
public Builder port(Output<Integer> port);
public Builder parameterGroupName(Output<String> parameterGroupName);
public Builder subnetGroupName(Output<String> subnetGroupName);
public Builder securityGroupIds(Output<List<String>> securityGroupIds);
public Builder availabilityZone(Output<String> availabilityZone);
public Builder azMode(Output<String> azMode);
public Builder preferredAvailabilityZones(Output<List<String>> preferredAvailabilityZones);
public Builder maintenanceWindow(Output<String> maintenanceWindow);
public Builder snapshotWindow(Output<String> snapshotWindow);
public Builder snapshotRetentionLimit(Output<Integer> snapshotRetentionLimit);
public Builder tags(Output<Map<String, String>> tags);
public ClusterArgs build();
}
}Create Redis replication groups with read replicas.
@ResourceType(type="aws:elasticache/replicationGroup:ReplicationGroup")
public class ReplicationGroup extends com.pulumi.resources.CustomResource {
public ReplicationGroup(String name, ReplicationGroupArgs args);
public Output<String> id();
public Output<String> arn();
public Output<String> replicationGroupId();
public Output<String> description();
public Output<String> engine();
public Output<String> engineVersion();
public Output<String> nodeType();
public Output<Optional<Integer>> numCacheClusters();
public Output<Optional<Integer>> numNodeGroups();
public Output<Optional<Integer>> replicasPerNodeGroup();
public Output<String> primaryEndpointAddress();
public Output<String> readerEndpointAddress();
public Output<String> configurationEndpointAddress();
public Output<Optional<Boolean>> atRestEncryptionEnabled();
public Output<Optional<Boolean>> transitEncryptionEnabled();
}
public class ReplicationGroupArgs extends com.pulumi.resources.ResourceArgs {
public static Builder builder() { return new Builder(); }
public static final class Builder {
public Builder replicationGroupId(Output<String> replicationGroupId);
public Builder description(Output<String> description);
public Builder engine(Output<String> engine);
public Builder engineVersion(Output<String> engineVersion);
public Builder nodeType(Output<String> nodeType);
public Builder numCacheClusters(Output<Integer> numCacheClusters);
public Builder numNodeGroups(Output<Integer> numNodeGroups);
public Builder replicasPerNodeGroup(Output<Integer> replicasPerNodeGroup);
public Builder automaticFailoverEnabled(Output<Boolean> automaticFailoverEnabled);
public Builder multiAzEnabled(Output<Boolean> multiAzEnabled);
public Builder atRestEncryptionEnabled(Output<Boolean> atRestEncryptionEnabled);
public Builder transitEncryptionEnabled(Output<Boolean> transitEncryptionEnabled);
public Builder authToken(Output<String> authToken);
public Builder kmsKeyId(Output<String> kmsKeyId);
public Builder subnetGroupName(Output<String> subnetGroupName);
public Builder securityGroupIds(Output<List<String>> securityGroupIds);
public Builder parameterGroupName(Output<String> parameterGroupName);
public Builder snapshotRetentionLimit(Output<Integer> snapshotRetentionLimit);
public Builder snapshotWindow(Output<String> snapshotWindow);
public Builder maintenanceWindow(Output<String> maintenanceWindow);
public Builder tags(Output<Map<String, String>> tags);
public ReplicationGroupArgs build();
}
}@ResourceType(type="aws:elasticache/subnetGroup:SubnetGroup")
public class SubnetGroup extends com.pulumi.resources.CustomResource {
public SubnetGroup(String name, SubnetGroupArgs args);
public Output<String> id();
public Output<String> name();
public Output<List<String>> subnetIds();
public Output<Optional<String>> description();
}
public class SubnetGroupArgs extends com.pulumi.resources.ResourceArgs {
public static Builder builder() { return new Builder(); }
public static final class Builder {
public Builder name(Output<String> name);
public Builder subnetIds(Output<List<String>> subnetIds);
public Builder description(Output<String> description);
public Builder tags(Output<Map<String, String>> tags);
public SubnetGroupArgs build();
}
}import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.aws.elasticache.*;
import com.pulumi.aws.elasticache.inputs.*;
import java.util.Map;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
// Create subnet group
var cacheSubnetGroup = new SubnetGroup("cache-subnet-group",
SubnetGroupArgs.builder()
.name("my-cache-subnet-group")
.subnetIds(privateSubnetIds)
.description("Cache subnet group")
.build());
// Create parameter group
var parameterGroup = new ParameterGroup("redis-params",
ParameterGroupArgs.builder()
.name("my-redis-params")
.family("redis7")
.parameters(
ParameterGroupParameterArgs.builder()
.name("maxmemory-policy")
.value("allkeys-lru")
.build()
)
.build());
// Create Redis replication group
var redis = new ReplicationGroup("redis-cluster",
ReplicationGroupArgs.builder()
.replicationGroupId("my-redis-cluster")
.description("Redis cluster with read replicas")
.engine("redis")
.engineVersion("7.0")
.nodeType("cache.r6g.large")
.numCacheClusters(3)
.automaticFailoverEnabled(true)
.multiAzEnabled(true)
.atRestEncryptionEnabled(true)
.transitEncryptionEnabled(true)
.authToken(redisAuthToken)
.subnetGroupName(cacheSubnetGroup.name())
.securityGroupIds(cacheSecurityGroup.id().applyValue(List::of))
.parameterGroupName(parameterGroup.name())
.snapshotRetentionLimit(5)
.snapshotWindow("03:00-05:00")
.maintenanceWindow("sun:05:00-sun:07:00")
.tags(Map.of("Environment", "Production"))
.build());
ctx.export("redisPrimaryEndpoint", redis.primaryEndpointAddress());
ctx.export("redisReaderEndpoint", redis.readerEndpointAddress());
}
}