GridGain Developers Hub

Using GridGain AMI

GridGain provides an AMI with the latest version of GridGain Community Edition preinstalled.

Prerequisites

  • An existing AWS account

Considerations

Choose the right type of instances that suit your needs. The following instance types are supported:

Instance type family Instance type

M6i

m6i.xlarge, m6i.2xlarge, m6i.4xlarge, m6i.8xlarge, m6i.12xlarge, m6i.16xlarge, m6i.24xlarge, m6i.32xlarge, m6i.metal

T3

t3.large, t3.xlarge, t3.2xlarge

C5

c5.large, c5.xlarge, c5.2xlarge, c5.4xlarge, c5.9xlarge, c5.12xlarge, c5.18xlarge, c5.24xlarge, c5.metal

C5d

c5d.large, c5d.xlarge, c5d.2xlarge, c5d.4xlarge, c5d.9xlarge, c5d.12xlarge, c5d.18xlarge, c5d.24xlarge, c5d.metal

R5

r5.large, r5.xlarge, r5.2xlarge, r5.4xlarge, r5.8xlarge, r5.12xlarge, r5.16xlarge, r5.24xlarge, r5.metal

R5d

r5d.large, r5d.xlarge, r5d.2xlarge, r5d.4xlarge, r5d.8xlarge, r5d.12xlarge, r5d.16xlarge, r5d.24xlarge, r5d.metal

R6i

r6i.large, r6i.xlarge, r6i.2xlarge, r6i.4xlarge, r6i.8xlarge, r6i.12xlarge, r6i.16xlarge, r6i.24xlarge, r6i.32xlarge, r6i.metal

Consider the following points:

  • RAM: If you are going to use GridGain as an in-memory storage, make sure to select an instance with enough RAM to fit all your data.

  • Disk space: If you are launching a cluster with a persistent storage, provide enough size to accommodate all your data when configuring the instance’s volume.

    You may want to uncheck the Delete on Termination option for your storage.

  • Networking: GridGain nodes discover and communicate with each other by TCP/IP. A number of ports must be open for this communication. See Configuring Security Group.

Visit our Capacity Planning page for information about ways to estimate hardware requirements for your use case.

Selecting and Obtaining GridGain AMI

Visit the product page on AWS Marketplace, corresponding to the edition you need, and launch the AMI from there.

Image Edition Amazon Marketplace Link

BYOL (Bring Your Own License)

https://aws.amazon.com/marketplace/pp/prodview-mhesijebeozle

Community

https://aws.amazon.com/marketplace/pp/prodview-pifxykxv3yfuu

Enterprise

https://aws.amazon.com/marketplace/pp/prodview-exrjq4ox4kuim

Ultimate

https://aws.amazon.com/marketplace/pp/prodview-irktgogccfkhs

Providing a license

License is included in Community, Enterprise and Ultimate edition AMI images. BYOL (Bring Your Own License) AMI image expects a license at /opt/gridgain/config/license.xml.

Instance userdata can be used to provide license during instance startup:

#cloud-config
# vim: syntax=yaml

write_files:
  - path: /opt/gridgain/config/license.xml
    content: |
      <license>

BYOL image will start GridGain Community edition if no license was provided, or the edition of the license. For more information about GridGain licenses, see GridGain Licensing.

Configuring IAM Role and Instance Profile

Optionally, you can attach IAM role to instances via Instance Profile. These are recomended policies to attach to this role:

Additionally, we recommend you to attach following permissions:

For Amazon ELB

Set the following permissions for automatic discovery using Amazon ELB:

elasticloadbalancing:DescribeLoadBalancerAttributes
elasticloadbalancing:DescribeLoadBalancers
elasticloadbalancing:DescribeTags
elasticloadbalancing:DescribeLoadBalancerPolicies
elasticloadbalancing:DescribeLoadBalancerPolicyTypes
elasticloadbalancing:DescribeInstanceHealth
elasticloadbalancing:DescribeAccountLimits
elasticloadbalancing:DescribeListenerAttributes
elasticloadbalancing:DescribeListenerCertificates
elasticloadbalancing:DescribeListeners
elasticloadbalancing:DescribeTargetGroupAttributes
elasticloadbalancing:DescribeTargetGroups
elasticloadbalancing:DescribeTargetHealth
elasticloadbalancing:DescribeTrustStoreAssociations
elasticloadbalancing:DescribeTrustStoreRevocations
elasticloadbalancing:DescribeTrustStores
elasticloadbalancing:GetResourcePolicy

For S3 Bucket

Set the following permissions for automatic discovery using S3 bucket:

s3:ListBucket
s3:PutObject
s3:PutObjectAcl
s3:GetObject
s3:GetObjectAcl
s3:DeleteObject

Configuring Security Group

When configuring the instances, you will be asked to specify a security group. The security group must allow connection to the following ports:

Protocol Port Description

TCP

47500-47600

Discovery ports.

TCP

47100-47200

Communication ports.

TCP

10800

Optional. Thin client port.

TCP

8080

Optional. For REST API requests.

TCP

11211

For control.sh calls. This port should be opened only for cluster member nodes, from which a user might need to call control.sh.

These are the default ports that GridGain nodes use for discovery and communication purposes. If you want to use values other than the default ones, open them.

This is what our security group should look like:

aws security group

Launching GridGain Nodes

You can use GridGain Terraform AWS Module to create EC2 instances and all supplementary resources (VPC, EIPs, S3 bucket, ELB, etc). See GridGain Terraform AWS Module documentation for more details.

Connect to the EC2 instance via ssh as per the AWS documentation. Make sure to provide the same credentials that were used to launch the EC2 instance.

The default user name is gg_rw_user. The ssh command would look like (change the IP address with the actual public IP of your image):

ssh -i your_key.pem gg_rw_user@@54.173.158.228

You can change the user name after first login, if needed. For information on how to create a custom user name, see AWS documentation for Linux user accounts.

GridGain is installed in the /opt/gridgain/binaries/latest/ directory. You can start it with the default settings by running the following command:

$ systemctl start gridgain

Because the service is enabled by default, it should start automatically and be up and running soon after the instance launch.

Configuring Discovery

Cluster nodes launched in different EC2 instances must be able to connect to each other. This is achieved by configuring the discovery mechanisms on each node. There are two ways you can do that:

Discovering Nodes by TCP/IP

To configure discovery by TCP/IP, specify the private IP addresses of each instance in the node’s configuration file. Configuration file used by default is stored in /opt/gridgain/config/server.xml.

<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:util="http://www.springframework.org/schema/util"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="         http://www.springframework.org/schema/beans
    http://www.springframework.org/schema/beans/spring-beans.xsd
    http://www.springframework.org/schema/util
    http://www.springframework.org/schema/util/spring-util.xsd">
    <bean class="org.apache.ignite.configuration.IgniteConfiguration">

        <!-- other properties -->

        <!-- Discovery configuration -->
        <property name="discoverySpi">
            <bean class="org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi">
                <property name="ipFinder">
                    <bean class="org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder">
                        <property name="addresses">
                            <list>
                                <value>172.31.28.36</value>
                                <value>172.31.23.105</value>
                            </list>
                        </property>
                    </bean>
                </property>
            </bean>
        </property>
    </bean>
</beans>
  1. Connect to each instance via ssh.

  2. Stop the service: systemctl stop gridgain.

  3. Adjust the configuration.

  4. Restart the service: systemctl start gridgain.

Automatic Discovery Using Amazon S3

You can use the Amazon S3 IP Finder to configure automatic discovery of nodes.

The 'ignite-aws' module is already enabled.

Go to the Amazon S3 Management Console and create a simple bucket with default settings. Our bucket is named 'gg-ip-finder-bucket':

aws s3 bucket

Provide the name of the bucket in the node’s configuration file, /opt/gridgain/config/server.xml, as follows:

<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:util="http://www.springframework.org/schema/util"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="         http://www.springframework.org/schema/beans
    http://www.springframework.org/schema/beans/spring-beans.xsd
    http://www.springframework.org/schema/util
    http://www.springframework.org/schema/util/spring-util.xsd">
    <bean class="org.apache.ignite.configuration.IgniteConfiguration">
        <!-- other properties -->
        <property name="discoverySpi">
            <bean class="org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi">
                <property name="ipFinder">
                    <bean class="org.apache.ignite.spi.discovery.tcp.ipfinder.s3.TcpDiscoveryS3IpFinder">
                        <property name="awsCredentials" ref="aws.creds"/>
                        <property name="bucketName" value="gg-ip-finder-bucket"/>
                    </bean>
                </property>
            </bean>
        </property>
    </bean>
    <!-- AWS credentials. Provide your access key ID and secret access key. -->
    <bean class="com.amazonaws.auth.BasicAWSCredentials" id="aws.creds">
        <constructor-arg value="YOUR_ACCESS_KEY_ID"/>
        <constructor-arg value="YOUR_SECRET_ACCESS_KEY"/>
    </bean>
</beans>

Replace the YOUR_ACCESS_KEY_ID and YOUR_SECRET_ACCESS_KEY values with your access key and secret access key. Refer to the Where’s My Secret Access Key? page for details.

  1. Connect to each instance via ssh.

  2. Stop the service: systemctl stop gridgain.

  3. Adjust the configuration.

  4. Restart the service: systemctl start gridgain.

Troubleshooting Your AWS Deployment

GridGain Systems offers 14 days of free GridGain Standard Enterprise Support to new organizations that deploy the GridGain Enterprise Edition on AWS through the AWS Marketplace. This offer is limited to one 14-day period of free support per organization. Our standard annual support subscriptions are available at any time. Just complete the form to register for your 14 days of complementary support services.

To receive better support, provide node logs. If you provided CloudWatch Agent policy, instances will publish logs to CloudWatch Logs. Agent on the instances is already pre-configured to publish GridGain node logs. Pre-configured loggroup is /gridgain/<EDITION>/8.9.17, where <EDITION> is the edition of your GridGain instance.