Cloud Service 21

[AWS] 대표님 세션 : 개념과 AWS 서비스

용어 Local host 외부에 노출되지 않은, 로컬에서만 사용가능한 서버 Client 프론트엔드; 서비스가 유저에게 제공하기 위해 사용되는 디바이스/매체 Deployment 배포 (개발한 서비스를 실제 유저들이 사용할 수 있도록 서버에 배포) Infrastructure 구조 (물리적/논리적 구성) Cloud : 클라우드란? 데이터를 보관, 정리, 분석하고 새로운 서비스를 빠르게 추진할 수 있도록 각종 인프라와 IT 기술을 빌려주는 서비스/ 언제, 어디서나 인터넷을 통해서 접속이 가능한 환경 배포할때 가장 쉽게 하는게, 로컬호스트에서 하는 것 - 나의 노트북에 통신하는 것 (node, express. Js 돌리는것) 그럴 때의 문제 외부 네트워크에서 접속이 어려움: 팀원들이 접속하기 어려움 : 언제어디서..

[AWS] EC2 _ 3) EC2 Instance 생성 + 실습

1. Launch EC2 Instance 0. AWS 회원가입 후, (나중을 위한) 카드 번호 기입/인증까지 하고 나면 끝 1. EC2 Instances 페이지로 이동 후 Launch Instances을 클릭 2-1. 실행시킬 EC2 Instance의 이름을 작성 2-2. Amazon Machine Image 는 Linux 계열의 이미지를 선택 2-3. Instance Type은 t2.micro를 선택해주세요. Free tier가 아닌 타입을 선택하게 되면 요금이 부가될 수 있으니 재차 확인바랍니다. 2-5. Key Pair 는 실행할 EC2 Instance를 접속하기 위한 열쇠 역할을 합니다. Create new key pair 를 클릭하여 다음과 같이 key-pair를 생성합니다. 생성할 Key Pa..

[CICD] Github Action으로 CICD 구축하기 4)

1. 들어가며.. 이번 시간에는 가장 널리 사용되는 CICD 플랫폼 중 하나인 Github Action을 사용하여 간단한 CICD Pipeline을 구축해봄으로써 CICD의 실제 작동 방법을 학습하겠습니다. Github Action을 사용하여 빌드, 테스트를 해보고 더 나아가 docker image까지 빌드 및 push까지 구현해 봅니다. 그 다음 과정인 실제 배포는 CICD나 Github Action에 관한 내용을 넘어서서 실제 인프라 (예시: AWS)에 대한 이해도와 설정 방법까지 알아야 하므로 이번 세션에서는 다루지 않습니다. AWS 배포 부분까지 구현에 관심이 있으신 분들은 공식 문서를 참조하실 수 있습니다. 이번 세션의 목적은 간단한 CICD를 구축하여 CICD의 작동 방법과 구조를 조금 더 자..

[CICD] 다양한 CICD Tools 알아보기 3)

1. 다양한 CICD 플랫폼 CICD의 중요성이 많이 인지되고 대기업부터 스타트업까지 여러 기업들이 CICD 시스템을 도입함에 따라서 CICD 구축을 도와주는 CICD 플랫폼들도 다양해지고 있습니다. 예전에는 CICD 시스템을 구축하기 위해서 전담 엔지니어가 필요하는 등 고된 작업이었던 시대가 있었지만, 요즘은 간단한 설정만으로도 기본적인 CICD를 쉽게 구현할 수 있는 시대가 되었습니다. 가장 널리 알려지고 사용되고 있는 CICD 플랫폼들은 다음과 같습니다: Jenkins Travis CI Circle CI Github Action 각 CICD 플랫폼들에 대해서 간략하게 알아보도록 하겠습니다. 2. Jenkins Jenkins는 CICD 플랫폼의 원조라고 할 수 있습니다. 처음에는 Hudson이라는 이..

[CICD] CICD의 개념 및 동작원리 2)

1. CICD란 무엇일까? CICD는 Continuous Integration / Continuous Deployment 의 약자 입니다. 한국어로 하면 지속적인 통합 과 지속적인 배포 입니다. Continous 즉 지속적이라는 단어는 바로 자동화를 통한 지속을 이야기 합니다. CICD 시스템은 빌드, 테스트 그리고 배포를 자동화 함으로서 개발자들의 생산성을 높이고 (개발에만 신경쓸 수 있으므로) 배포를 더 빠르게 그리고 더 자주 할 수 있도록 합니다. 이렇듯 더 빠르고 더 자주하는 배포를 바로 지속적인 배포라고 표현하는 것입니다. 다음 이어지는 자세한 설명을 통해 정확히 어떠한 과정을 통해서 지속적인 배포가 되게 하는지 알아보도록 하겠습니다. 2. Continuous Integration(CI) CIC..

[CICD] CICD는 언제, 왜 필요할까? 1)

1. 들어가며.. CICD를 제대로 이해하기 위해서는 CICD가 왜 생겨났는지 그 배경과 역사를 이해하는 것이 중요합니다. CICD가 없을때는 개발이 어떻게 진행되는지 알아보고, CICD가 어떻게 개발자들의 삶과 생산성을 발전시켜주는지 알아봅니다. 본격적인 내용에 앞서 앞으로 저희는 Staging 서버라는 단어가 자주 보게 될 것 입니다. Staging은 실제 유저에게 배포되어 서비스되는 단계인 Production 의 전 단계 서버를 의미합니다. 실제 유저에게 배포하기 전에 테스트 하는 용으로 주로 사용됩니다. 앞으로 자주 출몰하는 Build 라는 단어도 생소 할 수 있습니다. Build란 인간이 읽을 수 있는 소스코드를 프로그램 실행 시 컴퓨터가 읽을 수 있게 필요한 모든 것(pre-processing..

[AWS] ALB - [Network] Nginx를 사용한 Load Balancing 적용**

1. Nginx Nginx는 최근 증가하고 있는 웹 서비스의 요구를 지원하기 위해 개발된 고성능 웹서버입니다. Nginx는 적은 자원의 사용으로 높은 성능과 높은 동시성 보이는 것을 목표로 만들어졌습니다. 기존에는 Apache를 웹서버로 많이 사용했지만, Apache 서버는 웹과 모바일의 발전으로 점점 늘어나는 트래픽을 감당하기 어려워 졌고, 크고 작은 문제들이 많이 생겼습니다. 이런 문제를 해결하기 위해 Nginx가 개발되으며 현재는 로드밸런싱, 캐싱, HTTP Server 등의 다양한 용도로 많이 사용되고 있습니다. 2. Nginx 준비 2-1. Nginx 설치 Mac에서 Homebrew로 Nginx 설치 $ brew install nginx Ubuntu에서 apt로 Nginx 설치 $ sudo ap..

[AWS] ALB - [Network] Proxies & Load Balancing

1. Proxy 1-1. Proxy 란? 서버와 서버 사이에서 목적에 따라 특정 서버들을 대신해 여러가지 작업을 수행해주는 중개인 프록시 서버는 요청을 가로채서 응답할 수 있으며, 요청만 전달하거나 수정할 수도 있습니다. 우리는 지금까지 프론트엔드와 백엔드로 나누어 개발하면서, 요청의 주체인 프론트엔드 서버에서 요청을 받는 백엔드 서버에 직접 호출을 했습니다. 따라서 백엔드 서버에서는 해당 요청에 대한 모든 정보를 바로 확인할 수 있습니다. 그런데 이러한 구조에 프록시 서버를 추가하면 어떤 형태가 될까요? 프론트엔드 서버와 백엔드 서버 사이에 프록시 서버 역할을 하는 새로운 서버를 추가함으로써, 프론트엔드 서버는 백엔드 서버가 아닌 프록시 서버로 요청을 보내게 되고, 프록시 서버는 해당 요청을 받아 필요..

[AWS] VPC-5) Custom VPC를 활용하여 Infrastructure 구성하기 **

https://www.notion.so/wecode/AWS-Custom-VPC-Infrastructure-49b9447eb7a5429fb90f2a1c8330addd 1. 개요 AWS에 처음 가입했을 때부터 존재하는 Default VPC위에 EC2를 가동시키면 해당 EC2에 Public IP만 할당해도 접속이 가능했습니다. 이렇게 외부 접속이 가능하려면 라우팅 테이블(Routing Table)부터 IGW(Internet Gateway) 등 다양한 네트워크 설정이 선행되어야 하지만 Default VPC는 이 모든 것이 준비되어 있기 때문에 아무런 커스텀없이 사용할 수 있던 것입니다. 이번 실습을 통해 이러한 디테일한 설정들을 직접 해보면서 해당 설정이 어떠한 역할을 하게 되는지 배울 수 있습니다. 추가로 P..