Thanks for mentioning. Maybe I should make a more explicit statement about it. The reason why METEOR_SETTINGS are an environment variable is to provide a convenient way to put app specific settings there without having to change the codebase. (at least that's how I see it). However the METEOR_SETTINGS are json format, which I don't find a 'simple string' is often escaped like with EBS. How I work around this is to put the a file on a file storage like S3, pull it to the server and use a command like below to start meteor with it:
echo Copying env file from S3
aws s3 cp s3://<bucket-name>/production.env /var/app/current
source production.env && node main.js
I must admit that this would be easier with jenkins or CircleCi, where you simply put the env vars in export statements on your build script.