여러 회사에서 면접을 진행하며 데브옵스, 배포와 관련된 질문들을 받아왔다. 지금까지 백엔드 개발을 공부하였지만, 프로젝트 경험이 없었기 때문에 배포와 운영에 관한 경험이 많이 부족하다고 느꼈다. 그러던 중 진행중인 미니 프로젝트에서 프론트팀원과 협업을 진행하기 위해 CI/CD 적용의 필요성을 느꼈고, 가벼운 실습을 통해 사용법과 기본적인 개념들을 이해하려고 한다.
AWS console에 로그인하여 Elastic Beanstalk 서비스에 들어가게되면 우측 상단에 환경 생성이라는 버튼이 보이게 된다.
환경 생성은 환경 티어 선택 > 웹서버 환경 생성 > 환경 정보 > 플랫폼 > 애플리케이션 코드를 순서대로 입력하여 생성하게 된다.
위와 같은 설정으로 환경을 생성해주었다. 애플리케이션 이름(key: BK_appname)과 환경 이름(key: BK_envname)은 후에 사용해야하니 기억해두자.
환경을 생성하고 다시 왼쪽 메뉴의 '환경' 탭으로 이동하면 생성된 환경들을 확인할 수 있다. 생성된 환경의 URL(환경 이름.ap-northeast-2.elasticbeanstalk.com)로 접속하게 되면 아래와 같은 화면이 나오게 된다.
다음으로는 데이터베이스에 관한 환경 구성을 변경해야 한다. 왼측 메뉴의 환경관련 탭중 '구성'으로 이동하게 되면 여러 카테고리에 관한 구성을 수정할 수 있다.
그 중에 맨 아래에 있는 데이터베이스의 '편집'으로 이동하면 데이터베이스의 설정을 편집할 수 있다. 나는 현재 진행중인 프로젝트에선 MySQL을 사용중이기 때문에 해당 엔진으로 설정하였다. 또한 추후에 데이터베이스에 관한 설정에서 사용할 사용자이름과 암호를 입력하여 적용해준다. 여기서 입력한 사용자이름(key: DB_username)과 암호(key: DB_password)는 따로 기억해 둘 필요가 있다.
Beanstalk에 push하기 전 임시 저장소로 사용할 S3를 설정해야 한다. 마찬가지로 amazone s3 서비스로 이동하여 버킷을 생성해준다. 버킷 이름과 지역만 ap-northeast-2 다른 설정은 변경할 필요 없이 바로 생성하였다. 버킷의 이름(key: bucket_name)도 후에 사용해야하니 기억해두자.
마지막으로는 AWS자원의 접근 관리를 설정해주어야 한다. AWS의 IAM 콘솔로 이동하여 '사용자 추가'를 클릭하여 사용자를 생성한다.
사용자 이름을 입력하고 access 유형을 선택하여 다음 단계로 넘어간다. access 유형은 액세스 키 유형으로 선택하였다.
다음 권한 설정 페이지에서는 '기존 정책 직접 연결'을 선택한다. 정책으로는 AdministratorAccess-AWSElasticBeanstalk, AmazonS3FullAccess을 선택한다.
검증과 확인 단계를 지나 사용자를 생성하게 되면 생성된 IAM 사용자에 관한 정보가 보여진다. 이 페이지에서 생성된 액세스 키 ID(key: aws_access_key_id)와 비밀 액세스 키(key: aws_secret_access_key)를 확인할 수 있는데, 이 두 값은 후에 사용해야하니 따로 기록해두도록 하자.
여기까지 완료되었다면 AWS 설정은 완료되었다. 이 과정에서 생성된 elastic beanstalk 애플리케이션 이름(key: BK_appname), 환경 이름(key: BK_envname), DB 사용자이름(key: DB_username), 암호(key: DB_password), S3 버킷이름(key: bucket_name), 액세스 키 ID(key: aws_access_key_id)와 비밀 액세스 키(key: aws_secret_access_key)는 후에 CI/CD 파이프라인을 구축하는데 필요하니 기록해두자. 다음에는 Django 프로젝트 생성과 github actions 설정을 정리하여 포스팅해야겠다
https://dev.to/vlntsolo/django-full-ci-cd-flow-to-aws-with-github-actions-and-s3-2enp