목록전체 글 (518)
개발놀이터
이번 포스팅에선 AWS의 핵심 시스템 중 하나인 Elastic Load Balancer 줄여서 ELB에 대해서 알아보도록 하겠습니다. ELB는 개발자에게 그리고 AWS에게도 빠질 수 없는 중요한 시스템인데요. 만약 개발자에게 "AWS에서 제공하는 로드밸런서의 기능을 직접 구현해라"라고 하면 구현하는 것도 만만치 않은데다 유지보수 하는것도 쉽지 않을 것입니다. 또한, 기껏 직접 로드밸런서를 만들었다고 하더라도 다른 시스템과 연동하는건 또 다른 이야기이죠. 이 로드밸런서를 각각의 애플리케이션과 연결하고 관리하는건 개발자로 하여금 막대한 기술부채를 안겨다주죠. AWS도 ELB라는 구현하기 쉽고 유지보수하기 쉬운 시스템을 내면서 다양한 AWS의 시스템과 ELB를 연동시킬 수 있게 함으로써 더욱 다양한 AWS의 ..
이번 포스팅에선 EC2의 저장공간에 대해서 알아보도록 하겠습니다. 이번 포스팅은 실습보다는 이론 위주로 공부한 것을 정리해보도록 하겠습니다 (비용이 무서워서...) AWS의 핵심 기능 중 하나인 EC2의 저장공간 역할을 하는 인스턴스 스토리지는 데스크탑으로 치면 하드디스크에 해당합니다. 하지만 데스크탑과 다른 점은 클라우드 상에서 벌어지는 일인만큼 하드디스크에 접근하기 위해서는 네트워크 I/O가 있어야 한다는 점입니다. 그래서 실제 데스크탑에 물리적으로 연결되어 있는 하드디스크 (HDD, SSD, NVMe) 보다는 속도가 떨어집니다. 하지만 유연하게 저장공간을 설정할 수도 있고 성능도 원한다면 얼마든지 커스텀할 수 있습니다. 이제 본격적으로 EC2 인스턴스 스토리지에 대해서 알아보도록 하죠! EC2란? ..
만약 애플리케이션에서 파일 업로드와 다운로드를 구현할 때 한번쯤 고려해보는 시스템이 바로 S3입니다. S3란 세개의 S를 말하는데요 Simple Storage Service 이렇게 S3입니다 (갑자기 꽃보다 남자의 F4가 생각나네요). S3는 그냥 단순하게 클라우드 저장소라고 보면 되는데 구글 드라이브와 다르지 않습니다. 하지만 구글 드라이브와는 다르게 S3는 단순한 저장소 이상으로 다양하게 사용할 수 있습니다. 이번 포스팅에선 S3를 다양하게 사용할 수 있는 방법에 대해서 알아보고 직접 S3를 만들어보고 업로드까지 해보는 시간을 가져보겠습니다. 1. 단순하게 저장소로 사용하는 방법 그냥 단순하게 저장소로 사용하는 방법입니다. 아주 심플하고 간단하죠. 클라우드처럼 저장해놓고 꺼낼 때 꺼내는 방법입니다. ..
프로젝트를 진행하면서 AWS에 접근하기 위해서 IAM이라는 것을 설정해본 기억이 한번쯤 있으실 것입니다. IAM은 별 내용이 없어서 지나치기 쉽지만 꽤 심오한 내용을 담고 있었습니다. 이번 포스팅에선 AWS의 권한 책임자 IAM에 대해서 알아보고 직접 만들어보기까지 해보도록 하겠습니다. IAM AWS IAM은 Identity and Access Management의 약자로 IAM은 AWS의 서비스나 자원을 안전하게 접근하도록 관리해주는 서비스입니다. IAM을 사용하면 AWS 유저나 그룹을 생성하고 관리할 수 있으며 AWS 자원에 접근하거나 제한하는 권한을 사용할 수 있습니다. 즉, 인가와 비슷하다고 볼 수 있는데요. 어떤 유저에게는 어떤 서비스는 이용할 수 있고, 어떤 서비스는 이용할 수 없도록 막는 인..
우리는 앞서 private subnet에 접근하는데 성공했습니다. 이제 여기에 도커와 MySQL을 설치하고 외부 연결 서비스인 DBeaver에 연결해보도록 하겠습니다. 이전 포스팅과 이어지는 포스팅입니다. https://coding-review.tistory.com/454 데이터베이스 서버와 애플리케이션 서버를 분리해보자 : 실전3 (EC2 연결) 앞선 포스팅에서 우리는 EC2 인스턴스를 생성했습니다. 이제 우리는 EC2 인스턴스에 접속해보도록 하겠습니다. 이전 포스팅과 연결되는 포스팅입니다. https://coding-review.tistory.com/453 데이터베이스 coding-review.tistory.com 도커로 MySQL 띄우기 우선 도커와 도커 컴포즈를 다운받습니다. $ sudo apt-..
앞선 포스팅에서 우리는 EC2 인스턴스를 생성했습니다. 이제 우리는 EC2 인스턴스에 접속해보도록 하겠습니다. 이전 포스팅과 연결되는 포스팅입니다. https://coding-review.tistory.com/453 데이터베이스 서버와 애플리케이션 서버를 분리해보자 : 실전2 (EC2 생성) 이전 포스팅에서 AWS 설정을 마무리지었습니다. 이번엔 public subnet에 애플리케이션 서버를 두고 private subnet에 데이터베이스 서버를 둬보겠습니다. 이전 포스팅과 이어지는 포스팅입니다. https://co coding-review.tistory.com 바로 시작해보죠 PuTTY를 키고 Host Name에는 application-server 인스턴스의 퍼블릭 IPv4 주소를 입력해줍니다. 그리고 ..
이전 포스팅에서 AWS 설정을 마무리지었습니다. 이번엔 public subnet에 애플리케이션 서버를 두고 private subnet에 데이터베이스 서버를 둬보겠습니다. 이전 포스팅과 이어지는 포스팅입니다. https://coding-review.tistory.com/452 데이터베이스 서버와 애플리케이션 서버를 분리해보자 : 실전1 (VPC와 서브넷) 앞선 포스팅에서 우리는 VPC와 서브넷, 라우터와 라우팅 테이블, 인터넷 게이트웨이, NAT 게이트웨이까지 알아봤습니다. 이번 포스팅에선 그 중 첫 번째 단계라고 볼 수 있는 VPC와 서브넷을 만들 coding-review.tistory.com EC2 연결 1. 보안 그룹 생성 EC2를 만들기 전에 EC2에 연결할 보안그룹을 먼저 생성해주도록 하겠습니다...
앞선 포스팅에서 우리는 VPC와 서브넷, 라우터와 라우팅 테이블, 인터넷 게이트웨이, NAT 게이트웨이까지 알아봤습니다. 이번 포스팅에선 그 중 첫 번째 단계라고 볼 수 있는 VPC와 서브넷을 만들어 볼 것입니다. 개념적인 부분에 대해서 아직 모르고 계시다면 앞선 포스팅을 참고해주세요! https://coding-review.tistory.com/451 데이터베이스 서버와 애플리케이션 서버를 분리해보자 : 개념 저는 항상 의문점이 있었던 것이 애플리케이션 서버와 데이터베이스 서버를 나누게 되면 이 둘은 어떻게 통신을 하는가? 였습니다. 제가 기존에 배포하던 방식인 EC2 인스턴스에 애플리케이션과 coding-review.tistory.com VPC 생성과 서브넷 생성 1. VPC 생성 AWS 검색창에 V..
저는 항상 의문점이 있었던 것이 애플리케이션 서버와 데이터베이스 서버를 나누게 되면 이 둘은 어떻게 통신을 하는가? 였습니다. 제가 기존에 배포하던 방식인 EC2 인스턴스에 애플리케이션과 데이터베이스를 동시에 두게 되면 보안상 좋지 않다는 말을 들었습니다. 그래서 이 부분에 대해서 GPT에게 물어봤더니 VPC를 사용하면 된다는 말만 끊임없이 하더군요. 그 당시에는 VPC가 뭔지 도 몰랐고 그냥 VPC를 쓰면 되는구나 하고 넘어갔습니다. 이번 포스팅에선 본격적으로 VPC를 이용해 애플리케이션 서버와 데이터베이스 서버를 분리시켜보도록 하겠습니다. 시작해보죠. VPC가 뭐야? VPC는 Virtual Private Cloud의 약자로 직역하면 가상의 클라우드 환경이라는 말입니다. 만약 VPC가 없다면 각각의 인..
블루 그린 배포를 하는 과정에서 한 가지 문제가 생겼습니다. AWS의 로드밸런서인 ALB의 타겟그룹을 수동으로 바꿔줘야 한다는 것이었죠. CLI로 타겟 그룹을 바꿀 수 있다는 사실을 몰랐던지라 이를 어떻게 자동화할지 몰랐고 덕분에 컨테이너와 이미지를 없애고 다시 블루 버전을 띄워서 블루 그린 배포인데 블루 버전만 사용하는 아이러니함이 생겼죠. 새로운 프로젝트를 진행하다가 챗 지피티한테 궁금해서 물어봤습니다. "AWS CLI로 타겟 그룹을 변경할 수 있어?" "그럼요~" 예제 코드까지 친절하게 알려줘서 덕분에 성공할 수 있었습니다 (GPT 최고!). 그럼 이제 본격적으로 AWS CLI로 타겟 그룹을 변경하는 포스팅을 진행해보도록 하겠습니다. AWS CLI가 뭐야? 우리는 AWS의 시스템을 이용할 때 AWS..