Github에서 AWS Elastic Beanstalk로 Rails 앱 배포
이 자습서에서는 aws 계정이 필요하므로 amazon으로 이동하여 계정이 없는 경우 계정을 만들고 계정이 있는 경우 로그인하십시오.
설정 레일 앱
작은 레일 앱을 빠르게 설정해 보겠습니다. 나는 게으르기 때문에 이것은 rails API가 될 것이고 우리는 데이터베이스로 postgres를 사용할 것입니다.
참고: Rails 앱을 이미 생성한 경우 이 부분의 데이터베이스 구성 섹션을 설정할 수 있습니다skip.
애플리케이션 만들기
다음을 사용하여 새 레일스 앱을 만듭니다.
rails new tuts-api --api --database=postgresql
cd tuts-api
포스트 발판을 생성합시다
rails g scaffold Post
이는 다음을 생성해야 합니다.
create_posts 마이그레이션 파일에서 다음을 추가하십시오.
t.string :title
t.string :description
마이그레이션 실행
db 설정 및 마이그레이션 실행
rails db:create && rails db:migrate
posts_controller에서 다음을 변경하십시오.
def post_params
params.fetch(:post, {}).permit(:title, :description)
end
에게
def post_params
params.require(:post).permit(:title, :description)
end
database.yml 구성 설정
로컬 환경으로 이동하여 database.yml 파일로 이동합니다.
프로덕션 섹션을 다음과 같이 변경합니다.
Github
Github에 커밋 및 푸시 추가
지금은 Rails 부분이 끝났습니다.
Elastic Beanstalk 애플리케이션 생성
이제 귀하의 aws console로 이동하십시오.
새 응용 프로그램 만들기를 클릭하십시오.
환경 변수 설정
소프트웨어 섹션에서 편집을 클릭합니다.
환경 속성까지 아래로 스크롤
RAILS_ENV를 프로덕션으로 설정
노트북에서 rails 앱으로 이동하여 터미널에서 rake secret을 사용하여 비밀을 생성합니다.
값을 복사하고 환경 속성에서 SECRET_KEY_BASE로 설정합니다.
구하다
Postgres 데이터베이스 추가
다음으로 데이터베이스를 구성하겠습니다.
데이터베이스 섹션까지 아래로 스크롤하고 편집을 클릭합니다.
Postgres를 데이터베이스 엔진으로 선택
데이터베이스 사용자 이름과 암호를 설정한 다음 저장
이제 앱 만들기를 클릭하여 애플리케이션을 만듭니다. 이렇게 하면 EC2 인스턴스, RDS 인스턴스 및 기타 항목이 생성됩니다. 10분 정도 소요될 테니 빨리 술을 마시자, 그럴 자격이 있다.
확인! 우리의 응용 프로그램과 환경은 지금까지 완료되어야 합니다. github 저장소를 응용 프로그램 환경에 연결하겠습니다.
github로 배포
codepipeline 서비스로 이동하여 새 파이프라인 생성
파이프라인 이름 설정 후 다음
소스 공급자로 Github를 선택하고 github 계정을 연결합니다. 리포지토리와 원하는 브랜치를 선택한 후 다음을 선택합니다. (빌드 단계를 건너뜁니다.)
배포 공급자로 AWS Elastic Beanstalk를 선택하고 애플리케이션 이름과 애플리케이션 환경을 다음과 같이 선택합니다.
다음을 클릭한 다음 파이프라인 생성을 클릭합니다. 이렇게 하면 github 소스 코드가 애플리케이션 환경에 배포되고 마스터에 대한 후속 커밋도 배포됩니다.
애플리케이션으로 돌아가서 애플리케이션 URL을 가져오고 Postman 또는 curl을 사용하여 테스트할 수 있습니다.
내 소스 코드를 찾을 수 있습니다here.
Reference
이 문제에 관하여(Github에서 AWS Elastic Beanstalk로 Rails 앱 배포), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/sname/deploy-rails-app-from-github-to-aws-4kk0텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)