Update with ChimneySwift's changes from their fork (PR#4030)

tigattack 2023-12-13 10:14:40 +00:00
parent 3a2ec81357
commit 2a76ede9ce
1 changed files with 38 additions and 2 deletions

@ -1,6 +1,8 @@
This option offers both an alternative storage solution, and an external web serving solution, allowing the map data to be published to, and then served from, an AWS S3 'bucket', providing a convenient option for servers on hosting environments where the option for large local storage and/or the need for an additional TCP/IP port for the internal web server is a problem.
This option offers both an alternative storage solution, and an external web serving solution, allowing the map data to be published to, and then served from, an AWS S3 compatible 'bucket', providing a convenient option for servers on hosting environments where the option for large local storage and/or the need for an additional TCP/IP port for the internal web server is a problem.
To set up this solution, it is required for the server administrator to have an AWS (Amazon Web Services) account.
To set up this solution, it is required for the server administrator to have an AWS (Amazon Web Services) account. Alternatively, it is possible to use any other S3-Compatible service (See [Alternative Services](#alternative-services))
# Amazon AWS Configuration
**Note: while there is a 'free tier' on AWS for new accounts, and this will allow up to about 5GB to be hosted in S3 for free for the first 12 months of an account, it IS very important to realize that it will be quite possible to run up non-trivial monetary charges when using S3. We will offer some advice on how to optimize this, but understand that you can and should monitor any expenses incurred, and not assume this is a free or risk free option.**
@ -76,3 +78,37 @@ At the present time, the following costs are representative for use of AWS in us
* $0.09 per GB transferred from the bucket (tile reads, update reads, etc. Browser caching will help this). In general, data transfer IN to the bucket has no charges (other than the PUT API call, above).
# Alternative Services
It is possible to configure dynmap to use most other S3-Compatible storage APIs. Some options are listed below.
* **Cloudflare R2**
* $0.015 per GB per month, $0.0045 per 1000 Update requests, $0.00036 per 1000 GET requests
* Free egress
* Free Tier: 10 GB per month, 1 million Update requests per month, 10 million GET requests per month
* **Backblaze B2**
* $0.006 per GB per month, $0.004 per 1000 LIST, COPY requests (2500 free per day), $0.0004 per 1000 GET requests (2500 free per day)
* Free egress up to 3x amount stored then $0.01/GB, Free PUT/POST
* Free tier: 10 GB per month
* **Wasabi**
* $0.0068 per GB per month
* Free egress
* Free egress and API usage is bound by a fair use agreement, so may not be suitable for dynmap
* 30 Day free trial (up to 1 TB)
* **Linode Object Storage**
* **DigitalOcean Spaces**
* many more...
Most large hosting providers are now offering object storage which is compatible with the S3 API, so there are many options to choose from. It would be well out of scope to detail how to use each one of these services here, so if you are unsure it is recommended you stick with AWS.
Once you have signed up for a service and created a bucket, update the settings in **configuration.txt** as per the following table.
| Setting | Set To |
|-------------------------|-------------------------------------------------------------------------------------------------------------------------------------------|
| `type` | `aws_s3` |
| `bucketname` | The name of the bucket you created. Default is `dynmap` |
| `region` | If your provider requires that you set a region, set it here. For some providers, this will do nothing or is not required so set to `""` |
| `aws_access_key_id` | Your access key ID |
| `aws_secret_access_key` | Your access key secret |
| `override_endpoint` | Your provider's S3 endpoint. If set to `""`, it assumes an AWS endpoint and generates based on the `region` setting |
Once these settings are configured, refer to Step 6 in [Amazon AWS Configuration](#amazon-aws-configuration) for additional dynmap config.