Introduction 로컬 데이터 센터에서 여러 서비스를 관리하려면 가상화 플랫폼을 위한 가상화 팀, 데이터센터 운영 팀, 모니터링 팀 등 많은 인력과 시간이 필요할 것이다. 또한 서비스가 복잡해질수록 scale up, down이 자주 될 것이다. 대부분 이러한 작업들은 수동으로 진행된다. 이러한 문제를 해결하기 위해 프로젝트를 클라우드에 배포하고 관리하는 연습을 한다. 목표 가상 머신에 배포 했던 것과 다르게 클라우드에 도메인을 연결하여 프로젝트를 배포한다. 로컬에 있는 애플리케이션을 lift and shift 방법으로 클라우드에 마이그레이션 한다. lift and shift는 코드 수정을 하지 않은 채 전체 시스템을 새롭게 사용자에게 배포할 환경으로 통째로 복사하는 것이다. 보통은 마이그레이션에 드..
다양한 실수로 결제 대금이 예상보다 많이 요청되는 일이 발생한다. 특히 free tier 사용자에게 이러한 일이 발생한다면 당황스러울 것이다. 이를 방지하기 위해 CloudWatch를 이용하여 일정 금액 이상의 금액이 결제되면 자동으로 메일을 보내도록 만들어보자. 1. 먼저 결제 대시보드에서 청구서 설정에 결제 알림을 받도록 설정한다. 2. CloudWatch에서 모든 경보 탭에 들어가고 경보를 생성한다. 이 때 주의 할점은 CloudWatch를 사용하기 위해서 버지니아 북부 리전에 있어야 한다. 3. 지표 선택 -> 결제 -> 예상 요금 합계 -> USD -> 지표 선택 4. 입력한 금액 이상일 때부터 알림이 작동한다. 5. 새 주제 생성 -> 이름 입력 -> 이메일 입력 -> 주제 생성 -> 다음 6..
웹서비스를 구현하고 배포하는 순간 HTTPS 인증서를 받아서 등록해야할 때가 있다. AWS Certificate Manager를 활용하면 간편하게 SSL 인증서를 발급받을 수 있다. ACM을 통해 프로비저닝된 공인 SSL/TLS 인증서는 무료다. 1. AWS Certificate Manager(ACM) 이동 -> 인증서 요청 2. public 인증서 선택 -> 다음 3. 등록할 도메인 등록, 등록할 때 하위 도메인도 등록되도록 와일드 카드 *를 사용하자. 4. 검증 방법은 DNS가 가장 빠르므로 DNS를 선택한다. 5. 나중에 필터링하기 편하게 태그도 추가하자. 요청 클릭 7. 도메인을 구매한 곳에서 DNS 레코드를 추가해야한다. 8. 생성한 인증서의 도메인 CNAME 값을 DNS 레코드에 추가한다. 이..
https://docs.aws.amazon.com/ko_kr/IAM/latest/UserGuide/introduction.html IAM이란 무엇입니까? - AWS Identity and Access Management 이 페이지에 작업이 필요하다는 점을 알려 주셔서 감사합니다. 실망시켜 드려 죄송합니다. 잠깐 시간을 내어 설명서를 향상시킬 수 있는 방법에 대해 말씀해 주십시오. docs.aws.amazon.com AWS IAM(Identity and Access Management)은 리소스에 대한 액세스를 안전하게 제어할 수 있는 웹 서비스이다. AWS에서 루트 사용자를 사용하여 서비스를 사용하는 것은 권장되지 않는다. IAM은 루트 사용자 보안 인증 정보를 보호하고 루트 사용자만 수행할 수 있는 작..
0. Introduction 목표 여러 서비스로 구성된 웹을 가상머신으로 로컬에서 환경을 구성하고 배포할 것이다. 수동으로 서비스들을 각각 provisioning한다. 수동으로 provisioning한 과정을 쉘 스크립트를 작성하여 자동으로 provisioning한다. 기대 수동으로 여러 서비스들을 설정하려면 시간이 많이 걸리고 복잡하다. 이를 해결하기 위해 vagrant와 bash script를 사용하여 VM 설정과 VM에서의 서비스 설정을 자동화 할 것이다. 코드로 인프라를 관리하면 반복 가능하고 전체를 설정하는 데 시간을 절약 할 수 있다. 기술 및 환경 PC : M1 pro Macbook hypervisor : VMware Fusion Tech Preview vagrant git bash bash..
워드프레스는 웹에서 가장 인기 있는 오픈 소스 블로그 시스템이자 CMS이다. PHP와 MySQL을 기반으로 한다. 수천 개의 무료 플러그인과 테마로 기능을 확장할 수 있다. 가상 머신에서 간단하게 워드프레스를 호스팅해보자. 먼저 수동으로 셋업하고, 자동으로 Vagrantfile로 Provisoning을 해보자. 수동 - WordPress 호스팅하기 $ vagrant init spox/ubuntu-arm Vagrant.configure("2") do |config| config.vm.box = "spox/ubuntu-arm" config.vm.network "private_network", ip: "192.168.33.11" config.vm.network "public_network" end vagran..
간단하게 가상 머신에 템플릿 웹 사이트를 호스팅해보자. 말만 '웹 사이트 호스팅' 거창하다. 실은 매우 간단하다. 먼저, 수동으로 웹 사이트를 호스팅해보고 그 다음, 자동으로 vagrantfile에서 provisioning하여 호스팅해보자. 수동 - Website Setup 가상 머신 생성 vagrant init jacobw/fedora28 적절한 리눅스 버전의 vagrant box를 설치한다. Vagrant.configure("2") do |config| config.vm.box = "jacobw/fedora35-arm64" config.vm.network "private_network", ip: "192.168.33.10" config.vm.network "public_network config.vm..
Provisioning vagrant에서 provisioning 이란 vm이 가동될 때 명령어나 스크립트를 실행하는 것을 의미한다. 즉, 운영 체제가 부팅될 때 일부 명령과 스크립트를 실행하는 것이다. 보통 어떤 구성을 위해 VM을 부팅하는 경우에는 vagrantfile을 변경하여 VM을 부팅한 다음 로그인하여 명령을 실행한다. vagrantfile의 provisioning 섹션에 모든 명령어를 입력하여 이를 대신할 수 있다. CetnOS (Fedora) provisioning을 위해 vagrantfile을 수정한다. provision 섹션에 가상 머신을 설치하고 실행 할 명령어를 작성한다. shell 언어로 쓰이며
vagrant 파일 동기화 가상 머신에서 작업한 결과물을 로컬로 옮기고 싶거나, 반대로 로컬에서 가상 머신으로 파일을 공유하고 싶을 때가 있을 수 있다. 기본적으로 Vagrant는 /vagrant 게스트 시스템의 디렉토리에 프로젝트 디렉토리(Vagrantfile이 있는 디렉토리)를 공유한다. * 가상 머신 환경은 Ubuntu였는데, CentOS계열 Fedora에선 /Vagrant폴더가 존재하지 않는다. config.vm.synced_folder "[local folder name]", "[vagrant dir]" 또한, Vagrantfile을 수정하여 가상 머신에 로컬의 파일을 공유할 수 있다.
'스프링 부트와 AWS로 혼자 구현하는 웹 서비스'를 읽고 정리한 글입니다. 8.1 EC2에 프로젝트 Clone 받기 EC2에 Git을 설치하고 프로젝트를 Clone $ sudo yum install git $ git --version $ mkdir ~/app && mkdir ~/app/step1 $ cd ~/app/step1 $ git clone [Git 저장소] $ cd [Git 저장소] $ chmod 755 gradlew// gradlew에 실행 권한 부여 $ ./gradlew test 8.2 배포 스크립트 만들기 배포란 작성한 코드를 실제 서버에 반영하는 것을 말한다. git clone 혹은 git pull을 통해 새 버전의 프로젝트 받음 Gradle이나 Maven을 통해 프로젝트 테스트와 빌드 ..
'스프링 부트와 AWS로 혼자 구현하는 웹 서비스'를 읽고 정리한 글입니다. 데이터베이스를 구축하고 EC2 서버와 연동을 해보자. 직접 데이터베이스를 설치해서 다루게 되면 모니터링, 알람, 백업, HA 구성 등을 모두 직접 해야 한다. RDS ASW에서는 위에서 말한 작업을 모두 지원하는 관리형 서비스인 RDS(Relational Database Service)를 제공한다. RDS는 AWS에서 지원하는 클라우드 기반 관계형 데이터베이스다. 하드웨어 프로비저닝, 데이터베이스 설정, 패치 및 백업과 같이 잦은 운영 작업을 자동화하여 개발자가 개발에 집중할 수 있게 지원하는 서비스다. 추가로 조정 가능한 용량을 지원하여 예상치 못한 양의 데이터가 쌓여도 비용만 추가로 내면 정상적으로 서비스가 가능한 장점이 있..