I need a server

Soldato
Joined
2 Oct 2004
Posts
4,362
Location
N.W London
Hey there,

I have developed an android app that is connected to a database.

I need a server to host the files the "app" accesses.

In terms of storage I need around 15-20gb and bandwidth, well its pretty new so need it to be flexible if possible.

Can anyone advise me on which hosting company I should use?

Any recommendations?

Thanks
 
Associate
Joined
29 Jul 2014
Posts
10
Location
Peterborough
Flexibility screams "cloud", but I'd recommend a small VPS to start out. Most cloud solutions are only really cost effective if you're dealing with sporadic bursts of traffic. Can't really go wrong with Vidahost.

I'm also a fan of Ramnode, Digital Ocean (just started offering 'droplets' at a London data centre) and Servergrove - the first two are SSD-based. :)
 
Soldato
Joined
3 Jun 2005
Posts
3,117
Location
The South
AWS and Azure both offer services aimed at mobile applications, so i'd start there. Certainly you want some form of "cloud" based solution for flexibility, especially if the app is to be released publicly.
 
Soldato
OP
Joined
2 Oct 2004
Posts
4,362
Location
N.W London
hey guys,

thanks for your recommendation.

the android app I am developing is for a charity so I need to keep hosting costs to a minimum if possible...

I will have around 11gig of data that I need to store on the server to access it 24/7 not every minute of the day mind you....

I have created a database that contains the names and weblinks of the files I am hosting using phpyMyAdmin that my app points to, in order to retrieve this data.

Will all servers work with phpMyAdmin?

Will my android app be hosted on the server itself? or is that what I pay google $25 dollars for, by which I mean when I pay them I release the APK on playstore??

Its the first time I have done this so need some clarity on hosting and on how google play works...

What I was thinking, dont know if its possible, is if I were to upload the files to a free cloud storage server and retrieve from there wouldnt my app just work the same?

Thanks for your help so far...

p.s. how much bandwidth should I aim for? I will be streaming mp3s...I just dont know how many users I will get though...whats "safe" or generally good idea for "starters" and what happens if I exceed this amount, other then the app going down? thankx
 
Last edited:
Soldato
Joined
3 Jun 2005
Posts
3,117
Location
The South
Will all servers work with phpMyAdmin?
PHPMyAdmin is just a GUI/web frontend for MySQL; so you're just after hosting that supports MySQL (ie - most linux packages).

I will have around 11gig of data
Is that 11GB within the database (MySQL) or is it 11GB flat-files?
Only mention it as it's common for there to be database size limits, it doesn't apply to every package but it's worth keeping it in mine.

Will my android app be hosted on the server itself?
The app's APK is handled by Google (or what ever app store you go for); the remote backend data the app needs is hosted and your responsibility.

.....is if I were to upload the files to a free cloud storage server and retrieve from there wouldnt my app just work the same?
Wouldn't even think about it, you'll run into bandwidth issues if the app is even remotely popular.

p.s. how much bandwidth should I aim for? I will be streaming mp3s...
'How long is a piece of string?' :p

I'd start off by looking at the amount of requested data during a users average session. But you're going to need to sample a big number of users to get any decent estimates out of it.

On past projects we've/i've always ran a closed trial of the app, not only to highlight any issues with the app (you'll always overlook bugs) but it also gives us/me a better idea of backend requirements.
When going live we'll/i keep an extremely close eye on server stats/load and optimise the backend accordingly.

I do question the use of MP3's however; OGG would be a better bet especially considering file sizes and in-turn bandwidth usage (you also want to be reducing the number of audio channels, ie - use mono, where possible).
Similarly i would also be employing some form of caching of the data, especially audio, on the app's devices to reduce backend load.

the android app I am developing is for a charity so I need to keep hosting costs to a minimum if possible...
Not to sound like an a******e but obviously this should have all been sorted (backend providers, specs, costings, contingencies especially how that affects costs) during the specification/proposal stage of the project as it helps with project development (especially when the budget is an issue) but it also saves your bacon from voidable 'client shock' (surprising the client with bad news, usually money/budget/costs).

But as mentioned, look at "cloud" based hosting (AWS, Azure, Digital Ocean - can't say i've used them but they look reasonable, Google Apps/Hosting - again never used it but might be worth looking at) over dedicated hardware for flexibility.
 
Associate
Joined
18 Sep 2003
Posts
903
For the database, I'd recommend AWS RDS since you want MySQL. You can get a free "micro" server for 1 year with 20GB of storage. I don't know if a micro will be enough for you though.
 
Soldato
OP
Joined
2 Oct 2004
Posts
4,362
Location
N.W London
Thanks for all replies recieved, most grateful for your time and explanations, just need a weeeee bit more help pls:

PHPMyAdmin is just a GUI/web frontend for MySQL; so you're just after hosting that supports MySQL (ie - most linux packages).

So on the cloud server I rent, I will place MySQL database plus the 11gb flat files I have?

The app's APK is handled by Google (or what ever app store you go for); the remote backend data the app needs is hosted and your responsibility.

Does it work like this:

MyPhone --> GoogleServer (for apk) --> MyCloudServer(stores MySQL + flatfiles)

So when my app is eventually downloadable, when the listview within it is generated, it uses the "names" field from MySQL database, to display a list of names, when user clicks on the "name" it retrieves the mp3 file from MySQL database.....does this all occur between my APK on GoogleServer and MyCloudServer?

Hope that makes sense...

Not to sound like an a******e but obviously this should have all been sorted (backend providers, specs, costings, contingencies especially how that affects costs) during the specification/proposal stage of the project as it helps with project development (especially when the budget is an issue) but it also saves your bacon from voidable 'client shock' (surprising the client with bad news, usually money/budget/costs).

its all happening for free for them...Its been a steep learning curve what with functionality and now I am getting close to the end, lessons for next time for sure...

But as mentioned, look at "cloud" based hosting (AWS, Azure, Digital Ocean - can't say i've used them but they look reasonable, Google Apps/Hosting - again never used it but might be worth looking at) over dedicated hardware for flexibility.

I will research these suggestions

Thank you so much


p.s. can you clarify something else?

Whilst developing, I switch on XAMPP on my machine and the 11gb of mp3s are hosted on another external server...

So when I debug I plug my phone into the usb port and run my application from eclipse, which installs my APK on my phone. My WIFI on my phone is on.

The app opens up fine, the listview is generated and I can play mp3 files.

However if I leave my house and open my app up on my mobile phone, it opens fine, but the listview is not generated.

Is it because I am not connected to my WIFI outside so am not on the same server as localhost therefore cannot generate listview...

Hope that makes sense...

Just intrigued - thank you so much
 
Soldato
OP
Joined
2 Oct 2004
Posts
4,362
Location
N.W London
p.s. which one of these plans do you recommend for a starter app?

https://www.digitalocean.com/pricing/

I know its a never ending question but the aim of my app is to stream mp3 to a "specialist" audience.

If I monitor bandwidth I can always increase, cant I?

Each file varies in size, the largest being 200mb and the smallest being 50mb...

If for example I rented a cloud server with 2tb bandwidth does this really me if someone listened to 10x 200mb files the bandwidth is taken for that month?

I expect the bandwidth to be high on start and then to decrease at times goes by, so I assume anyway...

Please clarify if my understanding is correct?

Thank you so much
 
Last edited:
Associate
Joined
29 Apr 2004
Posts
696
p.s. which one of these plans do you recommend for a starter app?

https://www.digitalocean.com/pricing/

I know its a never ending question but the aim of my app is to stream mp3 to a "specialist" audience.

If I monitor bandwidth I can always increase, cant I?

Each file varies in size, the largest being 200mb and the smallest being 50mb...

If for example I rented a cloud server with 2tb bandwidth does this really me if someone listened to 10x 200mb files the bandwidth is taken for that month?

I expect the bandwidth to be high on start and then to decrease at times goes by, so I assume anyway...

Please clarify if my understanding is correct?

Thank you so much

I think you're mistaken 2TB for 2GB.
10 x 200mb would be around 2 GB of bandwidth.

So with 2TB I guess you'd get around 10,000 'listens'
 
Soldato
OP
Joined
2 Oct 2004
Posts
4,362
Location
N.W London
I think you're mistaken 2TB for 2GB.
10 x 200mb would be around 2 GB of bandwidth.

So with 2TB I guess you'd get around 10,000 'listens'

it does say 2tb bandwidth on their site, check out below link in my post...

oh really that many? so it doesnt matter on the size of file, its more the bitrate?

how did you reach 10000 listens?
 
Soldato
Joined
3 Jun 2005
Posts
3,117
Location
The South
So on the cloud server I rent, I will place MySQL database plus the 11gb flat files I have?
Correct; the server hosts the database and files.

Does it work like this:
No, the user downloads and installs the app to their device. The app then 'connects' directly to your server.

However, for security i wouldn't use MySQL connections within the app; rather have some form of secure middle-layer/api that does all of the parsing of data between the database and app.

Is it because I am not connected to my WIFI outside so am not on the same server as localhost...
Yup, you'll need to host the database externally.



You can try Godaddy. I use this previous 10 years.
Personally, i wouldn't touch them with a barge pole.
 
Soldato
OP
Joined
2 Oct 2004
Posts
4,362
Location
N.W London
Ahh I see now (so I think)

Thank you so much for your help

As I use XAMPP , phpmyadmin as front end GUI for MySql were would my database be buried in XAMPP, in which folder in XAMPP??

Can I just copy and paste it onto my cloud server?

I use JSON to parse the data so I believe its secure as I use PHP to connect to my database you have to with android, you cannot connect directly to MySQL

Thanks a lot be grateful for the answers to the above

Cheers
 
Soldato
Joined
3 Jun 2005
Posts
3,117
Location
The South
As I use XAMPP , phpmyadmin as front end GUI for MySql were would my database be buried in XAMPP, in which folder in XAMPP??

Technically it's buried within files but you'd export the database, either via PHPMyAdmin or command line (it's worth reading up on MySQL command line usage; when you start dealing with large databases, web frontends don't cut it) and then import, again PHPMyAdmin or command line, into MySQL on your hosted server.

I use JSON to parse the data so I believe its secure as I use PHP to connect to my database you have to with android, you cannot connect directly to MySQL.
Sounds like you're on the right track, obviously make sure the permissions for the DB used by your JSON/PHP 'middle-layer' are locked-downed as much as possible and sanitise any data from the app if your parsing it to the DB.
Likewise, employ authentication and/or encrypted connections where needed (ie - when handling personal user data etc).
 
Soldato
OP
Joined
2 Oct 2004
Posts
4,362
Location
N.W London
Awesome thank you so much

Re: exporting database from XAMPP and importing onto my server, I take it to do this my rented server should support SQL so I can import my database onto it probably using its control panel or something similar??

Thanks again for all your help
 
Soldato
Joined
3 Jun 2005
Posts
3,117
Location
The South
....I take it to do this my rented server should support SQL ....

MySQL, yes. If your host uses cPanel/Plesk or similar then you'll probably have PHPMyAdmin, in which case just use the import feature. Otherwise you'll have some form of GUI frontend for MySQL within your hosting control panel.
As mentioned, if you need to import large amounts of data into MySQL (and you've got SSH access to your hosting) then it's worth doing it via command line as most GUI's have difficulties handling large file sizes/data sets.
 
Soldato
OP
Joined
2 Oct 2004
Posts
4,362
Location
N.W London
thanks for your reply

I went into PhpMyAdmin and exported my database as SQL file. Its now sitting on my desktop.

So presumably I have to import that SQL file on my rented server either using PhpMyAdmin or whatever they use?

So my android app will then connect to that server? because currently my app points to the XAMPP localhost IP address. So by changing the IP address in my android app it will connect to my database and then populate my listview?

I believe thats right???

cheers mate so appreciate your help thanks a lot
 
Last edited:
Back
Top Bottom