Ctrl + k

or run

tessl search
Log in

Version

Workspace
tessl
Visibility
Public
Created
Last updated
Describes
mavenpkg:maven/com.pulumi/aws@7.16.x

docs

common-patterns.mdgetting-started.mdindex.mdprovider.md
tile.json

tessl/maven-com-pulumi--aws

tessl install tessl/maven-com-pulumi--aws@7.16.0

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

elasticache.mddocs/services/databases/

ElastiCache

Amazon ElastiCache provides in-memory caching with Redis or Memcached.

Amazon ElastiCache provides in-memory caching with Redis or Memcached.

Core Imports

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;

Cluster Resource

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();
    }
}

Replication Group Resource

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();
    }
}

Subnet Group Resource

@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();
    }
}

Usage Example

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());
    }
}