본문 바로가기

Trouble Shooting

(17)
S3 Batch Operations 사용 시에 주의할 점 S3는 Batch Operations이라는 기능을 제공해 준다. 이 기능을 사용하면 특정 Bucket에 있는 Object들을 쉽게 다른 Account 또는 현재 Account의 다른 Bucket에 옮길 수 있다. 비록 쓰면서 아쉬운 점들이 있었지만 많은 양의 Object를 손쉽게 옮길 수 있다는 점은 정말 큰 장점이라고 생각한다. (쓸 때마다 DataSycn와 기능이 합쳐졌으면 좋겠다 싶은 생각도 들었다) 다만 쓰면서 몇 가지 뼈아픈 실수를 하고 난 뒤에는 Batch Operations에 대한 PTSD가 생겼지만 (…) 그래도 여전히 대량의 Object를 옮길 때 매우 좋은 서비스이기도 하고, 실수를 반복하지 않기 위해 & 같은 피해자가 발생하지 않았으면 하는 마음에 포스팅을 작성해 본다. 1. S3 R..
S3 Virtual hosting of buckets에서 bucket, key 정보 추출하기 Public한 Object인 경우, S3에서 제공해 준 링크로 접근할 수 있다. 이 링크들은 아래 구성의 주소 같이 생겼다. 이것을 Virtual hosting of buckets라고 한다. https://s3.us-west-2.amazonaws.com/jbarr-public/puppy.jpg 그런데 만약 Virtual hosting of buckets에서 bucket명과 key값을 추출할 수 있는 메서드가 필요할 때에는 어떻게 해야 할까? 여기에서 bucket과 key는 각각 이렇게 매핑되어야 한다. bucket: jbarr-public key: puppy.jpg Java AWS SDK에서 bucket과 key 값을 추출할 수 있는 유틸리티성 메서드를 지원해준다. 그런데 내가 찾지 못한 건지 Ruby에..
도커라이징 작업을 하며 겪은 트러블 슈팅 1) Nginx 사용 시 컨테이너 종료 문제 상황 Dockerfile에는 맨 아래에서 CMD로 passenger와 nginx가 뜨게 구성했는데, 도커 컨테이너가 실행하자마자 중지되는 현상이 발생했다. CMD bundle exec passenger start -a localhost -p 10000 ~~(생략)~ --nginx-bin /opt/nginx/sbin/nginx && \ nginx 로그를 봤을 때에는 실행하다 문제가 발생한 것은 아닌 것 같은데 직접 컨테이너로 들어가 docker ps 명령어로 컨테이너 상태를 확인하면 실행하는 컨테이너 목록에서 보이지 않는다. 문제 원인 Nginx의 작동 방식과 연관이 있다. 초기 프로세스가 마스터 Nginx 프로세스와 일부 워커 프로세스만 생성한 다음에 중지하는..
[AWS] Elastic Beanstalk Timezone KST로 변경하기 🥺 문제 발생 일요일 11시마다 실행하는 스케줄러가 있어서 아래와 같이 스케줄러를 설정했다. @RequiredArgsConstructor @Service public class TestSubscribeScheduler { private final EmailTesterService emailTesterService; @Scheduled(cron = "0 0 23 * * SUN") public void sendEmailToTester() { emailTesterService.sendToTesters(); } } 로컬에서는 잘 되어서 아무 생각 없이 서버에 올렸는데, 스케줄러가 동작하지 않았다 … 그러다 로그를 확인했는데, 로그가 찍히는 timestamp와 애플리케이션 내부에서 찍히는 timestamp의 시간..
[AWS] Beanstalk 상태 경고(Warning) 해결 방법 문제 발생 Elastic Beanstalk 환경을 만들었는데, 자꾸 상태가 경고로 떠서 Github Action으로 CI/CD를 돌리면 배포는 되는데, 깃허브 액션이 상태때문에 자꾸 실패하는 현상이 발생했다. Environment health has transitioned from Pending to Warning. Access denied while accessing Auto Scaling and Elastic Load Balancing using role "arn:aws:iam::~:role/aws-elasticbeanstalk-service-role". Verify the role policy. 로그를 천천히 읽어보니 aws-elasticbeanstalk-service-role에 권한이 없어서 오류..
[AWS] Elastic Beanstalk 502 Bad Gatway 해결방법 문제 발생 AWS Elastic Beanstalk을 사용하여 Spring Boot 프로젝트의 첫 배포를 했는데, 502 Bad Gateway 오류가 발생했다. 해결 방법 AWS Elastic Beanstalk은 기본적으로 5000 포트를 사용하기 때문에, 포트 변경을 해주어야한다. 구성으로 이동한다. 소프트웨어의 편집으로 이동한다. 포트를 5000으로 바꿔준다. 잘 나온다!
[Spring Boot & intelliJ] lombok cannot find symbol 해결 방법 문제 발생 lombok을 적용해서 코드를 작성했는데 관련 코드에 cannot find symbol 에러가 발생했다. 사실 예전부터 자주 발생하던거였는데 해결 방법을 자꾸 까먹는다 ... 😂 해결 방법 (1) intelliJ 설정 확인 Ctrl + Shift + A - Plugins에서 Lombok plugin이 깔려있는지 확인한다. 깔려있지 않다면 install을 한다. File - Setting - Build, Execution, Deployment에서 Enable annotation processing에 체크 표시가 되어있는지 확인한다. 만약 체크 표시가 안되어있으면 체크 해준 후에 Apply해준다. (2) 의존성 확인 build.gradle dependencies { compile('org.proj..
[Spring Boot] POI 여러 CellStyle 사용 시 마지막 셀의 스타일만 적용이 되는 오류 해결방법 TL;DR 하나의 CellStyle에 여러 개의 스타일을 동시에 넣을 수 없기 때문에 따로따로 만들어주는 방법으로 해결했다. 문제 발생 POI를 사용해서 하나의 CellStyle에서 여러 스타일을 사용할 때 마지막 셀의 스타일이 전체에 적용되는 오류가 발생했다. 해결 방법 구글링으로 열심히 뒤져보니 하나의 CellStyle에 여러 개의 스타일을 넣을 수 없었다. 그래서 기존 소스 코드를 보면 Cell cells = rows.createCell(29); // 쿠폰 cells.setCellStyle(style); 이런 식으로 하나의 CellStyle을 계속 재사용하면서 사용했기 때문에 위와 같은 이슈가 발생했던 것이었다. 그렇다고 하나의 row마다 createCellStyle()을 이용해서 만들기에는 Cel..