2021년 9월 15일에 작성된 문서 2번 입니다.
aws 배운 내용을 정리했습니다.
Deployment
배포: 개발한 서비스를 사용자들이 이용가능하게 하는 일련의 과정

회사마다 추가적인 과정이 있을 수 있지만, 기본적으로 4단계를 거쳐서 개발한 서비스를 배포하게 됩니다.
용어 | 설명 |
---|
Development | 각자의 컴퓨터에서 코드를 작성하고 테스트 하는 과정 |
| 개발단계라 실제 데이터를 이용하지 않고 더미데이터를 이용해 테스트 |
Intergration | 각자의 컴퓨터에서 작성한 코드를 합치는 과정 |
| 내가 작성한 코드가 다른 코드에서 오류를 일으키지 않는지 확인 |
| 코드간에 conflict가 있지는 않는지 확인 |
Staging | 실제 출시단계인 Production단계와 유사 환경에서 테스트 진행 |
| 실제 데이터를 복사해서 문제가 있지 않은지 등 다양한 환경에서 테스트를 진행 |
| 또한 서비스와 관련된 부서 혹은 인원의 확인 과정 |
Production | 개발된 서비스를 출시하는 단계 |
| 사용자가 접속할 수 있는 Production환경에서 코드를 구동하고 서비스를 제공 |
| 실제 데이터를 가지고 서비스가 운영되기 때문에 문제가 생기면 안되는 단계 |

- Development 환경과 Production 환경은 서로 다를 수가 있다.
- 배포에서, 환경의 차이를 이해하고 환경 설정을 코드와 분리하는 것이 중요
작성한 코드가 다른 환경에서 정상 작동할 수 있게 하려면
- 절대 경로 대신 상대 경로를 사용한다.
- 환경에 따라 분기 할 수 있도록 환경변수를 설정해준다.
- Docker와 같은 개발 환경 자체를 통일 시키는 솔루션을 사용한다.
배포를 위한 다양한 플랫폼들

EC2
아마존 웹 서비스에서 제공하는 클라우드 컴퓨팅 서비스

클라우드 컴퓨팅: 인터넷(클라우드)을 통해 서버, 스토리지, 데이터베이스 등의 컴퓨팅 서비스를 제공하는 서비스.
정리하면 아마존에서 가상의 컴퓨터를 한 대 빌리는 것과 같습니다.
EC2서비스는 AWS에서 비용, 성능, 용량면에서 탄력적인 클라우드 컴퓨터를 제공하는 서비스
AWS에서 제공하는 Elastic Compute Cloud서비스 앞에 붙은 Elastic이라는 단어는 어떤 의미일까요?

- EC2서비스는 사용한 만큼비용을 지불하기 때문에 탄력적인 이라는 의미의 Elastic이라는 단어가 붙었다.
- Elastic은 비용적인 부분 뿐만이 아니라 필요에 따라 성능, 용량을 자유롭게 조절할 수 있다는 의미도 가지고 있다.
EC2 서비스의 장점
1. 구성하는 데 필요한 시간이 짧다.

만약 PC를 구매한다면 구매해서 배송되는 데까지의 시간이 필요하지만 EC2 서비스는 몇 번의 클릭만으로 PC를 구성할 수 있습니다.
2. 다양한 운영체제에 대한 선택이 가능하다.

- EC2에서는 AMI라는 다양한 템플릿을 제공하고 있어서 필요에 따라 손쉽게 운영체제를 선택하고 구성할 수 있다.
- 운영체제뿐만이 아니라 CPU와 RAM, 용량까지도 손쉽게 구성할 수 있다.
AWS에서 빌리는 컴퓨터를 인스턴스

- EC2는 컴퓨터를 한 대 빌리는 것이므로 컴퓨터로 할 수 있는 일을 할 수 있다.
- 아마존 EC2를 통해서 할 수 있는 기본적인 일 :
- 웹서버를 설치하고 웹 서버를 통해서 사용자가 웹 브라우저를 통해 요청하는 서비스를 제공.
- 인스턴스는 1대의 컴퓨터를 의미하는 단위
- (AWS에서 컴퓨터를 빌리는 것) = (인스턴스를 생성).
AMI
AMI는 소프트웨어 구성이 기재된 템플릿

- 이미지 종류로는 단순히 운영체제만 깔려있는 템플릿을 선택할 수도 있다.
- 아예 특정 런타임이 설치되어있는 템플릿이 제공되는 경우도 있다.


- Instance는 선택한 AMI를 토대로 구성.
- AWS에는 AMI 셋팅이 준비되어 있어 인스턴스의 운영체제를 구성할 수 있다.
- 셋팅되어 있는 AMI 이외에도 필요에 따라 직접 AMI를 구성할 수도 있다.
AWS EC2 인스턴스를 생성한다는 것은 AMI를 토대로 운영체제, CPU, RAM 혹은 런타임 등이 구성된 컴퓨터를 빌리는 것입니다.

Written with StackEdit.