Use MinIO for object storage
Use MinIO as the object store for your InfluxDB 3 Enterprise instance. InfluxDB uses the MinIO S3-compatible API to interact with your MinIO server or cluster.
MinIO is a high-performance, S3-compatible object storage solution released under the GNU AGPL v3.0 license. Designed for speed and scalability, it powers AI/ML, analytics, and data-intensive workloads with industry-leading performance.
MinIO provides both an open source version (MinIO Community Edition) and an enterprise version (MinIO AIStor). While both can be used as your InfluxDB 3 Enterprise object store, this guide walks through using MinIO Community Edition.
Set up MinIO
Install and deploy a MinIO server or cluster.
You can install MinIO locally for testing and development or you can deploy a production MinIO cluster across multiple machines. The MinIO documentation provides detailed instructions for installing and deploying MinIO based on your target operating system:
Download and install the MinIO Client (
mc
).The MinIO client, or
mc
CLI, lets you perform administrative tasks on your MinIO server or cluster like creating users, assigning access policies, and more. Download and install themc
CLI for your local operating system and architecture.Configure the
mc
CLI to connect to your MinIO server or cluster.The
mc
CLI uses “aliases” to connect to a MinIO server or cluster. The alias refers to a set of connection credentials used to connect to and authorize with your MinIO server.Use the
mc alias set
command and provide the following:- Alias: A unique name or identifier for this credential set
(
ALIAS
) - MinIO URL: The URL of your MinIO server or cluster
(
https://localhost:9000
if running locally) - Root username: The root username you specified when setting up your
MinIO server or cluster
(
ROOT_USERNAME
) - Root password: The root password you specified when setting up your
MinIO server or cluster
(
ROOT_PASSWORD
)
mc alias set
ALIAShttp://localhost:9000ROOT_USERNAMEROOT_PASSWORD- Alias: A unique name or identifier for this credential set
(
Create a MinIO bucket.
Use the MinIO Console or the
mc mb
command to create a new bucket in your MinIO server or cluster.The MinIO Console is a graphical user interface that lets you manage and browse buckets in your MinIO server or cluster. By default, the console is served on port
9001
.If running MinIO on your local machine, visit http://localhost:9001 to access the MinIO Console. If MinIO is running on a remote server, use your custom domain or IP to access the MinIO console.
- In the Minio Console, click Create Bucket.
- Enter a bucket name. For this guide, use
influxdb3
. - Click Create Bucket.
Use the
mc mb
command to create a new MinIO bucket namedinfluxdb3
. Provide the MinIO alias configured in step 3 and the bucket name using theALIAS/BUCKET_NAME
syntax–for example:mc mb
ALIAS/influxdb3Create a MinIO user.
Use the
mc admin user add
command to create a new user. Provide the following:- MinIO alias: The MinIO server alias (created in step 3)
to add the user to (
ALIAS
) - Username: A unique username for the user
(
MINIO_USERNAME
) - Password: A password for the user
(
MINIO_PASSWORD
)
mc admin user add
ALIASMINIO_USERNAMEMINIO_PASSWORDMinIO user credentials are equivalent to credentials you would typically use to authorize with AWS S3:
- A MinIO username is equivalent to an AWS access key ID
- A MinIO password is equivalent to an AWS secret key
- MinIO alias: The MinIO server alias (created in step 3)
to add the user to (
Create an access policy that grants full access to the
influxdb3
bucket.MinIO uses S3 compatible access policies to authorize access to buckets. To create a new access policy:
Create a file named
influxdb3-policy.json
that contains the following JSON:{ "Version": "2012-10-17", "Statement": [ { "Action": [ "s3:GetBucketLocation", "s3:ListBucket" ], "Effect": "Allow", "Resource": ["arn:aws:s3:::influxdb3"] }, { "Action": [ "s3:PutObject", "s3:GetObject", "s3:DeleteObject" ], "Effect": "Allow", "Resource": ["arn:aws:s3:::influxdb3/*"] } ] }
Use the
mc admin policy create
command to create the new access policy in your MinIO server or cluster. Provide the following:- MinIO alias: The MinIO server alias (created in step 3) to add
the access policy to (
ALIAS
) - Policy name: A unique name for the policy
(
POLICY_NAME
) - Policy file: The relative or absolute file path of your
influxdb3-policy.json
policy file (/path/to/influxdb3-policy.json
)
mc admin policy create \
ALIAS\POLICY_NAME\/path/to/influxdb3-policy.json- MinIO alias: The MinIO server alias (created in step 3) to add
the access policy to (
Attach the access policy to your user.
Use the
mc admin policy attach
command to attach the access policy to your user.MinIO supports attaching access policies to both users and user groups. All users in a user group inherit policies attached to the group. For information about managing MinIO user groups, see MinIO Group Management.
Provide the following:
- MinIO alias: The MinIO server alias created in step 3
(
ALIAS
) - Policy name: A unique username for the user
(
POLICY_NAME
) - Username or group name: The user or user group to assign the policy to
(
MINIO_USERNAME
orMINIO_GROUP_NAME
)
- MinIO alias: The MinIO server alias created in step 3
(
Your MinIO server or cluster is now set up and ready to be used with InfluxDB 3 Enterprise.
Configure InfluxDB to connect to MinIO
To use your MinIO server or cluster as the object store for your InfluxDB 3 Enterprise
instance, provide the following options or environment variables with the
influxdb3 serve
command:
--cluster-id
: Your InfluxDB 3 Enterprise cluster ID (INFLUXDB_CLUSTER_ID
)
--node-id
: Your InfluxDB 3 Enterprise node ID (INFLUXDB_NODE_ID
)--object-store
:s3
--bucket
:influxdb3
--aws-endpoint
: Your MinIO URL (http://localhost:9000
if running locally)--aws-access-key-id
: Your MinIO username (MINIO_USERNAME
)--aws-secret-access-key
: Your MinIO password (MINIO_PASSWORD
)--aws-allow-http
: (Optional) Include if not using HTTPS to connect to your MinIO server or cluster
influxdb3 serve \
--cluster-id INFLUXDB_CLUSTER_ID \
--node-id INFLUXDB_NODE_ID \
--object-store s3 \
--bucket influxdb3 \
--aws-endpoint http://localhost:9000 \
--aws-access-key-id MINIO_USERNAME \
--aws-secret-access-key MINIO_PASSWORD \
--aws-allow-http
INFLUXDB3_ENTERPRISE_CLUSTER_ID
: Your InfluxDB 3 Enterprise cluster ID (INFLUXDB_CLUSTER_ID
)
INFLUXDB3_NODE_IDENTIFIER_PREFIX
: Your InfluxDB 3 Enterprise node ID (INFLUXDB_NODE_ID
)INFLUXDB3_OBJECT_STORE
:s3
INFLUXDB3_BUCKET
:influxdb3
AWS_ENDPOINT
: Your MinIO URL (http://localhost:9000
if running locally)AWS_ACCESSKEY_ID
: Your MinIO username (MINIO_USERNAME
)AWS_SECRET_ACCESS_KEY
: Your MinIO password (MINIO_PASSWORD
)AWS_ALLOW_HTTP
: (Optional) Set totrue
if not using HTTPS to connect to your MinIO server or cluster (default isfalse
)
export INFLUXDB3_ENTERPRISE_CLUSTER_ID=INFLUXDB_CLUSTER_ID
export INFLUXDB3_NODE_IDENTIFIER_PREFIX=INFLUXDB_NODE_ID
export INFLUXDB3_OBJECT_STORE=s3
export INFLUXDB3_BUCKET=influxdb3
export AWS_ENDPOINT=http://localhost:9000
export AWS_ACCESS_KEY_ID=MINIO_USERNAME
export AWS_SECRET_ACCESS_KEY=MINIO_PASSWORD
export AWS_ALLOW_HTTP=true
influxdb3 serve
Confirm the object store is working
When InfluxDB 3 Enterprise starts, it will seed your MinIO object store with the necessary directory structure and begin storing data there. Confirm the object store is functioning properly:
View the
influxdb3 serve
log output to confirm that the server is running correctly.Inspect the contents of your MinIO
influxdb3
bucket to confirm that the necessary directory structure is created. You can use the MinIO Console or themc ls
command to view the contents of a bucket–for example:mc ls
ALIAS/influxdb3
Was this page helpful?
Thank you for your feedback!
Support and feedback
Thank you for being part of our community! We welcome and encourage your feedback and bug reports for InfluxDB 3 Enterprise and this documentation. To find support, use the following resources:
Customers with an annual or support contract can contact InfluxData Support. Customers using a trial license can email trial@influxdata.com for assistance.