제 2과제는
빌드 -> 도커 -> ecr -> 이미지 -> codeplo -> ecs
배포전략 2개
블루그린배포 - 두개 띄워서 문제 있으면 예전걸 쳐 지움
롤링배포 - 두개 띄워서 문제 있으면 하나하나씩 예전걸 쳐 지움
s3
기본설정으로 만들기 front
ecr
기본설정으로 만들기 backend
codecommit
레포지토리 기본값으로 두개 생성 하기
IAM
에서 EC2역할 - poweruser
ec2에서 역할 연결
ec2에 ssh 접속
ssh -i "[키 이름]" ec2-user@[서버주소]
2. sudo su 권한 주기 ( 앞으로 명령어를 칠때 앞에 sudo를 안써도 되게 해준다 단, 접속할때마다 해줘야함 그냥 필요로 하면 될듯 )
3. 도커 설치 하기
sudo yum install -y docker
4. 도커실행
sudo systemctl start docker
sudo systemctl enable docker
4. 공개과제 파일 인스턴스로 가져오기
[중요] 이거 하기 전에 SSH 연결 끊어야 함 exit (윈도우에서 해야함)
scp -i "[키 이름]" "[파일]" ec2-user@[서버주소]:/home/ec2-user/cloud.zip
( 뒤에 있는 cloud.zip은 긴 파일 이름을 변경해준거임)
5. zip 파일 풀기 [ 다시 ssh 접속해서 ec2 안에서 해줘야함 ]
unzip [해당 zip파일]
6. 다시 aws ecr에서 푸쉬명령 따라서 쳐주기
sudo dnf update -y
sudo dnf install docker -y
sudo systemctl enable docker
sudo systemctl start docker
sudo usermod -aG docker $USER
backed 사전준비 끝
IAM
본인 사용자 클릭 - 보안자격증명 - HTTPS git 암호 생성 후 메모장에 잘 적어두자
codecommit - frontend
1.리포지토리 복제 명령어 복사후 ec2에 붙여넣기
안되면 git 설치 명령어 [sudo yum install git]
2.ID랑 비번 위에서 적은 메모장 그거 붙여넣기
3. [중요] 이거 하기 전에 SSH 연결 끊어야 함 exit (윈도우에서 해야함)
scp -i "[키 이름]" "배포파일" ec2-user@[서버주소]:/home/ec2-user/
4. mv 배포파일 front
mv index.html front
cd front ( 프론트 레포에서 )
5. git add .
6. git commit -m "원하는것"
7. git push origin
8. 콘솔가서 리포지토리 들어갔을때 index.html 있으면 성성공! 안되면.. 씨발을 외치자
codecommit - 파이프라인 - 시작하기 - 파이프라인 생성
아무것도 안건드리고 이름만 만들어서 다음
소스 공급자 -> codecommit -> front 고르기 -> mester
빌드 건너뛰기
배포 공급자 -> s3 -> 버킷 s3 -> 압축풀기 허용
확인하고고 생성
s3가서 확인하기
front 레포에 index.html 있으면 성공
이제 backend 해야하는게 괜찮다 그러면 시발 ECS가 필요하다 힝힝구리팡팡씨발
ver1. ECS (롤링배포전략)
1.클러스터 이름만 넣고 생성 (fargate 이미 설정 되있으니까)
2. IAM 역할 생성 ECS - service task
[문제에서 제공한 역할 제공하자 안주면.. 씨발을 외치자]
- Registry Read only (도커 올린 레포 가져오기?)
-S3 read only (버킷 레포 가져오기?)
-CloudWatchfullaccess (로그 쓰기?)
선택 후 생성
3.태스크 정의 생성
태스크 역할2개 위에서 만든거 똑같이 넣어주기
컨테이너 -1 설정
backend 아름 알아서 박고 - ecr 들어가서 이미지 URL 복붙해서 넣고 - 컨테이너 포트 8080
생성
4. EC2 - 대상그룹
IP 주소 선택 - 이름 알아서 - 프로토콜 포트 8080 설정
-상태검사 설정에서
상태검사 경로 : 문제 제공 ~ 넣으면 여기로 뜨개게 해야한다
EX) /api/hello
재정의 누르고 8080
스킵 후 만들기
5. 로드밸런서 ALB
vpc 선택 -> 서브넷 퍼블릭 두개 선택
보안그룹 생성하고 와서 적용
- 인바운드 : HTTP 0000
- 아웃바운드 : 모든 트래픽 0000
리스너 및 라우팅
80에 대상그룹 선택
생성
6. ECS 클러스터 가서 서비스 생성
-배포구성
서비스 누르고
패밀리는 아까 만든거
서비스 이름은 아무거나
원하는 태스크는 ( 고가용성이라는 단어가 나오면 4)
-네트워킹
프라이빗 두개 넣고
새 보안그룹 만들기
인바운드 : 사용자 지정 TCP 8080 0000
퍼블릭 IP 끄기
-로드밸런싱
alb 선택
컨테이너 만든거
기존 로드 밸런서 사용
기존 리스너 사용
기존 대상그룹 사용
생성
로드밸런서에서 DNS 복사 후
아까 설정한 상태경로 뒤에 추가 해서 웹에서 제대로 되는지 보자!!!
이제 cloud front와 밑에 그거 backend 네모 하면 끝임 시발~~
7. backend 작업
1.ssh 접속
2.codecommt에서 리포지토리 -> 리포지토리 복제 누르고 명령어 입력
위에서 front 할때 만든 git 자격증명 (메모장에 넣은거) 넣기
3. 공개과제 파일 인스턴스로 가져오기
[중요] 이거 하기 전에 SSH 연결 끊어야 함 exit (윈도우에서 해야함)
scp -i "[키 이름]" "[파일]" ec2-user@[서버주소]:/home/ec2-user/cloud.zip
3.backend 배포파일 복사 [대회에서 줌]
cp -r [배포파일]/* [깃클론해서만들어진 레포이름]/
[깃클론해서 만들어진 레포 경로]
5. git add .
6. git commit -m "원하는것"
7. git push origin
8. 콘솔가서 리포지토리 들어갔을때 배포파일이 있으면 성공 안되면 씨발을 외치자
이제 그 그림에서 두번째 세번째꺼 하는거임
8. codepipeline
파이프라인 생성 - 이름만 설정하고 - 소스공급자는 codecommit 선택후 설정 - 빌드는 이번엔 설정해야한다 AWS codebuild 선택
프로젝트 생성 (창) - 추가 구성에서 권한이 있음 체크 - vpc 선택 - 서브넷은 프라이빗 a,b두개
- 보안그룹은 디폴트 박고 설정검증 - 환경변수 파라미터 싹 지우기 - buildspec 파일사용 - 코드파이프라인으로 계속
다음 누르고 배포 공급자는 ECS
클러스터랑 서비스 이름 선택
이미지 정의에 뭐시기 yml 파일안에 있는 files:에 할당된그거 복사해서 넣기 사실 씨발 배포파일을 줄지 뭘지 모르겠음
파일 수정
password stdin : 계정ID 넣을곳에 다 넣기
registry ~ : ECR URI 바꾸기
printf 에서 수정 : 태스크정의 - 컨테이너 이름 넣기
c + o 하고 엔터 (저장)
c + x ( 나가기 )
[깃클론해서 만들어진 레포 경로]
git add .
git commit -m "원하는것"
git push origin
생성
오류로그에서 뜬 역할이름을 iam 에서 선택하고 정책연결
-EC2contianer Registrypullaccess
그리고 재시도 해보자 씨발 아시발 아 좆같은거 씨발 조프베이조스 뒤져라 미친새기 ㅆ발련이 좆같은 플랫폼을 쳐 만들어 ㅁㅊ넘아
9. cloud front
1. 배포생성 - origin domain (어디에 연결할지) : s3 - 원본액세스 : 원본액세스제어 -
orgin access control : creat 그냥 하셈 - 정책복사 하고 버킷에 권한 가서 버킷정책편집 누르고 다 지우고 복사한거 붙여넣기 - 뷰어 프로토콜 rediact - 캐시 정책 disabled - 보안보호 비활성화 - 생성
끝이다 ~ 해방이다 ~
'AWS' 카테고리의 다른 글
2024 지방기능경기대회 클라우드컴퓨팅 회고록 (0) | 2024.04.05 |
---|---|
2024 지방기능경기대회 클라우드컴퓨팅 제 1과제 예상문제 풀이 (1) | 2024.04.03 |
2023 기능경기대회 클라우드컴퓨팅 제 1과제 [VPC ~ ECR] (1) | 2024.03.24 |
Docker 🐋 (0) | 2024.03.21 |
AWS 2022 기능경기대회 클라우드컴퓨팅 제 1과제 [ EC2 설정 ] (0) | 2024.03.20 |