DevOps

· DevOps/AWS
1. RDS DB 생성 1. 데이터베이스 생성 방식은 표준 생성으로 선택 2. 엔진 옵션은 MySQL로 선택 3. 템플릿은 프리티어로 선택 4. DB 이름, 사용자 이름, 암호 설정 5. 연결 설정에서 퍼블릭 액세스 기능을 가능하게 하고 새 보안 그룹 생성하기 6. 추가 구성 설정에서 초기 데이터베이스 이름 설정하기 2. RDS 인바운드 규칙 설정 1. RDS를 클릭해서 보안 그룹으로 이동하고 인바운드 규칙 편집 버튼을 클릭한다. 2. 인바운드 규칙을 추가한다. 유형: MYSQL/Aurora 돋보기: EC2 인스턴스 보안 그룹 3. RDS 접속 테스트 MySQL 워크벤치를 통해 연결을 테스트한다. Hostname: RDS 인스턴스의 엔드포인트 Username: 마스터 사용자 이름 Password: 마스터..
· DevOps/AWS
6. Github Action 워크플로우 작성 프로젝트를 빌드한 후 AWS S3 버킷에 푸시 후 CodeDeploy를 수행한다. name: Build and Deploy Spring Boot to AWS EC2 # main 브랜치에 푸쉬 했을 때 on: push: branches: [ main ] # 리전, s3 버킷 이름, CodeDeploy 앱 이름, CodeDeploy 배포 그룹 이름 env: AWS_REGION: ap-northeast-2 S3_BUCKET_NAME: my-github-action-s3-bucket-i-0108286cf8acc8920 CODE_DEPLOY_APPLICATION_NAME: my-codedeploy-test CODE_DEPLOY_DEPLOYMENT_GROUP_NAME:..
· DevOps/AWS
매번 build를 하고, 빌드된 jar파일을 EC2 서버에 접근해서 올리는 작업은 번거롭기 때문에 GithubAction, CodeDeploy를 통해 배포 자동화를 설정한다. 한 번 설정해두면 번거로운 작업이 사라지게 되어서 개발에만 집중할 수 있다. 구축할 파이프라인의 진행할 순서를 간단하게 요약하면 다음과 같다. Github에 코드를 Push하면 Github Action이 자동으로 실행되며 빌드&테스트를 한다.(CI) 문제가 없다면 압축파일(.zip)을 만들어서 AWS S3에 업로드한다. CodeDeploy를 실행하여 S3에 있는 코드를 EC2에 배포한다. 1. IAM 설정 셋팅 Github Action이 S3와 CodeDeploy에 접근하기 위해 해당 권한을 가지는 IAM 사용자 계정을 생성한다. ..
· DevOps/AWS
AWS EC2 인스턴스는 서버를 중지하고 다시 실행시키면 퍼블릭 IP가 변경되기 때문에 클라이언트가 사용할 수 있는 변하지 않는 IP가 필요하다. 즉, 탄력적 IP란 외부에서 인스턴스에 접근 가능한 고정 IP이다. 탄력적 IP는 만들어놓고 EC2에 연결해두지 않으면 과금으로 이어진다는 점을 주의해야 한다. 현재 생성된 EC2 인스턴스 세부 정보를 확인하면 탄력적 IP 주소란은 비어있으며 퍼블릭 IP 주소만 할당되어 있다. 1. 탄력적 IP 생성 좌측 메뉴바 - 네트워크 및 보안 - 탄력적 IP로 이동하고 탄력적 IP 주소 할당 버튼을 클릭한다. 변경사항 없이 할당 버튼을 클릭한다. 2. 탄력적 IP 연결 방금 생성한 탄력적 IP를 선택하여 탄력적 IP 주소 연결을 시도햔다. 연결할 EC2 인스턴스와 인스..
· DevOps/AWS
1. 개인키 위치 변경 인스턴스를 생성할 때 다운받았던 개인키를 [사용자계정]/.ssh/ 으로 옮긴다. mv [개인키 경로] [사용자계정]/.ssh/ 2. 최소 권한 설정 SSH로 접속하기 위해 키에 대한 읽기 권한만 설정하여 최소 권한을 줄 수 있도록 한다. chmod 400 [개인키 경로] 설정 전과 설정 후를 비교하면 다음과 같다. 3. 인스턴스 접속 ssh -i [개인키 경로] [hostname]@[퍼블릭 IPv4 address] 명령어를 입력하면 성립된 키가 아니라는 경고문이 뜬다. 이는 리눅스나 맥에서 SSH를 이용하여 타 시스템 최초 접근 시 뜨는 경고문이다. "Are you sure you want to continue connecting (yes/no)?" 질문에 yes를 입력한 이후에는..
· DevOps/AWS
본 실습은 AWS EC2 인스턴스 환경에서 진행된다. 1. MySQL 패키지 설치 sudo apt-get install mysql-server 2. PHP 패키지 설치 sudo apt install php-fpm php-mysql php-fpm은 PHP FastCGI Process Manager의 약자이다. FastCGI는 CGI보다 좀 더 빠른 버전이라고 할 수 있다. CGI는 요청할 때마다 새로운 프로세스 생성하여 구동하는 반면, FastCGI는 요청할 때마다 이미 생성한 프로세스를 재활용하는 방법을 사용한다. 때문에 처리가 빠르다는 장점이 있다. apache의 경우에는 apache용 php 모듈이 자체적으로 처리하게 되어 있지만, nginx에는 그러한 모듈이 없기 때문에 php-fpm를 따로 설치해..
· DevOps/AWS
1. EC2 인스턴스 접속 ssh -i [개인키 경로] [hostname]@[퍼블릭 IPv4 주소] 2. Root 권한으로 변경 sudo su 3. apt-get update apt-get update 4. nginx 설치 apt-get install nginx 5. nginx 시작 service nginx start 6. 인바운드 규칙 추가 웹에서 접속하기 위해 사용하는 인스턴스에 해당하는 보안 그룹에 인바운드 규칙을 추가한다. 7. nginx 서버 접근 인스턴스의 퍼블릭IPv4 주소를 통해 접속이 가능하다.
· DevOps/AWS
+) 리전(Region) 선택 시작 전, 인스턴스를 생성할 리전을 선택해야 한다. AWS 서버는 전 세계 곳곳에 있기 때문에 어느 곳에 있는 서버를 사용할 지에 대한 리전 정보를 선택한다. 우측 상단의 계정 정보 바로 왼쪽에서 리전을 선택할 수 있다. 현재 대한민국에 거주하고 있기에, 서울을 선택했다. EC2 인스턴스 생성 시작 본격적으로 인스턴스 생성을 시작해보겠다. 1. EC2 인스턴스 시작 좌측 메뉴바에서 인스턴스를 클릭하여 인스턴스 메뉴로 이동하고 인스턴스 시작 버튼을 클릭한다. 2. AMI 선택 프리티어가 사용 가능한 운영체제 중 ubuntu를 선택해준다. 3. 인스턴스 유형 선택 프리티어가 사용 가능한 인스턴스 유형은 t2.micro 뿐이다. 4. 키 페어 생성 EC2 인스턴스에 접근하기 위해..
jyjyjy25
'DevOps' 카테고리의 글 목록