Adding a S3OutputStream that upload blobs to the S3 Storage service with two modes (single/multipart).
When the length of the chunk is lower than buffer_size (default to 5mb), the chunk is uploaded with a single request.
Otherwise multiple requests are made, each of buffer_size (except the last one which can be lower than buffer_size).
For example, when uploading a blob (say, 1Gb) with chunk_size set for accepting large chunks (chunk_size = 5Gb) and buffer_size set to 100Mb, the blob will be sent into 10 multiple parts, each of ~100Mb. Each part upload may failed independently and will be retried 3 times.
Closes#117
We should use `https` by default instead of `http` for communication between elasticsearch and AWS API.
Note that it can be modified in case of trouble and fallback to the older setting using `cloud.aws.protocol: http`
Closes#109.
By default all communication w/ AWS services done by this plugin is sent the clear over `http`, overriding amazons own default of https: http://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/ClientConfiguration.html#getProtocol()
One has to set `cloud.aws.protocol` in `elasticsearch.yml` to force SSL.
cloud.aws.protocol: https
This is not entirely clear to the average user, and should be added to the documentation on both this project's README.
Closes#101.
When a Snapshot does not exist, we should raise a `SnapshotMissingException`.
Add also tests for GET/DELETE on non existing repo
Closes#86.
(cherry picked from commit 77ab672)
Changed AwsS3Service to use one client per region and credentials combination.
Made S3Repository specify credentials if such exists in the repository settings.
Updated readme with repository specific credentials settings.
Closes#54.
Closes#55.
Closes#56.
(cherry picked from commit d4ea2dd)
This change will allow EC2 API to filter by tags, AZ, and instance state. In the situation where you have a large number of instances/reservations, this can be a performance boost.
Note that we still do the security group filter locally due to the different strategies (all or some must match).
Closes#39.
If the AWS client throws an exception (e.g: because of a DNS failure) it will end up killing the rejoin thread and stop retrying which can lead to a node getting stuck unable to rejoin the cluster.
Closes#30.