당신은 멋쟁이, 우리는 장고쟁이~

0%

AWS Elastic Beanstalk 배포 - 3

배포전 환경설정


Elastic Beanstalk 에 Django 애플리케이션을 배포하기 위해서 필요한 환경 설정들이 몇가지 있습니다.


배포 작업을 진행하기 전에, 로컬 컴퓨터에서 배포를 위한 설정들을 하나씩 해주고.


Django 어플리케이션을 Elastic Beanstalk 에 배포하도록 할겁니다.


AWS Elastic Beanstalk 주요 환경


  • AWS 계정
  • Python 3.6
  • pip
  • virtualenv
  • awsebcli
  • Django 2.1.1

Django 버전은,

Elastic Beanstalk Python 구성 버전과 호환 되어야 합니다

Django 2.2 는 Elastic Beanstalk Python 3.6 플랫폼과 호환되지 않으므로

Django2.1.1 을 기반으로 한 프로젝트 실습을 진행 합니다.



파이썬 3.6 가상환경 생성 부터 진행해 봅니다 (ubuntu18.04)


Python 3.6 가상환경 생성


실습을 위해, 로컬 컴퓨터에 Elastic_beanstalk 라는 디렉토릴를 하나 만들어 줍니다.


해당 디렉토리로 이동하여, 파이썬 가상환경 하나를 만들어 줍니다.


1
2
mkdir elastic_beanstalk 
cd elastic_beanstalk

virtualenv 가 로컬 컴퓨터에 제대로 설치 되어 있다는 전제하에,

elastic_beanstalk 디렉토리 안에서 아래 명령어를 실행하여,

Python3.6 으로 된 가상환경을 생성해 줍니다.



참고로, virtualenv 를 시스템에 설치하려면,

pip install virtualenv 명령어를 실행하여 설치할수 있습니다.



해당 디렉토리에서, virtualenv -p python3.6 eb_env 명령어를 실행하여, 환경명이 eb_env이고 Python 3.6 으로 된 가상환경을 하나 생성해 줍니다.


1
2
3
4
5
6
7
8
9
 dhkang  ~/elastic_beanstalk  virtualenv -p python3.6 eb_env                 
created virtual environment CPython3.6.9.final.0-64 in 294ms
creator CPython3Posix(dest=/home/dhkang/elastic_beanstalk/eb_env, clear=False, global=False)
seeder FromAppData(download=False, pip=bundle, setuptools=bundle, wheel=bundle, via=copy, app_data_dir=/home/dhkang/.local/share/virtualenv)
added seed packages: pip==20.2.2, setuptools==49.6.0, wheel==0.35.1
activators BashActivator,CShellActivator,FishActivator,PowerShellActivator,PythonActivator,XonshActivator

dhkang  ~/elastic_beanstalk  ls
eb_env

환경이 생성되면, eb_env라는 가상환경 폴더가 생성됩니다.


생성된 가상환경은, 해당 폴더에서, 아래 명령어를 실행하여 시작할수 있습니다.


1
source eb_env/bin/activate

커맨드라인 맨 앞에, 가상환경명이 (eb_env) 로 표시가 된다면, 가상환경 실행이 잘 된것입니다.


1
2
3
eb_env
dhkang  ~/elastic_beanstalk  source eb_env/bin/activate
(eb_env) dhkang  ~/elastic_beanstalk 

EB CLI 설치 (awsebcli)


아래 링크를 참조하여, awsebcli 를 시스템에 설치해 줍니다.


https://github.com/aws/aws-elastic-beanstalk-cli-setup


우분투 18.04 기준으로,

터미널에서, 아래 명령어를 실행하여, awsebcli 를 설치ㅏ기 위한 git을 클론해줍니다.

1
dhkang  ~  git clone https://github.com/aws/aws-elastic-beanstalk-cli-setup.git

1
dhkang  ~  ./aws-elastic-beanstalk-cli-setup/scripts/bundled_installer

인스톨 작업을 시작하고, 작업이 끝나면, 아래와 같은 화면이 나타납니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
***********************
4. Creating EB wrappers
***********************

***************
5. Finishing up
***************
Success!

Note: To complete installation, ensure `eb` is in PATH. You can ensure this by executing:

1. Bash:

echo 'export PATH="/home/dhkang/.ebcli-virtual-env/executables:$PATH"' >> ~/.bash_profile && source ~/.bash_profile

2. Zsh:

echo 'export PATH="/home/dhkang/.ebcli-virtual-env/executables:$PATH"' >> ~/.zshenv && source ~/.zshenv


- NOTE: To complete installation, ensure `python` is in PATH. You can ensure this by executing:

1. Bash:

echo 'export PATH=/home/dhkang/.pyenv/versions/3.7.2/bin:$PATH' >> /home/dhkang/.bash_profile && source /home/dhkang/.bash_profile

2. Zsh:

echo 'export PATH=/home/dhkang/.pyenv/versions/3.7.2/bin:$PATH' >> /home/dhkang/.zshrc && source /home/dhkang/.zshrc
dhkang  ~ 

인스톨을 마무리 하기 위해서, 아래 명령어들을 실행 해줍니다. (Zshell)


1
2
$ echo 'export PATH="/home/dhkang/.ebcli-virtual-env/executables:$PATH"' >> ~/.zshenv && source ~/.zshenv
$ echo 'export PATH=/home/dhkang/.pyenv/versions/3.7.2/bin:$PATH' >> /home/dhkang/.zshrc && source /home/dhkang/.zshrc

설치 확인을 위해, 터미널에서 eb 라는 명령어를 실행해 봅니다

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
 dhkang  ~  eb
usage: eb (sub-commands ...) [options ...] {arguments ...}

Welcome to the Elastic Beanstalk Command Line Interface (EB CLI).
For more information on a specific command, type "eb {cmd} --help".

commands:
abort Cancels an environment update or deployment.

optional arguments:
-h, --help show this help message and exit
--debug toggle debug output
--quiet suppress all output
-v, --verbose toggle verbose output
--profile PROFILE use a specific profile from your credential file
-r REGION, --region REGION
use a specific region
--no-verify-ssl don't verify AWS SSL certificates
--version show application/version info



Django 2.1.1 설치


아래 명령어를 실행하여, django 2.1.1 버전을 설치해줍니다.


1
pip install django==2.1.1

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
(eb_env)  dhkang  ~/elastic_beanstalk  pip install django==2.1.1
Collecting django==2.1.1
Using cached Django-2.1.1-py3-none-any.whl (7.3 MB)
Collecting pytz
Using cached pytz-2020.1-py2.py3-none-any.whl (510 kB)
Installing collected packages: pytz, django
Successfully installed django-2.1.1 pytz-2020.1
WARNING: You are using pip version 20.2.2; however, version 20.2.3 is available.
You should consider upgrading via the '/home/dhkang/elastic_beanstalk/eb_env/bin/python -m pip install --upgrade pip' command.
(eb_env) dhkang  ~/elastic_beanstalk  pip list
Package Version
---------- -------
Django 2.1.1
pip 20.2.2
pytz 2020.1
setuptools 49.6.0
wheel 0.35.1
WARNING: You are using pip version 20.2.2; however, version 20.2.3 is available.
You should consider upgrading via the '/home/dhkang/elastic_beanstalk/eb_env/bin/python -m pip install --upgrade pip' command.

이정도 까지, 로컬 컴퓨터에서 Elastic Beanstalk 배포 실습을 위한 기본 환경 설정을 마쳤습니다.