본문 바로가기

AWS

(17)
[AWS] CloudFormation CloudFormation 이전에 Infrastructure as Code에 대해 글은 쓴 적이 있습니다. (hanjustudy.tistory.com/7?category=788393) 소스 코드를 통해 인프라를 관리할 수 있으며, git 등의 버전 관리 시스템을 사용하여 인프라의 버전 또한 관리할 수 있습니다. 이에 따라 인프라 구축 또한 코드 리뷰, PR 등을 사용하여 어플리케이션 개발과 같은 맥락으로 사용할 수 있습니다. CloudFormation은 AWS에서 제공하는 구축 자동화를 위한 서비스입니다. CloudFormation Template CloudFormation은 AWS에 구축한 구성을 템플릿으로 만들고, 재사용하기 쉽게 만들어주는 서비스입니다. CloudFormation은 JSON 또는 Y..
[AWS] CloudFront Amazon CloudFront는 짧은 지연 시간과 빠른 전송 속도로 데이터, 동영상, 애플리케이션 및 API를 전 세계 고객에게 안전하게 전송하는 고속 콘텐츠 전송 네트워크(CDN) 서비스입니다. Amazon CloudFront CDN은 전 세계에 216개(7/24 기준)의 PoP(Point of Presence)를 가지고 있으며 최종 사용자에게 높은 성능과 가용성을 제공합니다. (CDN이란? - hanjustudy.tistory.com/27) CloudFront는 정적 및 동적 웹 컨텐츠들을 사용자에게 더 빠르게 배포하도록 도와주며, 엣지 로케이션이라고 하는 데이터센터의 전 세계 네트워크를 통해 컨텐츠를 제공합니다. CloudFront를 통해 서비스하는 컨텐츠를 사용자가 요청하면 지연 시간이 가장 낮..
[AWS] S3 Amazon S3 Amazon S3(Simple Storage Service)는 AWS에서 제공하는 온라인 스토리지 웹 서비스입니다. 사용자는 S3에서 제공하는 웹 서비스 인터페이스를 이용하여 손쉽게 원하는 양의 데이터를 저장 및 검색할 수 있습니다. 또한 Amazon이 자체 웹 사이트의 글로벌 네트워크 운영에 사용하는 것과 같은 높은 확장성과 신뢰성을 갖춘 빠르고 경제적인 데이터 스토리지 인프라에 액세스 할 수 있습니다. 웹 서비스를 운영할 때 많이 이용하는 서비스로서 이미지나 html 파일 같은 정적 데이터부터 서버에서 생성된 로그 파일 등 다양한 목적의 파일들을 보관하는데 사용되는 편입니다. 파일의 수와 저장 용량에 제한이 없고, S3에 업로드만 하면 S3에서 알아서 파일들을 관리해줍니다. 이를 실..
[AWS] 탄력적 IP (Elastic IP) 탄력적 IP(Elastic IP) 주소는 동적 클라우드 컴퓨팅을 위해 고안된 정적 IPv4 주소입니다. 기존에 EC2를 생성할 때 접속을 위하여 public IP를 할당받는 것은 모두 알고 있을 것입니다. 하지만 EC2 인스턴스의 public IP는 고정된 IP 주소가 아닌, 유동적인 IP 주소입니다. 그래서 해당 인스턴스를 재시작을 하면 public IP 또한 변경 되는 것을 확인할 수 있을 것입니다. 만약 우리가 인프라를 설계하고 구성하였는데, 인프라를 구성해놓은 인스턴스를 재시작을 할 때마다 public IP가 계속 변경이 된다면 어떨까요? 셋팅을 해놓은 IP 주소를 계속 바꾸어주어야 하므로 이는 실제 서비스에서 사용하기에 힘들 것입니다. 즉, 안정적인 서비스를 운영하기 위해서는 유동적인 IP 주소..
[AWS] CloudWatch Logs 서비스를 운용하면서 많이 하게 되는 일 중 하나는 바로 로그를 읽는 일입니다. 로그는 시간에 따라 어떤 일이 발생했는지 알 수 있게 해주는 객관적인 단서입니다. 로그를 기록하고 관리하는 일은 매우 중하며 서비스의 크기가 커질수록 로그의 양 또한 늘어날 것이기 때문에 필요한 로그를 필요에 따라 손쉽게 찾을 수 있도록 관리하는 일 또한 중요합니다. 아마 이 글을 보는 개발자 분들도 개발을 하면서 에러가 발생했을 때 로그를 확인해가며 수정을 한 경험은 많이 있을 것이라고 생각합니다. 로그를 관리하면서 생기는 문제 중 유실의 문제 또한 있습니다. Auto Scaling으로 인스턴스가 하루에도 여러번 실행되고 종료될텐데, 인스턴스가 종료된다면 내부에 있는 데이터 또한 모두 유실이 되므로 내부에 있는 중요한 정보들..
[AWS] CloudWatch 기존에 했던 것이 운영 서버 관리에 필요한 환경 구성과 코드 배포라면, 모니터링 또한 알아보겠습니다. 모니터링 서버 모니터링은 안정적인 서비스 운영이라는 목적이 있습니다. 만약 서버 장애가 발생하고 이를 오랜 시간동안 해결하지 못한다면 서비스 사용자들은 해당 서비스에 대한 신뢰를 잃게 될 것입니다. 제일 좋은 해결책은 큰 장애가 발생하기 전에 예방을 하는 것이고, 만약 장애가 발생한다면 최대한 빠른 시간 내에 원인을 알아내고 오류를 잡아내야 합니다. 이러한 원인을 찾기 위해 꼭 필요한 것이 모니터링입니다. 서버 모니터링의 영역은 4가지로 구분이 됩니다. 인프라에 대한 모니터링 어플리케이션이 돌아가는 인프라에 장애가 발생하거나 징후가 보이는지 파악 클라이언트의 요청에 대한 모니터링 클라이언트에서 우리가 의..
[AWS] CodeDeploy (2/2) 이제 CodeDeploy를 사용하기 위한 준비 작업을 마쳤고, 실제로 사용을 해보겠습니다. 1. CodeDeploy를 검색하여 들어간 후, 어플리케이션 생성을 클릭합니다. 2. 어플리케이션의 이름을 적은 후, 컴퓨팅 플랫폼은 EC2 인스턴스에 배포를 할 것이기 때문에 EC2를 선택해줍니다. 3. 어플리케이션 생성을 누른 후, 해당 어플리케이션에서 배포 그룹 생성을 클릭해줍니다. 4. 기존에 생성해준 서비스 역할을 선택해준 후, 현재 위치 배포를 해볼 것이므로 배포 유형은 현재 위치 배포로 선택해줍니다. (배포의 종류 - hanjustudy.tistory.com/17?category=789280) 5. 환경 구성은 배포 그룹에 어떤 인스턴스를 추가할지 지정하는 화면이고, 대상 그룹과 마찬가지로 EC2 인스..
[AWS] CodeDeploy (1/2) 앞선 포스트에서 CodeDeploy로 배포 자동화를 하기 위해 필요한 IAM을 설정하였습니다. AWS CodeDeploy는 Amazon EC2 인스턴스 및 온프레미에서 실행 중인 인스턴스를 비롯하여 모든 인스턴스에 대한 코드 배포를 자동화하는 서비스입니다. CodeDeploy를 사용하면 배포 동안 가동 중지 시간을 줄이는데 도움이 되고, 복잡한 어플리케이션 업데이트 작업을 처리할 수 있습니다. 또한 오류가 발생하기 쉬운 수동 작업의 필요성이 없어지고 인프라에 따라 서비스가 확장되므로 많은 수의 인스턴스에 쉽게 배포가 가능해집니다. 이제 CodeDeploy로 배포할 수 있는 인스턴스가 되기 위해서는, 다음과 같은 조건을 만족해야 합니다. 1. 올바른 권한을 가진 역할이 필요 2. CodeDeploy Age..
[AWS] IAM 배포 자동화에 대해서 실습을 하기 이전에, 먼저 알아야 할 것이 있습니다. 사용자 권한 제어 서비스인 AWS IAM(Identity and Access Management)는 AWS에 대한 개별 액세스 및 그룹 액세스를 안전하게 제어할 수 있습니다. 사용자 자격 증명을 생성 및 관리하고, 이러한 IAM 사용자에게 리소스를 액세스할 수 있는 권한을 부여할 수 있습니다. 또한, AWS 외부의 사용자에게 권한을 부여할 수도 있습니다. IAM의 경우에는 사용한다고 추가로 금액이 발생하거나 하지는 않습니다. IAM을 사용하기 위해 필요한 용어들을 정리해보겠습니다. 권한 AWS의 서비스나 자원에 어떤 작업을 할 수 있는지 명시해두는 규칙입니다. 정책 권한들의 모음입니다. 사용자나 그룹에 직접 적용할 수는 없고, 권..
[AWS] Route 53, HTTPS, SSL/TLS, Certificate Manager AWS에서는 Route 53이라는 서비스를 통해 도메인 등록 대행 기능을 제공합니다. 도메인을 등록하기 위해서는 Route 53의 메인 화면에서 등록된 도메을 누른 후 등록하고자 하는 도메인을 입력합니다. 검사를 하면 사용 가능한지와 비슷한 도메인들 목록을 보여줍니다. Amazon Route 53은 높은 가용성과 확장성이 뛰어난 DNS 웹 서비스로, 사용자의 요청을 Amazon EC2 인스턴스, 로드 밸런서, S3 버킷 AWS 기반 인프라에 효과적으로 연결됩니다. 이는.. 실제로 돈이 들기 때문에 생략하겠습니다. HTTPS(HTTP Secure) HTTPS는 HTTP 프로토콜의 보안이 강화된 버전입니다. HTTP 프로토콜에 SSL/TLS 암호화 프로토콜을 이용해 전송되는 데이터를 암호화하는 과정을 추가한..