Amazon S3 with Route 53 for static hosting - shared namespace - amazon-s3

I'm currently attempting to use Amazon S3 for static hosting for a domain with the word bucket in the URL. One of the requirements for static hosting is that the bucket is named after the domain, so I had success setting up bucketdomain.com (not the actual domain) but unfortunatley I am unable to setup www.bucketdomain.com as S3 returns the following error when creating the S3 bucket:
The requested bucket name is not available. The bucket namespace is
shared by all users of the system. Please select a different name and
try again.
Does anyone know a way round this issue?

S3 buckets are a global namespace, and so it's very possible that someone else took the same bucket before you could get it. It's also possible that due to internal replication delays or other such issues, a previously-deleted bucket is not yet available for re-use.
It appears the bucket name you are using is not unique enough.

Related

How can we test the s3 bucket with the access keys (using amazon sdk)

I am totally new to AWS. So we have this s3 endpoint already created by sysadmin and another S3 bucket created (which I need to access files from). We are using amazon sdk.(We have the composer aws/aws-sdk-php")
If two apache environment variables(AWS_ACCESS_KEY_ID
AWS_SECRET_ACCESS_KEY) are set for S3 access keys, how can we easily test it without doing a code? any frontend tool to check the connection?
I am trying to see the files in the s3 bucket has particular name and planning to code using PHP.

Redshift COPY command failing to Load Data from S3

We are facing error while we are trying to load a huge zip file from S3 bucket to redshift from EC2 instance and even aginity. Waht is the real issue here?
As far as we have checked this can be because of the VPC NACL rules but not sure.
Error :
ERROR: Connection timed out after 50000 milliseconds
I also got this error and the Enhanced VPC Routing is enabled , check the routing from your Redshift cluster to S3.
There are several ways to let the Redshift cluster reach S3 , you can see the link below:
https://docs.aws.amazon.com/redshift/latest/mgmt/enhanced-vpc-routing.html
I solved this error by setting NAT for my private subnet which is used by my Redshift cluster.
I think you are correct, it might be because bucket access rules or secret/access keys.
Here are some pointers to debug it further if above doesn't work.
Create a small zip file, then try again if its something because of Size(but I don't think it is possible case.)
Split your zip file into multiple zip files and create Manifest file for loading rather then single file.
I hope your will find this useful.
You should create an IAM role which authorizes Amazon Redshift to access other AWS services like S3 on your behalf, you must associate that role with an Amazon Redshift cluster before you can use the role to load or unload data.
Check below link for setting up IAM role:
https://docs.aws.amazon.com/redshift/latest/mgmt/copy-unload-iam-role.html
I got this error when the Redshift cluster had Enhanced VPC Routing enabled, but no route in the route table for S3. Adding the S3 endpoint fixed the issue. Link to docs.

How to point Amazon S3 bucket to test subdomain like images.develop.example.com

Currently I'm using Amazon S3 bucket for my website like images.example.com .Today I also built a test subdomain for development purposes and it is served in develop.example.com
Now I want to use Amazon S3 bucket like develop.images.example.com or images.develop.example.com (I don't know which of them is correct)
Is it possible according to S3 restrictions?
Because Amazon says: You must have same bucket name with your subdomain. So I was create a bucket like images.example.com
and my cname record is: images.example.com.s3-website.eu-west-2.amazonaws.com
My webserver is Apache and runs on Ubuntu
How can reach to my images on my development subdomain?
Should I create a new cname record?
Should I do something on my virtual host file?
or what?
To share static content from develop.images.example.com:
Create an Amazon S3 bucket called develop.images.example.com
Turn on static website hosting
Create a Route 53 A record for develop.images.example.com with Alias=YES and point it to your S3 bucket
This is the same process as you would have followed for images.example.com.

Serving files on S3 bucket through Cloudflare

I wanted to serve S3 bucket files through Cloudflare network, but encountered some issues. Integration instructions are given here, but they are suitable only for new buckets since bucket is required to be named subdomain.domain.com while my bucket is named domain.
Are there any other solutions to use CloudFlare with S3 without copying files from one bucket to another - like setting some redirects etc.? The problem is that my bucket contains more than 6 million files and that take 200 GB of storage.
Amazon S3 pricing rules are also hard to understand. I struggle to find information how much it costs to transfer information from one bucket to another if they are in the same location.
Thanks for answers.
Unfortunately Amazon S3 requires that the cname conforms to the bucket name as you already found out. So basically you'll have to fix the name.
Here https://serverfault.com/questions/349460/how-to-move-files-between-two-s3-buckets-with-minimum-cost you can find how to copy files between buckets with minimum cost. Within the same zone, and with the right tools, you will not incur bandwidth costs, only the duplicate storage costs for the duration and access costs, details in the linked answer.
Your link to the cloudflare docs doesnt seem to be working anymore, this is the correct link: https://support.cloudflare.com/hc/en-us/articles/200168926-How-do-I-use-CloudFlare-with-Amazon-s-S3-Service-

Custom domain for s3 bucket?

I have S3 bucket called "mybucket". Files from there are available under following links:
mybucket.s3.amazonaws.com/path/to/file.jpg
s3.amazonaws.com/mybucket/path/to/file.jpg
I need custom domain for files served from s3. I added DNS CNAME record pointing to from images.example.com to s3.amazonaws.com (also tried images.example.com -> mybucket.s3.amazonaws.com).
In both cases when I try to GET images.example.com/mybucket/path/to/file/jpg (or images.example.com/path/to/file.jpg) I get S3 error like
Bucket 'images.example.com' does not exist
Is there any workaround for this or I have to change bucket name to images.example.com?
You need to change the bucket name. The virtual hosting docs specifically say (in the "Customizing Amazon S3 URLs with CNAMEs" section)
The bucket name must be the same as the CNAME