우선 간단히 Beanstalk에 대해 다시 되짚고 넘어가도록 하겠습니다.
AWS Elastic Beanstalk특징
- 빠르고 간단하게 서버 구성 : 배포 과정을 Elasitc Beanstalk에서 처리하기 때문에 코드를 업로드하면 배포부터 EC2, 로드밸런싱, 오토 스케일링, 모니터링 설정을 Elastic Beanstalk 한곳에서 할 수 있고, 이후 과정을 Elastic Beanstalk가 자동으로 처리합니다
Elastic Beanstalk은 크게 Application(앱), Environment(환경)으로 이루어 집니다. 어떠한 앱과, 이 앱이 돌아가는 환경으로 크게 이루어 집니다. 또한 하나의 어플리케이션이 여러개의 환경을 가질 수 있습니다.
바로 실습을 통해서 알아보겠습니다.
실습
바로 ubuntu상에서 명령어 콘솔을 이용하여 AWS EB를 통해 어플리케이션과 환경을 구축해서 자동배포를 간단히 하는 과정을 진행해 보겠습니다.
https://docs.aws.amazon.com/ko_kr/elasticbeanstalk/latest/dg/create-deploy-python-django.html
https://docs.aws.amazon.com/ko_kr/elasticbeanstalk/latest/dg/eb-cli3-install-linux.html
우선 이 공식문서를 참조해서 작성해도록 하겠습니다.
이 실습을 진행하기 위해서는 Python 3.7이상, pip, virtualenv, awsebcli가 필요합니다. 이를 설치해 주겠습니다.
$ sudo apt update
$ sudo apt-get install python
$ sudo apt-get install pip3-python
$ sudo apt-get install python3-virtualenv
# pip 및 EB CLI를 설치하려면
$ curl -O https://bootstrap.pypa.io/get-pip.py
$ python3 get-pip.py --user
$ export PATH=$PATH:/opt/aws/eb/linux/python2.7/
$ export PATH=~/.local/bin:$PATH
$ pip install awsebcli --upgrade --user
$ eb --version
EB CLI 3.14.8 (Python 3.7)
이 과정을 천천히 해주면 사전준비는 끝난 겁니다.
그다음에는 awsebcli 자격 증명을 진행해 주겠습니다.
~/.aws/config
[profile eb-cli]
aws_access_key_id = XXXXXXXXXXXXX
aws_secret_access_key = XXXXXXXXXXXX
이를 통해 EB안에서 Django프로젝트를 생성해 보도록 하겠습니다.
~$ source ~/eb-virt/bin/activate
(eb-virt) ~$
(eb-virt)~$ django-admin startproject ebdjango
(eb-virt) ~$ cd ebdjango
(eb-virt) ~/ebdjango$ python manage.py runserver
~/ebdjango$ source ~/eb-virt/bin/activate
~/ebdjango$ eb init
~/ebdjango$ eb create django1-env
~/ebdjango$ eb status
Environment details for: django-env
Application name: django-tutorial
...
CNAME: eb-django-app-dev.elasticbeanstalk.com
...
# settings.py
ALLOWED_HOSTS = ['eb-django-app-dev.elasticbeanstalk.com']
~/ebdjango$ eb deploy
이 모든 과정을 거치고 나면 아래와 같은 GUI를 AWS BeanStalk에서 확인하실 수 있습니다.
이제 위에서 확인한 url로 들어가서 잘 배포되었나 확인해 보겠습니다.
이렇게 편하게 EC2를 관리하지 않고도 Beanstalk으로도 쉽게 배포할 수 있는 파이프라인을 구축할 수 있습니다.
다음에는 최종적으로 AWS CodePipeline을 활용해 CD파이프라인을 구축해 보도록 하겠습니다.
'DevOps > AWS Architecture' 카테고리의 다른 글
[ DevOps ] - codepipeline 구성하기 (deploy + build) (0) | 2022.07.17 |
---|---|
[ DevOps ] - AWS 기반 대규모 아키텍트 설계 - (인프라) AWS Code Pipeline을 활용한 CD 파이프라인 구축 (0) | 2022.07.12 |
[ DevOps ] - AWS 기반 대규모 아키텍트 설계 - (인프라) 코드 테스트 파이프라인 구축 (0) | 2022.07.12 |
[ DevOps ] - AWS 기반 대규모 아키텍트 설계 - AWS CodePipeline을 활용한 CI CD개요 (0) | 2022.07.12 |
[ DevOps ] - AWS 기반 대규모 아키텍트 설계 - (인프라) 마이크로 아키텍처 개발 시 문제점들 (0) | 2022.07.12 |