728x90
반응형

분류 전체보기 193

[스파르타코딩클럽] 핵심쏙쏙 AWS 2주차 일지

배운 내용 💡 AWS를 좀 더 잘 사용하기 위해서는 AWS의 생각을 이해해야 한다. 💡 개발환경이 Monolithic에서 MSA로 변화한 부분을 이해해야 한다. 💡 CloudFront를 이용하여 S3에 저장된 파일들을 지역에 관계없이 빠르게 접근이 가능하도록 할 수 있다. 💡 EC2는 AWS가 제공하는 서비스 중에 가장 기본적인 컴퓨팅 서비스이다. 💡 ELB는 기존의 LB 기능과 비슷하며 EC2 리소스를 좀 더 효율적으로 사용하게 해준다. 💡 Auto Scaling은 ELB와 EC2의 연결을 좀 더 효율적으로 관리할 수 있게 해준다. 💡 ElasticBeanstalk을 사용하면 인프라 관리의 어려움은 줄이고 좀 더 개발에 집중할 수 있는 환경을 만들수 있다. 회고 이번 2주차는 정말정말 내용이 많았다. ..

Github Action을 활용해 ElasticBeanstalk로 자동 배포하기

저번에는 Github Action을 활용하여 프론트 부분을 자동 배포해보았고, 이번에는 Gihub Action을 활용하여 백엔드 서버를 자동 배포해보려고 한다. IAM 권한 추가 먼저 IAM 사용자에 AdministratorAccess-AWSElasticBeanstalk 권한을 추가해준다. 벡엔드 코드를 Github에 업로드 1. 인증키 코드에 넣기 s3 = boto3.client('s3', aws_access_key_id=os.environ["AWS_ACCESS_KEY_ID"], aws_secret_access_key=os.environ["AWS_SECRET_ACCESS_KEY"] ) 2. 환경변수 관리 AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY 과 같은 환경변수들은 코드..

ETC/Git 2021.09.18

ElasticBeanstalk를 활용하여 서버 구성 자동화하기

이전 게시물에서 ELB와 Auto Scaling 설정 방법을 살펴보았다. 하지만, 이렇게 따로 관리하면 설정 값도 많고, 매우 까다로운 것을 느꼈을 것이다. 그래서 AWS에서는 통합해서 관리할수 있는 서비스인 ElasticBeanstalk를 제공하고 있다! 구글의 앱 엔진 서비스와 비슷하게 환경에는 신경 쓸 필요없이 간단한 옵션만 조절하고, 애플리케이션만 배포하면 되는 형태이다. ElasticBeanstalk라는 이름이 길어서 보통 EB라고 부른다. ElasticBeanstalk 생성하기 "Create Application"을 클릭한다. 애플리케이션 이름을 입력하고, 태그는 생략해도 된다. 테스트용이므로 태그는 넘어갈 것이다. 플랫폼은 구축하려는 언어로 Java, Go, PHP 등을 선택할 수 있다. 현..

AWS/실습 기록 2021.09.18

AWS 로드밸런서(ELB) 및 Auto Scaling 설정 방법 알아보기

로드밸런서(ELB)란? 앞에서 탄력적 IP를 활용하여 고정된 IP 주소를 각 EC2 인스턴스에 부여하는 방법을 알아보았다. 하지만 이러한 방법은 문제점이 있다. 하나의 인스턴스에 하나의 도메인만 연결할 수 있다는 것이다. 그런데 서버에 많은 사람들이 몰려 많은 트래픽이 발생한다면 서버의 사양을 올리는 스케일업, 서버의 개수를 늘리는 스케일아웃을 고려해야한다. 만약 스케일아웃을 한다면 서버가 늘어날 때마다 도메인이 새로 필요하게 된다. 로드밸런서(ELB)는 서비스 중에 EC2의 성능이 부족한 경우 한 곳의 엔드포인트로 들어오는 트래픽을 각 인스턴스에 분산시켜준다. ELB의 특징은 다음과 같다. 💡 트래픽 분산 💡 자동 확장 💡 인스턴스의 상태를 자동 감지해서 오류가 있는 시스템은 배제 💡 사용자 세션을 특..

AWS/실습 기록 2021.09.17

AWS EC2 탄력적 IP 사용하기 (EC2 IP주소 고정하기)

EC2 인스턴스를 계속 켜놓으면 요금이 부과되므로 인스턴스를 중지해놓았다가 다시 시작하는 경우가 종종 있다. 그런데 재부팅하면 퍼블릭 IP 주소가 계속 변경되는 것을 확인할 수 있다. 이때 탄력적 IP를 활용하면 IP주소를 고정시킬 수 있다. 탄력적 IP 주소 할당 버튼을 클릭하여 아래와 같이 설정하고 "할당"을 클릭한다. 탄력적 IP 주소가 잘 할당되었다. 이제 할당된 IPv4 주소를 클릭한다. 탄력적 IP 주소 연결로 들어간다. 이제 탄력적 IP 주소를 연결할 인스턴스를 선택해준다. 설정 완료 후 "연결" 버튼을 클릭하면 해당 EC2 인스턴스에 고정 IP 주소가 부여된다. 이제 인스턴스를 중지했다가 다시 시작해도 IP 주소가 바뀌지 않는다.

AWS/실습 기록 2021.09.17

Github Action을 활용해 AWS S3, Cloudfront 자동 배포하기

Github Action이란? Github Actions이란 Github에서 제공하는 워크플로우(workflow)를 자동화하도록 도와주는 도구이다. 테스트, 빌드, 배포 등의 다양한 작업들을 자동화하여 처리한다. GIthub가 MS에 인수되면서 기존의 소스저장소의 기능에서 DevOps플랫폼으로 으로 발전하고 있다. 비슷한 서비스로는 Gitlab, Bitbucket등이 있다. 요즘 트랜드는 CI/CD의 통합이라고 할 수 있다. 즉, 소스저장소와 배포시스템을 통합하는 것이다. 아키텍처의 변화로 작아진 어플리케이션들을 부담없이 자주 배포하기 위함이다. 사용 방법은 GitHub 소스 레파지토리에 .github/workflows/[파일이름].yml 파일만 추가하여 작성하면 된다. Github Actions와 AW..

ETC/Git 2021.09.17

AWS CloudFront과 S3 연동 방법 알아보기

CloudFront란? AWS CloudFront는 정적, 동적 컨텐츠를 빠르게 응답하기 위한 캐시 기능을 제공하는 CDN 서비스이다. 캐싱을 지원하기 때문에 S3에 저장된 컨텐츠를 직접 접근하지 않아도 되므로 S3의 비용이 감소하며, 더 빠른 응답을 지원하므로 꼭 함께 적용해주는 것이 좋다. 이전에 S3 버킷을 생성하여 HTML 파일을 올리고, 정적 호스팅 기능을 사용하여 웹 페이지를 배포해보았다. 그런데 만약 S3를 사용해서 www.example.com 도메인으로 글로벌 서비스를 해야하는 상황이라고 해보자. S3 버킷은 생성할 때 리전이 정해져있다. 서울 리전에 있는 버킷을 호스팅 기능을 이용해서 미국에 서비스 한다고 하면 사이트가 매우 늦게 뜰 것이다. 그러면 서비스하는 나라의 가까운 리전마다 똑같..

AWS/실습 기록 2021.09.17

[스파르타코딩클럽] 핵심쏙쏙 AWS 1주차 일지

배운 내용 💡 넷플릭스에서 AWS를 활용하는 사례에 대해 알아보았다. 💡 AWS가 제공하는 서비스들이 엄청 많기 때문에 잘 사용하기 위해서는 먼저 잘 사용하고 있는 회사들이 어떻게 사용하고 있는지 잘 봐야한다. 💡 IAM을 활용해보았고, IAM에서 생성한 사용자로 SDK 라이브러리를 활용해보았다. 💡 S3의 정적 호스팅 기능을 이용하면 웹서버 없이도 정적페이지를 웹사이트로 만들 수 있다. 1주차 과제 S3의 정적 호스팅 기능을 활용하여 웹페이지를 외부에 공개하기 회고 평상시에 AWS를 사용할 일이 있을 때마다 인터넷에 올라온 글을 보고 따라해보기만하다가, AWS 강의를 들으면서 직접 공부를 시작해보니 새롭게 알게되는 부분도 많았다. AWS를 잘 활용하기 위해서는 AWS를 잘 활용하고 있는 기업의 사례를 ..

Boto3를 활용한 AWS S3 파이썬 연동 및 S3 정적호스팅 기능을 활용해 외부에 공개하기(feat. S3 비용 계산)

Boto3을 활용한 Python과 AWS 연동 먼저 터미널에 'pip install boto3'을 입력하여 boto3이라는 패키지를 설치한다. boto3은 aws와 연동하기 위해 사용하는 라이브러리이다. 간단하게 아래 웹페이지에서 파일 업로드 및 저장을 클릭할 경우, AWS S3에 파일이 자동으로 저장되도록 구현할 것이다. 아래는 boto3을 활용하여 파이썬과 AWS S3를 연동하는 코드이다. Flask를 사용하였고, Bucket="{버킷이름}"에서 {버킷이름} 대신 S3와 연동할 버킷 이름을 넣어주면 된다. import boto3 #aws와 연동하기 위해 사용하는 라이브러리 from flask import Flask, render_template, request, jsonify app = Flask(_..

AWS/실습 기록 2021.09.17

IAM을 이용하여 AWS SDK 활용한 S3 파일 업로드하기

IAM이란? IAM은 Identity and Access Management의 약자로, AWS의 리소스에 대한 개별적으로 접근제어와 권한을 가지도록 계정 또는 그룹을 생성, 관리하는 서비스이다. 어떤 IAM 계정은 EC2 서비스만 접근할 수 있도록 권한을 부여하고, 다른 IAM 계정은 S3 서비스만 접근할 수 있도록 권한을 나눌 수 있다. IAM 계정이 없다면 AWS 계정 자체가 모든 서비스에 대한 권한이 있기 때문에 보안상 취약하다. 따라서 IAM 계정을 생성해서 각 IAM 계정에 필요한 권한만 갖도록 설정할 수 있다. 또한 IAM 계정은 access key를 개별적으로 관리할 수 있기 때문에 보안성이 높아진다. 1. IAM 사용자 생성 사용자 추가 먼저 IAM으로 들어간다. 그리고 "사용자"로 들어가..

AWS/실습 기록 2021.09.16
728x90
반응형