본문 바로가기

개발/AWS

AWS, Django, beanstalk, Firebase 사용하기 (2) - AWSCLI EBCLI 설정, EB에서 장고 프로젝트 실행

반응형

awscli, ebcli의 cli 유저 관리
aws 웹페이지의 Security Credentials --[CDATA[]]> User설정에서 AWSElasticBeanstalkFullAccess 권한을 가진 유저를 생성할 수 있다.
내 맥의 루트 하단을 보면
/.aws
/config --[CDATA[]]> cli 실행시 유저정보, 또는 설정값
/credentials --[CDATA[]]> 유저정보
에서 awscli의 유저 정보가 관리되고 eb init, create등을 할 떄 여기에서 설정 된 기본 유저 정보로 eb를 생성하게 된다
config에 유저 정보를 하나 넣어서 관리할 수도 있지만(기본 AWS 따라하기 문서에서는 이렇게 관리된다),
여러개의 유저를 사용하고자 한다면 credentials에서 유저 정보를 관리하고 config에서는 설정값을 관리하는 형태를 더 추천한다
ex
config 내부
[default]
region=ap-northeast-2
output=json
credentials 내부
[default]
aws_access_key_id = XXXXXXXXXXXXXXXXXXX
aws_secret_access_key = XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
[user2]
aws_access_key_id = XXXXXXXXXXXXXXXXXXX
aws_secret_access_key = XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
[memoryj]
aws_access_key_id = XXXXXXXXXXXXXXXXXXX
aws_secret_access_key = XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
eb init --profile user2 와 같은 형태로 eb 커맨드를 입력할 때 프로필을 설정하면 원하는 유저로 유저 변경이 가능하다
http://docs.aws.amazon.com/ko_kr/cli/latest/userguide/cli-chap-getting-started.html
를 참고하여 보면
aws configure --profile [USERNAME]
의 명령어로 username을 설정하여 여러개의 프로필을 관리할 수 있다
.ebextensions 경로 하단에
http://docs.aws.amazon.com/ko_kr/elasticbeanstalk/latest/dg/ebextensions.html
페이지를 참고하여 설정을 해준다
개인적으로는
01_package.config 을 만들어
branch-defaults:
default:
environment: env-berrysconebear
group_suffix: null
master:
environment: env-berrySconeBear
global:
application_name: ap-northeast-2
default_ec2_keyname: berry-eb
default_platform: Python 3.4 (Preconfigured - Docker)
default_region: ap-northeast-2
profile: default
sc: null
django.config에
option_settings:
aws:elasticbeanstalk:container:python:
WSGIPath: berrysconebear/wsgi.py
NumProcesses: 4
NumThreads: 10
aws:elasticbeanstalk:application:environment:
DJANGO_SETTINGS_MODULE: berrysconebear.settings
PYTHONPATH: $PYTHONPATH
를 입력하였다.
0~9, a~z 순으로 .ebextensions 안에 있는 config을 순서대로 실행하기 때문에, 실행 순서가 중요한 세팅이 있는경우 분리하거나, 기능별로 분리하여 설정이 가능하다
장고의 settings 안의 내용에 debug를 꺼주고, AllowedHost IP를 설정한다(테스트에서는 * 로 전체를 넣고 하되 최종적으로는 최종 Host넣는다)
DEBUG = False
ALLOWED_HOSTS = ['*','127.0.0.1', 'localhost']
#3.4 파이썬 버전으로 berrysconebear application(이 애플리케이션은 beanstalk단에서의 application)을 생성한다
eb init --profile default -i
를 입력하여, 설정값을 처리해준다(처음에는 이렇게 하지만 추후 -p 로 플랫폼 버전(ex python3.4등 을 넣거나, -i 9 등으로 지역을 미리 넣는 형태로도 처리 가능)
#설정 변경경
eb config
# env-berrysconebear 라는 환경을 애플리케이션에 생성한다
eb create env-berrysconebear
#생성하는데 시간이 좀 걸리고, 다 생성한 후에 eb open이라는 명령어를 타이핑하면 페이지가 열린다
#create 할때의 추가 명령어를 보고싶으면 여기
https://docs.aws.amazon.com/ko_kr/elasticbeanstalk/latest/dg/eb3-create.html
eb list 환경 목록을 보여준다
eb use env-berrysconebear 생성한 env-berrysconebear env를 사용한다고 명시해준다
eb open 생성된 기본 페이지를 연다
추후 코드 수정 후 갱신시에는 eb deplay를 실행하면 된다
프로젝트에 git 설정을 해두었다면, git commit 이 실행하지 않은 상태의 변경점은 eb deplay를 실행하여도 갱신되지 않는다
이제 ELASTIC BEANSTALK에서 django 프로젝트가 실행되는 것을 볼 수 있다


반응형