Welcome to the LimeSurvey Community Forum

Ask the community, share ideas, and connect with other LimeSurvey users!

LimeSurvey in the cloud

More
7 years 10 months ago #137060 by shorn
LimeSurvey in the cloud was created by shorn
TL:DR;
I'm looking for advice / tips on running a LimeSurvey setup in the cloud (Amazon Web Services).
No, we can't use LimeService - for various reasons (data sovereignty legislation in my country, organisational customer data handling guidelines, etc).

----

My requirements

I'm not so interested in building a high-scale setup, nor even a zero-downtime setup (I'm a little interested in those too, but not initially). All I'm trying to do is build reliable survey functionality for the various parts of my organisation that want to run surveys (both internal and external, some with sensitive user data).

Long term, some of the surveys will actually be integrated with backend systems / business processes within the organisation (surverys for new customers, lost customers, etc.). If it goes down for a short while because some hardware died or a VM got stepped on - that's ok. Just so long as it comes back up in good shape and people can keep taking surveys.


My setup

I have a LimeSurvey installation that runs on AWS, and it seems to be functional - though some LimeSurvey features don't work yet.

My current setup is running LimeSurvey as an AWS Elastic-Beanstalk (EB) application running LimeSurvey as a docker container. It runs behind an AWS Elastic-Load-Balancer (ELB), with an AWS Auto-Scaling-Group (ASG) set up to have a minimum and maximum instance count of 1.
The ASG will bring up a single new instance of LimeSurvey if the current one goes down for whatever reason - there should never be more than one instance running at a time.
The database is an AWS Relational-Data-Store (RDS) instance of Postgres 9.5.


Stuff that works

Currently - the LimeSurvey "tmp", "upload" and "application/config" directories are all mapped onto the VM's boot disk (ephemeral - the boot disk is destroyed when the VM dies).
I believe this is Ok for tmp and config because:
  • The tmp directory should only contain temporary stuff, so that should be ok if those files suddenly disappear.
  • I treat the LimeSurvey config directory, like all the rest of the OS/Nginx/PHP configuration - changing config involves doing the config changes in a local development environment and then committing those changes to the application's source code.
    The config directory will then be overwritten with the new changes the next time the application is deployed to Elastic-Beanstalk.


Current problems
  • Uploads (images, vidoes, other files that surveys might link to)
    When the instance dies for whatever reason (or is just refreshed by me) - the upload directory gets blown away along with the rest of the VM.
    I plan to create a separate Elaastic Block Store device for the uploads directory, when a new application VM is created it will mount the block store in a defined location that LimeSurvey wis configured to use for uploads.
  • Bounce tracking
    We don't (won't) run an SMTP server on the VM. Sending emails is no problem, we use AWS Simple-Email-Service (SES) to do that but dealing with bounced email is going to be an issue.
    The current plan is to monitor incoming emails from SES and then do "something" to notify LimeSurvery of the bounced email address (either update the DB directory or use or extend the remote API if possible).
  • Moving surveys between environments
    We will have a minimum of three LimeSurvey application Elastic-Beanstalk environments running in parallel (development, user-acceptance-test and production).
    Migrating postgres databases or doing LimeSurvey export/import works well for moving data around. But the upload directory presents a problem again. As far as I can tell - there is no LimeSurvey functionality for exporting the uploaded artifacts used by a given survey - is that true or have I missed something?


Questions and future problems

The upload directory seems to be the biggest, most obvious sticking point with this whole setup - is there a way to disable the upload functionality of LimeSurvey?
I'm thinking long-term, the external artifacts for a survey should not be uploaded to LimeSurvey but should go on AWS Simple-Storage-Service (S3) - which is designed for storing and serving these kinds of things.

I'd love to hear about any pointers or help folks might be about to suggest suggest for my problem areas.
I'd also really appreciate any advice on my "unknown unknowns" - things that LimeSurvey does that are going to cause my problems that I'm not aware of yet. Features of LimeSurvey that I don't even know about that won't work with this setup?
The following user(s) said Thank You: tassoman
The topic has been locked.
More
7 years 10 months ago #137340 by shorn
Replied by shorn on topic LimeSurvey in the cloud

shorn wrote: As far as I can tell - there is no LimeSurvey functionality for exporting the uploaded artifacts used by a given survey - is that true or have I missed something?


This was incorrect. Users can export/import uploaded resources easily - the functionality is under surveyXXX/survey properties/general settings & texts/resources.
The topic has been locked.
More
7 years 10 months ago #137341 by Ben_V
Replied by Ben_V on topic LimeSurvey in the cloud
Hi,
Maybe you should send a private message to @copsrtops ... Could be great if he can provide some feedback, because there is few other posts about this topic in this forum .
=> Limesurvey and Amazon EC2 Instance Types

Benoît

EM Variables => bit.ly/1TKQyNu | EM Roadmap => bit.ly/1UTrOB4
Last Releases => 2.6x.x goo.gl/ztWfIV | 2.06/2.6.x => bit.ly/1Qv44A1
Demo Surveys => goo.gl/HuR6Xe (already included in /docs/demosurveys)
The topic has been locked.
More
4 years 10 months ago #185257 by tassoman
Replied by tassoman on topic LimeSurvey in the cloud
Anyone interested on coding some kind of Cloud Storage Plugin?

«All your survey answers are belong to us »
The topic has been locked.
  • DenisChenu
  • DenisChenu's Avatar
  • Offline
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
4 years 10 months ago #185289 by DenisChenu
Replied by DenisChenu on topic LimeSurvey in the cloud

shorn wrote: I'm looking for advice / tips on running a LimeSurvey setup in the cloud (Amazon Web Services).

OK, why not .

shorn wrote: No, we can't use LimeService - for various reasons (data sovereignty legislation in my country, organisational customer data handling guidelines, etc).

I don't understand why this reason don't apply to AWS …

The only way to get real data sovereignty is to hire a server in your country (or (better) setup a server in your company office).

Assistance on LimeSurvey forum and LimeSurvey core development are on my free time.
I'm not a LimeSurvey GmbH member, professional service on demand , plugin development .
I don't answer to private message.
The topic has been locked.
More
3 years 10 months ago #200355 by prateek0008
Replied by prateek0008 on topic LimeSurvey in the cloud
I am also facing the same issue that when the instance dies all the data inside the upload directory is lost. Please someone suggest on to handle this. If I restart the instance the data should not be lost. If someone can help me that would be very great of you.


Thanks in advance.
The topic has been locked.

Lime-years ahead

Online-surveys for every purse and purpose