# 인프라 아키텍처 ### 개발운영 - 아키텍처 -설계도 - CICD https://velog.io/@ynsoo1225/%EA%B0%9C%EB%B0%9C%EC%9A%B4%EC%98%81-%EC%95%84%ED%82%A4%ED%85%8D%EC%B2%98-%EC%84%A4%EA%B3%84%EB%8F%84-CICD-workflow ![](https://i.imgur.com/mHwdAjS.png) ### ECS, EKS 등 https://velog.io/@jch9537/AWS-AWS-%EC%BB%A8%ED%85%8C%EC%9D%B4%EB%84%88-%EC%84%9C%EB%B9%84%EC%8A%A4ECS-EKS ### DB replication https://backtony.github.io/spring/mysql/aws/2021-09-28-spring-mysql-1/ ### https://bosungtea9416.tistory.com/entry/AWS-IAM-%ED%82%A4%ED%8C%8C%EC%9D%BC-%EC%9C%A0%EC%B6%9C%EC%9D%84-%EB%8C%80%EB%B9%84%ED%95%9C-IP-%EA%B8%B0%EB%B0%98-Deny-IAM-%EC%A0%95%EC%B1%85?category=955613 ### RDS https://www.bespinglobal.com/bespins-pick-vol-11-aws-rds-vs-ec2/ # 따라하기용 ## 무작정 해보는 ECS 따라하기용 https://dev.classmethod.jp/articles/ecs-container-service-establishment-2/ https://waspro.tistory.com/487?category= ## EC2 - ECS 차이점 http://daplus.net/amazon-web-services-amazon-ecs%EC%99%80-amazon-ec2%EC%9D%98-%EC%B0%A8%EC%9D%B4%EC%A0%90%EC%9D%80-%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C/ ![](https://i.imgur.com/hEKHl9w.png) ![](https://i.imgur.com/F0AMR66.png) ![](https://i.imgur.com/DqBxucf.png) ![](https://i.imgur.com/U3UUZPJ.png) ## 깃허브 - 젠킨스 자동 배포 https://crispyblog.kr/development/common/10 ## Jenkins Jenkins를 사용하지 않으면, 사용자 한명이 최신의 버전을 update 후에, maven install 작업을 진행하고, 해당 프로젝트 (Spring boot 기준) war 파일을 서버에 올려서 풀어야 한다.... Jenkins를 사용한다면, 해당 작업 필요없이 , Jenkins 가 알아서, git or svn 과 연동되어 최신의 소스를 update 받아서 알아서 script 형식으로 구동 및 빌드를 진행해준다. 쉽게 말해서, 빌드 자동화 툴이다. 그래서, 대부분 배치에대한 실행 혹은 개발/테스트 서버의 소스 배포등을 하는 곳에서 사용한다. 대부부은 3단계의 파이프라인 혹은 스크립트를 사용해서, 해당 배포를 진행하게 되고 해당 배포를 진행하면서, CI서버 (젠킨스를 띄워놓는 서버) 를 설정해서, 해당 부분을 다같이 사용한다. ### CI/ CD https://jgrammer.tistory.com/entry/%EB%AC%B4%EC%8B%A0%EC%82%AC-%EC%8A%A4%ED%86%A0%EC%96%B4-watcher-CICD-%EB%8F%84%EC%9E%85%EA%B8%B0 ### 카카오 엔터프라이즈 github actions 사용 이유 https://tech.kakao.com/2022/05/06/github-actions/ ### 우테코 프로젝트에서 github actions 사용 https://tecoble.techcourse.co.kr/post/2021-09-23-continuous-deployment-with-github-actions/ ### EC2-인스턴스-특정시간에-자동으로-시작-종료하기 https://velog.io/@young_mason/TSJ-EC2-%EC%9D%B8%EC%8A%A4%ED%84%B4%EC%8A%A4-%ED%8A%B9%EC%A0%95%EC%8B%9C%EA%B0%84%EC%97%90-%EC%9E%90%EB%8F%99%EC%9C%BC%EB%A1%9C-%EC%8B%9C%EC%9E%91-%EC%A2%85%EB%A3%8C%ED%95%98%EA%B8%B0 https://jesuisjavert.github.io/2021/03/11/django-vue-aws/ ## ** 나중에 참고할 로드밸런스 자료 https://jeonghoon.netlify.app/Jenkins/jenkins-codedeploy/ ![](https://i.imgur.com/q0op6yZ.png) ### 아마존 EC2 https://nerd-mix.tistory.com/33?category=855099 ## 명령어 ssh -i "bastion-key.pem" ec2-user@10.0.4.6 ## docker 설치 ``` sudo -i yum install -y docker service start docker docker images ``` ## docker file 생성 ``` mkdir dockerfile-folder cd dockerfile-folder/ vi index.html ``` - index.html ``` <!doctype html> <h1>hello ecs!</h1> ``` - vi dockerfile ``` FROM nginx:latest MAINTAINER "nyk3127@dgu.ac.kr" COPY ./index.html /usr/share/nginx/html/index.html EXPOSE 80 CMD ["nginx", "-g", "daemon off;"] ``` - docker file build docker build -t ecs-nginx . - 컨테이너 생성 ![](https://i.imgur.com/5RC5fox.png) docker create -i -t --name ecs-nginx-container -p 8000:80 59aebb4c4b88 - docker start 컨테이너 id ![](https://i.imgur.com/tJXsAk4.png) docker start ebbf0108f670 ### RDS 만들기 ![](https://i.imgur.com/onXeLwb.png)