소개
게시글
질문&답변
2024.10.31
goopang-target-group 에서 unhealthy
네 맞습니다.하나의 인스턴스에서 유저 데이터 스크립트가 초기에 함번 실행되고, 중단하고 다시 시작할땐 스크립트기 실행되지 않습니다.현재 구조로 답변 드리면 계속 접속해서 실행시켜줘야하는게 맞습니다.하지만 이후 강의에서 배우게 되는 시작템플릿과 오토스케일링 그룹을 도입하게 되면 이런 부분은 간단하게 해결되니 이후 강의도 수강해주시면 도움 되실거에요!넵 이해했습니다! 덕분에 찝찝했던 부분 없이 속 시원하게 해결되었습니다! 감사합니다!!
- 1
- 11
- 209
질문&답변
2024.10.31
goopang-target-group 에서 unhealthy
안녕하세요 강사님. 답변해주신 내용 확인했습니다!그렇다면, 초기에 private-ec2-instance 를 처음 실행할 때가 아닌, Stop Instance 로 중단했다가, Start Instance 로 인스턴스를 재시작하는 경우에는 User Data 의 스크립트가 실행되지 않는다는 말씀이시죠? 그렇다면 인스턴스 실행을 중단(Stop Instance)을 했다가 재실행(Start Instance)할 때 마다 User Data 의 스크립트를 실행하는 방법은 없을까요?매번 private-ec2-instance 에 접속해서 직접 스크립트를 실행해서 테스트를 진행해야 할까요?
- 1
- 11
- 209
질문&답변
2024.10.31
goopang-target-group 에서 unhealthy
안녕하세요 강사님. 빠른 답변 항상 감사드립니다.말씀해주신 스크립트 내용을 private-ec2-instacne 의 User Data 내용으로 변경 후에는 역시나 Health checks failed 하였으나,private-ec2-instance 에 EC2 Instance Connect Endpoint 를 이용하여 직접 접속한 후에 aws-operation-prac 으로 폴더 이동 후에 아래 명령어를 직접 실행했을 때는 health check 성공한 것으로 확인됩니다. ./gradlew build sudo java -jar build/libs/aws-msa-monolithic-prac-0.1.jar 뭔가 ec2 인스턴스에서 sudo java -jar 로 애플리케이션 실행 후에 뭔가 문제가 있는 걸까요? private-ec2-instance 에 직접 접속 후에 ls-al 명령어로 파일 확인 시에 aws-operation-prac 프로젝트도 정상적으로 git clone 되어 있는 것 확인했습니다.
- 1
- 11
- 209
질문&답변
2024.10.31
goopang-target-group 에서 unhealthy
우선 target group의 health check settings에 interval 시간이나 Unhealthy threshold 수를 늘려보면 좋을것같습니다.interval - 30초 이상Unhealthy threshold - 4회 이상이렇게 넉넉하게 설정해서 테스트하고, 테스트 한번 부탁드릴게요!넵 답변 감사합니다 강사님. 말씀해주신 것 처럼 Unhealthy threshold - 5회, interval - 30초 | Unhealthy threshold - 7회, interval - 60초 로 설정해보았는데, 2번 다 여전히 health checks failed 로 확인됩니다.. 추가적으로 확인해볼 부분이 있을까요..? (사진) (사진)
- 1
- 11
- 209
질문&답변
2024.10.31
goopang-target-group 에서 unhealthy
안녕하세요 강사님. 빠른 답변 항상 감사드립니다. 지금으로 의심되는 부분은 보안그룹 설정 정도 될것같습니다.alb에서 ec2 인스턴스로 가는 트래픽에 대한 보안그룹 설정 한번 확인 부탁드릴게요!정상적으로 설정되어있다면, 인스턴스가 생성되고, 애플리케이션이 실행된 상태에서 인스턴스에 접속하여 curl로 health_check 요청이 정상적으로 되는지 그리고 target group에 설정된 health check 설정도 확인해보면 좋을것같습니다! 말씀해주신 부분들 전부 확인해보았는데, 문제가 없어 보여서 다시 질문 드립니다..우선, goopang-alb-sg 의 inbound-rules 에서 http 요청 받을 수 있도록 설정 되어 있고, goopang-private-ec2-sg 의 inbound-rules 에는 alb 와 bastion-host sg 들 요청 받을 수 있도록 설정되어 있는 것 확인했습니다. target-group 의 Health check settings 도 아래 이미지와 같이 /health_check 경로 설정 등 강의 설명과 같이 설정되어 있는 것 확인했습니다.bastion-host 인스턴스를 이용하여 private-ec2-instance 접속 후에 curl -XGET 'localhost/health_check' 로 요청 정상 작동 확인 시에는 아래의 코드 블럭 내용과 같이 server 에 접속 실패하였다고 나옵니다.private-ec2-instance에 EC2 Instance Connect Endpoint 를 이용하여 직접 접속 후 같은 요청을 보내보아도 아래 코드 블럭과 같은 에러(Failed to connect to localhost port 80 after 0 ms: Couldn't connect to server)가 반환됩니다.. private-routing-table 에도 nat-instance 설정되어 있는 것 확인했습니다. User Data 스크립트 log 확인(cat /var/log/cloud-init-output.log)은 이전 답글에 보낸 것과 같이 AwsMsaMonolithicPracApplicationKt 서버가 제대로 떴다가 다시 shutdown 되는 것으로 보입니다.. 혹시 제가 추가적으로 확인해볼만한 것이 있을까요..?(위에 글로 설명한 부분들 확인하기 쉽게 아래의 로그들과 이미지들을 첨부했습니다.)[ec2-user@ip-10-0-1-10 ~]$ curl -XGET 'localhost/health_check' curl: (7) Failed to connect to localhost port 80 after 0 ms: Couldn't connect to server 2024-10-24T16:36:51.158Z INFO 25901 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 80 (http) with context path '' 2024-10-24T16:36:51.182Z INFO 25901 --- [ main] .p.m.a.AwsMsaMonolithicPracApplicationKt : Started AwsMsaMonolithicPracApplicationKt in 7.333 seconds (process running for 8.101) Hibernate: select count(*) from users u1_0 Hibernate: select count(*) from products p1_0 Hibernate: select count(*) from cart_items c1_0 Hibernate: insert into users (email,name,password,id) values (?,?,?,default) Hibernate: insert into users (email,name,password,id) values (?,?,?,default) Hibernate: insert into products (description,name,price,id) values (?,?,?,default) Hibernate: insert into products (description,name,price,id) values (?,?,?,default) Hibernate: insert into cart_items (product_id,quantity,user_id,id) values (?,?,?,default) Hibernate: insert into cart_items (product_id,quantity,user_id,id) values (?,?,?,default) Hibernate: insert into cart_items (product_id,quantity,user_id,id) values (?,?,?,default) Hibernate: insert into cart_items (product_id,quantity,user_id,id) values (?,?,?,default) 2024-10-24T16:48:45.238Z INFO 25901 --- [p-nio-80-exec-1] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring DispatcherServlet 'dispatcherServlet' 2024-10-24T16:48:45.239Z INFO 25901 --- [p-nio-80-exec-1] o.s.web.servlet.DispatcherServlet : Initializing Servlet 'dispatcherServlet' 2024-10-24T16:48:45.241Z INFO 25901 --- [p-nio-80-exec-1] o.s.web.servlet.DispatcherServlet : Completed initialization in 2 ms 2024-10-24T22:07:52.987Z INFO 25901 --- [p-nio-80-exec-9] o.apache.coyote.http11.Http11Processor : Error parsing HTTP request header Note: further occurrences of HTTP request parsing errors will be logged at DEBUG level. java.lang.IllegalArgumentException: Invalid character found in the request target [/index.php?s=/index/\think\app/invokefunction&function=call_user_func_array&vars[0]=md5&vars[1][]=Hello ]. The valid characters are defined in RFC 7230 and RFC 3986 at org.apache.coyote.http11.Http11InputBuffer.parseRequestLine(Http11InputBuffer.java:482) ~[tomcat-embed-core-10.1.8.jar!/:na] at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:263) ~[tomcat-embed-core-10.1.8.jar!/:na] at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63) ~[tomcat-embed-core-10.1.8.jar!/:na] at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:894) ~[tomcat-embed-core-10.1.8.jar!/:na] at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1741) ~[tomcat-embed-core-10.1.8.jar!/:na] at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52) ~[tomcat-embed-core-10.1.8.jar!/:na] at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191) ~[tomcat-embed-core-10.1.8.jar!/:na] at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) ~[tomcat-embed-core-10.1.8.jar!/:na] at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) ~[tomcat-embed-core-10.1.8.jar!/:na] at java.base/java.lang.Thread.run(Thread.java:840) ~[na:na] 2024-10-26T09:40:33.557Z INFO 25901 --- [p-nio-80-exec-7] o.apache.coyote.http11.Http11Processor : Error parsing HTTP request header Note: further occurrences of HTTP request parsing errors will be logged at DEBUG level. java.lang.IllegalArgumentException: Invalid character found in the request target [/index.php?s=/index/\think\app/invokefunction&function=call_user_func_array&vars[0]=md5&vars[1][]=Hello ]. The valid characters are defined in RFC 7230 and RFC 3986 at org.apache.coyote.http11.Http11InputBuffer.parseRequestLine(Http11InputBuffer.java:482) ~[tomcat-embed-core-10.1.8.jar!/:na] at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:263) ~[tomcat-embed-core-10.1.8.jar!/:na] at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63) ~[tomcat-embed-core-10.1.8.jar!/:na] at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:894) ~[tomcat-embed-core-10.1.8.jar!/:na] at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1741) ~[tomcat-embed-core-10.1.8.jar!/:na] at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52) ~[tomcat-embed-core-10.1.8.jar!/:na] at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191) ~[tomcat-embed-core-10.1.8.jar!/:na] at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) ~[tomcat-embed-core-10.1.8.jar!/:na] at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) ~[tomcat-embed-core-10.1.8.jar!/:na] at java.base/java.lang.Thread.run(Thread.java:840) ~[na:na] 2024-10-27T07:24:26.673Z WARN 25901 --- [p-nio-80-exec-6] o.s.w.s.r.ResourceHttpRequestHandler : "Path contains "../" after call to StringUtils#cleanPath: [media../.git/config]" 2024-10-27T07:24:26.674Z WARN 25901 --- [-nio-80-exec-10] o.s.w.s.r.ResourceHttpRequestHandler : "Path contains "../" after call to StringUtils#cleanPath: [docs../.git/config]" 2024-10-27T07:24:26.679Z WARN 25901 --- [p-nio-80-exec-3] o.s.w.s.r.ResourceHttpRequestHandler : "Path contains "../" after call to StringUtils#cleanPath: [static../.git/config]" 2024-10-27T11:41:00.134Z INFO 25901 --- [ionShutdownHook] j.LocalContainerEntityManagerFactoryBean : Closing JPA EntityManagerFactory for persistence unit 'default' 2024-10-27T11:41:00.140Z INFO 25901 --- [ionShutdownHook] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Shutdown initiated... 2024-10-27T11:41:00.167Z INFO 25901 --- [ionShutdownHook] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Shutdown completed. (사진) (사진) (사진) (사진)
- 1
- 11
- 209