Migrate existing Squarespace site to AWS - amazon-ec2

I have I Squarespace website I made for myself a while back. The main purpose at the time was to have something to link to from my iOS app, and I opted for something expedient rather that thinking long term just to get the app released. Fast forward to now and I have an AWS EC2 instance where I could do more with a personal site in the future. Ultimately it would be nice to get it off Squarespace and not have to pay another full year billing cycle, but the renewal date is a pretty tight deadline at this point.
Nothing on this domain requires must more than frontend web code really, but a completely different page UI could take more time than I have for this. I'm wondering if there might be a way to just temporarily have the Squarespace page source as is running on EC2 so I can worry about a possible non CMS design when I'm not worried about getting billed for another whole year by Squarespace.
I'm not sure if this is possible, but if not it seems like I should just port the content to minimalistic empty html files with no styling just to avoid the billing or get billed for a shorter time period. Billing seems like the limiting factor here. I would also need to add my new credit card to get billed for more time which I also have yet to do.
Basically, has anyone else dealt with this situation personally? What would you recommend I do? Does Squarespace even allow me to port to EC2 somehow, or is that more in the realm of WordPress? Thanks.
Note: Tomcat's what I'm using on the EC2 instance currently. I will also need to do the multiple site per instance setup for this, but I believe that's the most relevant config info here unless I'm forgetting something.

Not sure why you've already chosen to use Tomcat as I don't see anything that would allow you to easily convert your Squarespace site to a Java webapp. It looks like Squarespace sites can be exported into Wordpress, which you could host on an EC2 server.
Alternatively you could use wget to create a static copy of your website which you could then host easily on your EC2 server with Nginx, or skip EC2 and just host the static website on S3.

Related

Which t3 EC2 instance should i pick as a start when launching a spring/angular webapplication?

I have built a spring boot/angular web application that uses a mySQL database for storage. The web application's main purpose is to be like a social media website for gardeners. Next to this it has a couple of tools that allow the user to generate a personalized planting calendar based on the monthly average temperature curve of the region where the user lives. Alternatively the user can also generate a personalized planting calendar based on planting journals made by other users that live within a certain radius near the user doing the calendar generating. I am using Hibernate Search for this.
I do not expect to get millions of visits in the first months after launching the web application, so my question is: What would be the best ec2 instance type to start out with? Could a t3.micro support an application like that for the first months or two? Also, How will i know when the current instance type can no longer handle the incoming traffic without lag and therefore i need to upgrade to a bigger instance like t3.medium or large?
Thank you
If the instance is suitable or not depends on many things. Based on my experience a micro instance is not enough for many use cases.
My suggestion is to start with a t3.small instance, start gathering metrics in CloudWatch to establish your baseline for few days. Then decide if it is enough or not.
If you are filling all your resources you can eventually upgrade to a bigger instance. However if your app is dealing with Java I think that a medium size is the minimum start.
About the lag and other things, first suggestion is to put CloudFront on top of the EC2 at least for all your static content (suggestion: put your static contents on S3 don't let EC2 serve them). Then I think that the only option is to rely on some third party performance tool, external to AWS.
By the way, I have built the same app on iOS many years ago, with a support website hosted on AWS. Now the app is gone, and the website is unmaintained :-)

Selecting hosting provider and service for site like KhanAcademy

I'm having difficulties with selecting a host for a website that I'm working on and would appreciate some sincere tips. There are a lot of articles on the topics, many of which are biased, which is why I'm quite confused.
I need help selecting a specific host and service. I have the following requirements and would like a few different suggestions. Ideally, I want one suggestion on a specific service with Cloudflare since that's my primary choice even though I find their offering confusing. I also would like one suggestion with a provider that accepts BTCs as payment.
Now to my requirements:
The website is quite similar to KhanAcademy and Udemy. We want to host about 75 GB of videos that users should be able to view directly on the site (stream) with our own mediaplayer.
We also have about 15 GB of audios that users should be play directly on the site and download.
We do NOT want to use YouTube, Soundcloud or similar services.
Finally, we have an additional 25 GB of files that we need to host, and that users should be able to download.
The media should load quickly but since the site is new, we have no idea of bandwidth requirement. However, we expect that they will be slow at first but grow steadily over time.
We want the hosting service to come with SSL.
And we want a three-year subscription with a fixed upfront fee rather than monthly payments
Although this isn't a must, but we would prefer if we could use the same hosting service for two separate websites with different domains.

Give customers an IP address to point their A Name at?

We run a whitelabeled site builder -- think squarespace or shopify (different market, though). We currently host on Heroku, but need to be able to offer customers an IP address so they can easily point their naked domains at our service. Although I want to move to AWS at some point, we're a bit short on resources right now, so I need an interim solution for this.
It seems like I should be able to set up a simple proxy server behind a static IP on Route53 or something that would proxy traffic to our Heroku app. But I've little experience with this sort of thing and don't know A) if this is actually the right way to go about it, B) resources to look at or the right tools to check out, or C) if there are commercial services that would be easier temporarily than running it ourselves.
Thanks in advance for any pointers!
PS - Believe me, I know this is sub-optimal, but there are a number of reasons we definitely have to offer an IP.
You could certainly do this, since a proxy or hand-made LB within EC2 can shuttle traffic off to wherever you need. So HAproxy running on an EC2 instance could pass traffic over to Heroku for you.
However, I see this was posted about 6 months ago and I know Heroku has just reconfigured pricing. So maybe that is encouragement to move into AWS now. My only real worry about your above solution is latency. What if you ran an EC2 instance with Varnish to cache your Heroku app(s) and try to mitigate any sluggishness?

Amazon EC2 Drupal 6 Site

Before anything, I have never worked with Amazon EC2 Service, first time I even hear of it. I was asked to work on a Drupal 6 site and I need to upload a custom module. The client gave me a username and password to log into Amazon EC2, but told me nothing else. I assumed their site was hosted there. I came upon the EC2 dashboard, and to my surprise (or maybe not) there were no running instances. If I understood properly, you need a running instance that's supposed to work as the server, please, correct me if I'm wrong. I might be understanding it all wrong, and associating "instance" as if it were the Virtual Server itself (sort of like when you use virtual machines on your computer and instance=="virtual machine").
If there are no running instances, how is the site "up" ? There must be a server, somewhere, answering to the client's requests. Or is it that the "instances" are more like "working sessions"? Thing is, I don't want to meddle too much into the dashboard in case I mess it up since this client has no staging site nor repository. That's why I wasn't bold enough to create an instance.
Helps is much appreciated.
You are correct, that if the site is hosted on aws ec2, there must be an ec2 instance running somewhere - definitely check to make sure you have selected the correct region in the upper right hand corner of the console.
The only other possibility, and I don't this would apply to Drupal, is it actually is possible to host an html/css/javascript only site completely on aws s3 (which would not required ec2 instance) but that is not likely what you are dealing with.

Saving third-party images on third-party server

I am writing a service as part of which a user chooses an image from a url (not my domain) and later he and others can view that image.
I need to save this image to a third party server (S3).
After a lot of wasted time I found I can not do it from the client side due to security issues (I can't get the third party image data and send it from the client side without alerting the client, which is just bad)
I also do not want to do the uploading on my server because I run Rails on Heroku and the workers expansive.
So I though of two options:
use something like transloadit.com,
or write a service on EC2 that will run over my db, find where the rows where the images are not uploaded and upload them.
I decided to go for the EC2 and S3 because the solution i am writing is meant for enterprise and it seems that it will sound better as part of the architecture when presented to customers.
My question is: what is the setup i need so I can access the Heroku db from an external service?
Any better ideas on how to solve this?
So you want to effectively write a worker, but instead of doing it on Heroku you want to do it on EC2? That feels like more work.
As for the database, did you see the documentation? It shows how to get the URL.
PS. Did you not find it in the docs?

Resources