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

0%

AWS Elastic Beanstalk 배포 - 6

EB CLI 로 사이트 배포하기


지난 포스팅까지, Elastic Beanstalk 에 배포를 위한 기본 설정과, Elastic Beanstalk 를 위한 추가 설정까지 마쳤습니다 (ebextensions 폴더 생성후, django.config 파일 생성 완료)


Elastic Beanstalk 에 사이트를 배포할 준비가 다 되었습니다.


프로젝트 디렉토리는 아래와 같은 구조로 되어 있습니다.


1
2
3
4
5
6
7
8
9
(eb_env)  dhkang  ~/elastic_beanstalk/ebdjango  l
total 24K
drwxr-xr-x 4 dhkang dhkang 4.0K 9월 24 13:09 .
drwxr-xr-x 5 dhkang dhkang 4.0K 9월 24 12:52 ..
-rw-r--r-- 1 dhkang dhkang 0 9월 24 12:55 db.sqlite3
drwxr-xr-x 3 dhkang dhkang 4.0K 9월 24 12:55 ebdjango
drwxr-xr-x 2 dhkang dhkang 4.0K 9월 24 13:12 .ebextensions
-rwxr-xr-x 1 dhkang dhkang 540 9월 24 12:52 manage.py
-rw-r--r-- 1 dhkang dhkang 27 9월 24 13:06 requirements.txt

자 이제, 어플리케이션 환경을 생성하고, 설정된 어플리케이션을, Elastic Beanstalk 로 배포합니다.


EB CLI 를 사용하여, 배포하기 위해 아래 순서대로 진행 해 봅니다



eb init 으로 EB CLI 레포지토리 시작하기


로컬 컴퓨터의 프로젝트 폴더에서, 아래 명령어를 실행하여 EB CLI 레포지토리를 시작해 줍니다.


1
(eb_env)  dhkang  ~/elastic_beanstalk/ebdjango  eb init -i -p python-3.6 django-tutorial

-i 옵션을 사용하여, 지역을 선택할수 있습니다.



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
(eb_env)  dhkang  ~/elastic_beanstalk/ebdjango  eb init -i -p python-3.6 django-tutorial

Select a default region
1) us-east-1 : US East (N. Virginia)
2) us-west-1 : US West (N. California)
3) us-west-2 : US West (Oregon)
4) eu-west-1 : EU (Ireland)
5) eu-central-1 : EU (Frankfurt)
6) ap-south-1 : Asia Pacific (Mumbai)
7) ap-southeast-1 : Asia Pacific (Singapore)
8) ap-southeast-2 : Asia Pacific (Sydney)
9) ap-northeast-1 : Asia Pacific (Tokyo)

(default is 3): 8

Application django-tutorial has been created.
Do you want to set up SSH for your instances?
(Y/n): Y

Select a keypair.
1) elastic_beanstalk
2) [ Create new KeyPair ]

2번을 눌러줘 봅니다.


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
Select a keypair.
1) aws-eb
2) [ Create new KeyPair ]
(default is 1): 2


Type a keypair name.
(Default is aws-eb2):
Generating public/private rsa key pair.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/werwre/.ssh/aws-eb.
Your public key has been saved in /home/dfdfefe/.ssh/aws-eb.pub.
The key fingerprint is:
SHA256:dfeg+3ih82hi2hkfn292/12323dfsdf aws-eb
The key's randomart image is:
+---[RSA 2048]----+
| |
| .abc |
| 44455.o+. |
| ##.o+o .23 |
| #@$.So. . |
| # + *o.. |
| E!@#@1###.+ |
| .o*+@#!$!.=o# |
| #######+=.o#. |
+----[SHA256]-----+
WARNING: Uploaded SSH public key for "aws-eb" into EC2 for region ap-southeast-2.

eb create 를 사용하여 환경을 생성


eb create 명령어를 사용하여, 배포 환경을 생성해 줍니다.

환경명은 django-env 입니다.


1
(eb_env)  dhkang  ~/elastic_beanstalk/ebdjango  eb create django-env

시간이 좀 걸리는데, 작업을 다 마치고 나면, 아래와 같이 환경이 생성된것을 확인할수 있습니다.


1
2
3
4
g-stack-AWSEBCloudwatchAlarmHigh-1GEUR7I1T33QF
2020-09-24 08:00:08 INFO Created CloudWatch alarm named: awseb-e-cizji5shhg-stack-AWSEBCloudwatchAlarmLow-6M9MHE521DWB
2020-09-24 08:00:36 INFO Application available at django-env.eba-taamyy5q.ap-southeast-2.elasticbeanstalk.com.
2020-09-24 08:00:36 INFO Successfully launched environment: django-env


eb status 명령어로 도메인 명을 확인


1
2
3
4
5
6
7
8
9
10
11
12
(eb_env)  dhkang  ~/elastic_beanstalk/ebdjango  eb status
Environment details for: django-env
Application name: django-tutorial
Region: ap-southeast-2
Deployed Version: app-200924_165824
Environment ID: e-cizji5shhg
Platform: arn:aws:elasticbeanstalk:ap-southeast-2::platform/Python 3.6 running on 64bit Amazon Linux/2.9.14
Tier: WebServer-Standard-1.0
CNAME: django-env.eba-taamyy5q.ap-southeast-2.elasticbeanstalk.com
Updated: 2020-09-24 08:00:36.586000+00:00
Status: Ready
Health: Green



Django settings.py 파일 수정하기


Django 앱의 settings.py 파일 안에, ALLOWED_HOSTS에, CNAME 으로 표시된 도메인명을 넣어줍니다.


1
2
3
4
5
# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = True

ALLOWED_HOSTS = ['django-env.eba-taamyy5q.ap-southeast-2.elasticbeanstalk.com
']

eb deploy 로 배포 진행


1
2
3
4
5
6
7
(eb_env)  dhkang  ~/elastic_beanstalk/ebdjango  eb deploy
Creating application version archive "app-200924_170655".
Uploading django-tutorial/app-200924_170655.zip to S3. This may take a while.
Upload Complete.
2020-09-24 08:06:56 INFO Environment update is starting.
2020-09-24 08:07:36 INFO Deploying new version to instance(s).
-- Events -- (safe to Ctrl+C) Use "eb abort" to cancel the command.




eb open 명령어를 사용하여, 웹사이트 실행


eb open 명령어를 사용하여, 사이트를 열어봅니다.


터미널에서 명령어를 실행하면, 자동으로 브라우저가 열리고. Django 앱이 실행됩니다.


아래와 같은 화면을 보면, 성공입니다.