Hi guys!

I'm sharing to you the steps in migrating your Arches server from AWS to 
Microsoft Azure. I must admit the whole migration was pretty hard, since 
AWS doesn't allow you to export your Linux EC2 instances to another cloud 
provider. But after weeks of trial and error, I'm finally able to migrate 
it completely. :)

These steps will work, assuming your Arches is installed on an Ubuntu 
server running on an EC2 instance, and you're using S3 for your image and 
file storage.

1.) Launch an Ubuntu 14.04 LTS virtual machine on your Azure portal. Make 
sure your virtual machine has the same security group settings that you 
have on your AWS EC2 instance.

2.) Log in to your Ubuntu server, then create your root password 
sudo passwd root

To allow remote login using root, you also need to edit the file 
/etc/ssh/sshd_config, and comment out the following line:
PermitRootLogin without-password 

Just below it, add the following line:
PermitRootLogin yes 

Save the file, then restart SSH:
service ssh restart

3.) Create an Azure storage account, then launch an Azure storage 
container. Once you created the container, get the Azure container name and 
access key, which you will use on step #5.

4.) Get your AWS Access Key ID and Secret Access Key from your AWS 
Console's IAM, which you will use on step #5.

5.) Migrate your AWS S3 bucket to the new Azure storage container using 
Flexify.io. Create a free account on Flexify, then launch a migration task. 
I was able to migrate all my files totalling 6.5GB in just about 20 minutes.

6.) Start the server migration process from AWS EC2 to Azure using a custom 
rsync shell script. Follow the pretty straightforward steps from this link 
here: https://cloudnull.io/2012/07/cloud-server-migration (Go to the 
section that says *Migrate using RSYNC The Easy Way *and follow the steps 
there). After the migration, the new server will automatically reboot 
itself.

*Note: the rsync shell script uses Rackspace directory defaults, but it 
worked pretty fine on me, so just hit ENTER to continue when you're 
prompted to apply the default*

7.) Login to the new server, then restart Elasticsearch and Apache. By this 
point, your new server is now hosting Arches, and you can already open 
Arches on your browser. However it's still pointing to the old S3 bucket.

8.) Install the django-storages-redux by following the steps from here: 
https://github.com/schumannd/django-storages. This is a forked 
django-storages package, because the original django-storages has seen no 
commit applied since March 2014, and there were errors on the AzureStorage 
library.

9.) Comment out the AWS variables on settings.py and instead add these 
variables:

DEFAULT_FILE_STORAGE = 'storages.backends.azure_storage.AzureStorage'
AZURE_ACCOUNT_NAME = '<your Azure account name>'
AZURE_ACCOUNT_KEY = '<your Azure access key>'
AZURE_CONTAINER = '<your container name>'
MEDIA_URL = '<the URL of your Azure container, which is normally 
https://your_azure_account_name.blob.core.windows.net/your_azure_container>'

10.) Save your settings.py file, then restart your Apache server. 

*And you're done! *You can now point your domain to the new Azure virtual 
machine and start decommissioning your AWS resources.

If there's any problem you're encountering, please let me know here and I'd 
be happy to help!

Special thanks to Adam Cox for helping me out on some parts of this 
migration process!

Regards, 

Joel

-- 
-- To post, send email to archesproject@googlegroups.com. To unsubscribe, send 
email to archesproject+unsubscr...@googlegroups.com. For more information, 
visit https://groups.google.com/d/forum/archesproject?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"Arches Project" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to archesproject+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to