Cloud/AWS
-
[AWS] EC2 Nginx Access log를 CloudWatch로 전송하는 법Cloud/AWS 2021. 5. 12. 13:36
Nginx Access Log CloudWatch로 전송하는 법 이번 글에서는 위의 그림과 같이 EC2에 설치된 Nginx Access Log를 CloudWatch로 전송하는 법에 대해서 정리해보겠습니다. IAM 역할 생성 역할에다 CloudWatchAgentServerPolicy 정책을 추가하겠습니다. 그리고 원하는 역할 이름을 정하고 정책이 잘 선택되었는지 확인 후에 역할을 생성하겠습니다. 저는 새로 EC2 Linux2 버전으로 만들 것이기 때문이 위와 같이 IAM 역할을 추가하겠습니다. (만약 기존에 존재하는 EC2를 사용할 것이라면 위에서 만든 역할을 해당 EC2에게 적용해주면 됩니다.) EC2가 생성이 되었으면 접속을 한 후에 CloudWatch Agent 설치를 해보겠습니다. Apache 웹 ..
-
[AWS] Lambda로 Thumbnail 이미지 자동 생성하기Cloud/AWS 2021. 5. 11. 13:12
AWS Lambda로 Thumbnail 자동 생성하기 특정 앱 또는 웹을 사용하다 보면 아래와 같이 썸네일 이미지를 본 적이 있을 것입니다. 아래와 같은 작은 화면을 제공하는 이미지가 리스트로 나열되는데 고품질의 이미지 파일이라던지 큰 사이즈의 파일이 제공된다면 로딩 속도에서 차이가 발생할 것입니다. 그래서 원본 이미지를 썸네일 이미지로 제작해서 사용합니다. 이 때 썸네일 이미지를 직접 제작해서 업로드 하고 사용할 수도 있지만, 매 번 그럴 수는 없기 때문에 이를 자동화해서 사용하는 것이 좋습니다. 이러한 자동화를 아래와 같은 Flow로 진행해보려 합니다. 위의 그림 처럼 원본 이미지를 S3에 업로드하면 Lambda에 Trigger를 걸고, Labmda가 S3에 썸네일 이미지를 만들어서(이미지 리사이징)..
-
[AWS] AWS Elastic Container Registry 간단한 실습해보기Cloud/AWS 2021. 5. 6. 14:38
ECR 이란 무엇일까? Amazon Elastic Container Registry (Amazon ECR)는 안전하고 확장 가능하고 신뢰할 수 있는 AWS 관리형 컨테이너 이미지 레지스트리 서비스입니다. Amazon ECR는 AWS IAM를 사용하여 리소스 기반 권한으로 프라이빗 컨테이너 이미지 리포지토리를 지원합니다. 이렇게 하면 지정된 사용자 또는 Amazon EC2 인스턴스가 컨테이너 리포지토리 및 이미지에 액세스할 수 있습니다. 선호하는 CLI를 사용하여 도커 이미지, Open Container Initiative(OCI) 이미지 및 OCI 호환 아티팩트를 푸시, 풀 및 관리할 수 있습니다. AWS 공식문서에서 ECR은 위와 같이 정의하고 있습니다. 간단하게 요약하면..? Private Docke..
-
[AWS] Spring, Nginx, Docker로 무중단 배포하기 - 2탄Cloud/AWS 2021. 4. 28. 11:00
Nginx, Docker를 사용하여 무중단 배포하기 - 2 Nginx, Docker를 사용하여 무중단 배포하기 - 1 에서 간단한 초기 설정들에 대해서 알아보았습니다. 이번에는 실제로 Docker, Nginx를 설정하고 shell script 파일을 작성하면서 배포를 진행해보겠습니다. 꼭!! Nginx 무중단 배포 의 글과 많이 관련이 되어 있으니 같이 참고하시는 것을 추천드립니다. EC2 CodeAgent 설치하기 sudo yum install -y aws-cli cd /home/ec2-user/ sudo aws configure wget https://aws-codedeploy-ap-northeast-2.s3.amazonaws.com/latest/install chmod +x ./install sud..
-
[AWS] Spring Boot로 ElastiCache 간단한 실습해보기Cloud/AWS 2021. 4. 26. 17:50
AWS ElastiCache 시작하기 이번 글에서는 AWS ElastiCache를 생성하고 아주 간단한 실습을 하는 것을 정리해보겠습니다. 이번 실습에서는 Redis를 사용해서 할 것이기 때문에 Redis를 체크하겠습니다. 위의 노드 유형을 t2.micro(프리티어)로 해야 합니다! (Default로 되어 있는 거 쓰면 좋은 성능이라 요금 많이 나옵니다..) 보안그룹은 따로 생성해서 지정해주어도 되고 기존이 6379 포트가 열려있는 보안그룹이 있다면 그것을 사용해도 됩니다.(저도 열려있는 보안그룹이 있기 때문에 그것을 사용하겠습니다.) 그리고 나머지는 Default로 놓고 생성하겠습니다. 그러면 위와 같이 생성이 되는데 5분 정도 기다려야 생성이 완료됩니다. EC2 접속 후 redis-cli 설치하기 #..
-
[AWS] Spring Boot,Travis CI, CodeDeploy, Nginx로 무중단 배포하기Cloud/AWS 2021. 4. 22. 13:08
들어가기 전에 이러한 구조로 자동화 배포를 진행한 적이 있습니다. Github에 push만 하면 자동으로 EC2에 새로운 버전의 jar가 배포되고 재 실행되어서 배포가 되었습니다. 하지만 위의 방식에는 단점이 존재합니다. 배포가 진행되는 도중에는 서버가 잠시 중단되야 한다는 점입니다. CodeDeploy가 EC2에 새로운 버전의 jar를 배포할 때, 기존의 실행 중인 jar를 kill 한 후에 새로운 버전의 jar를 실행시킬 것입니다. 이 과정에서 서버가 잠시 중단되어 사용자들은 서비스에 접속할 수 없게 됩니다. 현재 우리가 많이 사용하고 있는 서비스들을 보면 새로운 버전의 업데이트가 일어나더라도 서비스가 중단되거나 하지 않고 무중단으로 배포가 이루어집니다. 무중단 배포에는 인스턴스를 여러 개 만들어 현..
-
[AWS] ELB(Elastic Load Balancer) 개념 정리Cloud/AWS 2021. 4. 20. 14:19
로드 밸런싱 개념 정리하기 이번 글에서는 로드 밸런싱을 공부하면서 헷갈렸던 부분을 정리해보겠습니다. (어쩌면 당연한 부분들인데 헷갈렸던 것들이 있습니다,,) 로드 밸런서를 왜 사용하는지는 다들 알고 있을 것입니다. 서버 한대로만 트래픽을 받으면 그 서버에 부하가 걸리기 때문에 로드 밸런서를 통해서 여러 서버로 트래픽을 분산시키기 위해서 사용합니다. 로드밸런서를 사용하면 아키텍쳐는 위와 같습니다. 즉, 클라이언트는 로드밸런서에 접속을 하고 로드밸런서는 해당 트래픽을 각각의 Target-Group 인스턴스들로 분산을 시켜주는 것입니다. 여기서 궁금증이 생겼습니다.(지금 생각해보면 당연한 것인데.. 그럼에도 정리를..) 타겟 그룹마다 인스턴스의 역할이 다른것인가? 예를들어, Target-Group A의 인스턴..
-
[AWS] Auto-Scaling, Load-Balancer, CodeDeploy 현재위치 자동화 배포하기Cloud/AWS 2021. 4. 20. 11:53
Auto-Scaling CodeDeploy 현재 위치 자동화 배포하기 저번 글 에서 Blue/Green 배포가 무엇인지를 배웠습니다. 이번 글에서는 CodeDeploy 배포 방식 중에 하나인 현재 위치 배포 방식으로 실습을 진행해보겠습니다. 현재 위치 배포가 무엇인지 잘 모르겠다면 여기 를 읽고 오시면 됩니다. 이번 글은 저번 글 에서 다루고 있는 내용과 비슷한 부분이 있기 때문에 저번 글을 먼저 읽고 오시는 걸 추천드립니다. 이번 글에서 사용할 기술 Spring Boot Travis CI CodeDeploy S3 Auto-Scaling Load-Balancer Github 이번 글에서 사용할 아키텍쳐 이번 글에서 해보려는 아키텍쳐는 위와 같습니다. 즉, Auto-Scaling-Group을 2개를 만들고..