분류 전체보기
-
[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..
-
[Spring] Spring Boot AWS S3 사진 업로드 하는 법Server/Spring Boot 2021. 5. 3. 16:33
Spring Boot S3 파일 업로드 하는 법 이번 글에서는 Spring으로 AWS S3에 파일 업로드 하는 글을 정리해보겠습니다.(기존에 썼던 글은 잘못되거나 부족한 점이 많아서 이번 기회에 다시 써서 정리해보려 합니다.) AWS S3 Bucket 생성하기 먼저 S3 버킷을 생성합니다. 버킷 이름만 설정한 후에 나머지 설정은 Default 설정 그대로 두고 생성하겠습니다. IAM 사용자 S3 접근 권한 추가 먼저 IAM 사용자를 생성하겠습니다. 그리고 위와 같이 IAM 사용자 생성 후에 S3FullAccess 권한을 추가하겠습니다. Spring Boot 파일 업로드 implementation "com.amazonaws:aws-java-sdk-s3:${awsJavaSdkVersion}" ex) impl..
-
[Spring] Spring에서 Swagger 사용하는 법Server/Spring REST API 2021. 4. 30. 17:24
Spring에서 Swagger 사용하는 법 Swagger는 간단한 설정으로 프로젝트에서 지정한 URL들을 HTML화면으로 확인할 수 있게 해주는 프로젝트입니다. 저 같은 경우는 기존에 Github wiki로 매번 API 명세서를 작성했습니다. 하지만 Swagger를 이용하면 간단한 설정 하나만 하면 API 문서를 자동으로 만들어주기 때문에 상당히 편리하게 이용할 수 있습니다. pom.xml io.springfox springfox-swagger2 2.9.2 io.springfox springfox-swagger-ui 2.9.2 build.gradle compile group: 'io.springfox', name: 'springfox-swagger2', version: '2.5.0' compile gro..
-
[Spring] Bean LifeCycle 이란 무엇일까?Server/Spring 2021. 4. 29. 09:21
빈 생명주기 콜백(Bean LifeCycle) 데이터베이스 커넥션 풀이나, 네트워크 소켓처럼 애플리케이션 시작 시점에 필요한 연결을 미리 해두고, 애플리케이션 종료 시점에 연결을 모두 종료하는 작업을 진행하려면, 객체의 초기화와 종료 작업이 필요합니다. 스프링 빈도 위와 같은 원리로 초기화 작업과 종료 작업이 나눠서 진행됩니다. 간단하게 말하면 객체 생성 -> 의존관계 주입이라는 라이프사이클을 가집니다. 즉, 스프링 빈은 의존관계 주입이 다 끝난 다음에야 필요한 데이터를 사용할 수 있는 준비가 완료됩니다. Spring 의존관계 주입 과정 가장 처음에는Spring IoC 컨테이너가 먼저 만들어지는 과정이 일어납니다. 위의 그림은 Spring Boot에서 Component-Scan으로 Bean 등록을 시작하..
-
[Spring] Spring 에서 의존성 주입이란 무엇일까?Server/Spring 2021. 4. 29. 09:15
Spring으로 의존성 주입 하기 저번 글 에서 아래의 코드와 같이 내부에서 의존성을 직접 만드는 것이 아니라 외부에서 의존성을 주입해주는 것에 대해서 알아보았습니다. (저번 글을 안보고 오셨다면 먼저 보고 오시는 것을 추천합니다.) public class Car { private Tire tire; public Car(Tire tire) { this.tire = tire; } } 즉, 내부에서 Tire 의존성을 만들면 Car와 Tire는 강한 결합이 생기고, 외부에서 Tire를 주입해주면 Car와 Tire는 느슨한 결합이 될 수 있습니다. (좀 더 유연한 구조가 되는 것입니다.) 위와 같이 의존성 주입을 직접할 수도 있지만, 스프링에서는 Bean으로만 등록되면 IoC 컨테이너가 의존성 주입을 알아서 해..
-
[Travis CI] Travis CI application.yml 파일 암호화 복호화 하는 법DevOps/Travis CI 2021. 4. 28. 17:01
Travis CI에서 File 암호화 복호화 하는 법 Github에 push를 하면 Github이 Travis CI로 Hook을 날려서 CI가 진행이 됩니다. 진행을 할 때 로그를 보면 위와 같이 Git Project를 clone 받아서 진행하는 것을 볼 수 있습니다. 그러면 여기서 의문점이 생겼습니다. .gitignore 파일에 등록된 파일들은 어떻게 다운 받지? 라는 생각을 했습니다. 그래서 이번 글에서는 그 방법에 대해서 알아보겠습니다. Spring Boot 프로젝트 만들기 먼저 간단한 Spring Boot gradle 프로젝트를 하나 만들겠습니다. 그리고 위와 같이 application.properties -> application.yml로 바꾼 후에 .gitignore에 등록하겠습니다. 그리고 ..