Blog

[CS]47 AWS S3, EC2를 사용하는 이유와 사용 경험에 대해서 답변해주세요.

Author
Summary
Category
Study
Tags
CS
PinOnMain
Favorite
Memory
Memory Date
2023/11/17
Cross Reference Study
Related Media
Related Thought
Related Lessons
tag
날짜
작성자
진행상황
진행 전
태그구분
4 more properties
AWS S3, EC2를 사용하는 이유와 사용 경험에 대해서 답변해주세요.
AWS S3는 객체 스토리지 서비스로, 파일이나 데이터를 안전하게 저장하고 검색할 수 있도록 해주는 서비스입니다. EC2는 클라우드 상에서 가상 서버 컴퓨터를 제공해주는 서비스입니다. 간단히 가상의 컴퓨터를 대여한다고 생각 할 수 있습니다.
S3를 사용하면 데이터를 안전하게 저장하고 필요한 만큼 확장할 수 있습니다. EC2를 사용하면 가상 서버를 간편하게 구축하고 관리할 수 있습니다. 이렇게 서비스를 사용하면 물리적 서버를 관리할 필요가 없어지고, 필요에 따라 확장이나 축소도 쉽게 할 수 있어 효율적인 인프라 관리가 가능해집니다.
특히 AWS 인프라 내에서는 서비스간의 간편한 연결, 호환 등을 관리해줍니다. 특히 각 서버간의 연결을 위해서는 설정 파일을 직접 이해하고 정확히 연결되어야 합니다. 이러한 파일들은 모두 다른 언어로 작성되어 있을 가능성이 있고 개발자 입장에서 이해도가 부족하여 실수 할 가능성이 있는데 AWS 인프라 내에서는 이러한 부분에서 자동화 또는 서포트 해주는 역할을 내부적으로 다양하게 지원하고 있습니다.
S3와 EC2는 프로젝트 배포에서 자동화 배포인 CI/CD파이프라인을 구축 할 때 경험해보았습니다. GitHub Actions를 사용하여 AWS S3에 빌드된 애플리케이션 코드를 업로드하고, AWS CodeDeploy를 통해 EC2 인스턴스에 배포하는 파이프라인입니다.
파이프라인 설명 추가 필요시,
1.
GitHub Actions (CI):
개발자가 코드를 GitHub에 푸시하면, GitHub Actions가 작동합니다.
CI 워크플로우는 소스 코드를 가져와 빌드하고 테스트하는 단계를 수행합니다.
2.
AWS S3 (Artifact 저장):
빌드된 애플리케이션 코드나 패키지를 AWS S3에 업로드합니다.
GitHub Actions의 AWS S3 업로드 단계에서 사용된 secrets.S3_BUCKET은 S3 버킷의 이름을 나타냅니다.
3.
AWS CodeDeploy (배포):
AWS CodeDeploy를 사용하여 배포 그룹 및 애플리케이션을 생성하고 EC2 인스턴스에 에이전트를 설치합니다.
배포 스크립트 또는 설정 파일을 사용하여 배포 프로세스를 정의합니다.
4.
EC2 인스턴스 (CD):
CodeDeploy는 EC2 인스턴스에 새로운 코드를 배포합니다.
배포 프로세스는 로드 밸런서를 사용하여 트래픽을 교체하지 않으면서 배포를 완료합니다.