본문 바로가기

기타 개발팁

라라벨 프로젝트 AWS Elastic Beanstalk을 이용해서 배포 환경 만들기

라라벨 프로젝트 샘플 하나를 정해서 진행해봄.

github.com/rappasoft/laravel-boilerplate

 

rappasoft/laravel-boilerplate

The Laravel Boilerplate Project - https://laravel-boilerplate.com - rappasoft/laravel-boilerplate

github.com

$ git clone https://github.com/rappasoft/laravel-boilerplate.git my-project

$ cd my-project

$ cp .env.example .env

.env 파일 로컬 db 환경에 맞게 수정

$ composer install

$ npm install

$ php artisan key:generate

$ php artisan migrate

$ php artisan db:seed

$ npm run dev

$ php artisan storage:link

개발 서버에서 테스트 해보려면

$ php artisan serve --host 0.0.0.0 --port 8000  

완전 로컬로 접속하는 경우는 --host 0.0.0.0 필요없음.

 

aws console 에서 elastic beanstalk 앱과 환경 2개 (dev , prod)를 생성한다.

aws console 에서 RDS를 하나 생성한다. (aurora나 mysql 등)

라라벨은 nginx에서는 라우팅 추가설정이 필요하므로, eb구성에서 apache로 선택하면 더 편하다.

db는 외부별도 RDS를 만들었으므로 eb에서는 db구성을 하지 않는다.

문서root 는 반드시 /public 으로 해야 라라벨이 정상 작동한다. 

 

IAM 설정, 보안그룹 설정 등을 잘 해준다. 

 

mysqldump로 db.sql 파일을 만들고, RDS에 스키마를 dev와 prod로 각각 생성해서 import해준다.

 

소스 파일 전체를 zip으로 압축한다.

$ zip ../my-project.zip -r * .[^.]* -x "vendor/*"

그리고 eb 환경 화면에서 직접 업로드 해서 올려준다.

ebcli를 통해서 eb deploy 를 해도 되지만, 맨 처음에는 .env 포함 여러 구성파일들을 올려놔야 하므로

.gitignore 도 수정해야 하는 등 번거로움이 있으니 맨 처음에는 .zip을 업로드 하는 것이 편한 것 같다.

 

$ eb init

으로 세팅해주고

$ git init

$ git add .

$ git commit -m "처음 커밋" 

등으로 커밋을 해주고 deploy를 해야 변경 소스 등이 반영 된다.

$ eb deploy