
JVM(Java Virtual Machine)이란 자바 프로그램의 실행 환경을 만들어주는 가상 머신 JVM(Java Virtual Machine)은 자바 프로그램을 실행하는 가상 머신이다.바이트 코드 기반으로 동작하는 자바 프로그램은 기계어를 다루는 CPU나 메모리 같은 자원을 직접 활용할 수 없다.JVM 내부의 Runtime Data Area와 Execution Engine과 같은 구성 요소들이 컴퓨터 자원을 활용함으로써 자바 프로그램의 실행이 가능해진다. RuntimeDataArea가 바이트 코드 기반 데이터를 저장하고,CPU는 인터프리터를 통해 바이트 코드를 실행시킴으로써 프로그램을 동작하게 한다. 자바의 플랫폼 독립성 자바 컴파일러는 자바파일(*.java)을 자바 바이트 코드(*.class)로 ..

안녕하세요. EC2에서 Amazon Linux 서버에서 tomcat7, java8으로 배포하여 실행중에 있습니다. 프리티어환경에서 개발을 하다보니 메모리가 부족해졌더라고요. 계속해서 톰캣은 Out of Memory 에러를 뱉어내고 서버의 메모리는 85%까지 도달해버려서 로드밸런서가 healthcheck를 계속 실패하고 502 badgateway 빈도수가 점점 높아져서 어쩔수 없이 프리티어를 포기하고 메모리를 높였습니다. 메모리 스왑도 해보았지만 별 소득이 없더라고요. cloudwatch는 많은 기능을 제공하지만 서버의 메모리 사용량, 사용률, 남은 공간에 대한 지표는 제공해주지 않습니다. 따라서 개발자 또는 서버관리자가 직접 코드를 통해 cloudwatch에 지표를 남겨야 합니다. 아마존 공식 도큐멘트에..

AWS Amazone linux2 인스턴스에서 스프링 웹프로젝트를 배포한 환경입니다. 새로운 표준시간대로 업데이트 하기 위해 /etc/sysconfig/clock 파일을 열어 줍니다. 밑의 sudo nano 명령어로 실행 sudo nano /etc/sysconfig/clock 편집기가 열리면 아래 사진처럼 ZONE="Asia/Seoul" 로 수정합니다. UTC=true 항목을 다른 값으로 변경하며 안됩니다. 인스턴스가 현지 시간 정보를 참조할 때 표준 시간대 파일을 찾을 수 있도록 /etc/localtime과 표준 시간대 파일 사이에 심볼 링크를 생성합니다. sudo ln -sf /usr/share/zoneinfo/Asia/Seoul /etc/localtime 시스템을 재부팅하여 적용합니다. sudo r..
안녕하세요. 스프링프레임워크 환경에서 sockjs와 stomp로 채팅기능을 구현하고 있습니다. 실제 채팅 어플리케이션에서 사용하는 메시지를 상대방이 읽었는지 안읽었는지 읽음/안읽음 기능을 구현하기 위해 소켓 연결생성시 실행되는 메소드와 연결종료시 발생하는 메소드를 사용해서 구현하려고 했기데 소켓이 연결되고 종료되는 시점을 채팅창을 벗어나면 서버에서 바로 알아차려야합니다. 사파리를 제외한 모든 브라우저에서 채팅창을 벗어나는 순간 소켓을 종료시키지만 사파리의 경우에만 최대 1분 정도의 딜레이 시간이 있었습니다. 정확히 말하면 윈도우용 사파리에서만 딜레이가 있습니다. 맥과 아이폰 환경에서 최신 사파리를 사용하면 다른 브라우저와 마찬가지로 페이지를 벗어나는 순간 소켓이 종료됩니다. 현재 사파리에서는 윈도우용 사..

백업 및 복원을 서버를 사용하는 사람들에게는 필수적으로 알아야할 내용이며 백업하는 습관은 의무적으로라도 해야할한만큼 중요한 습관입니다. AWS는 백업 및 복원 그리고 백업 주기를 자동으로 설정할 수 있는 기능을 제공하고 있습니다. 개념 AWS의 백업 방식에는 크게 AMI 이미지 생성방식과, EBS 스냅샷 생성방식이 있습니다. 간단하게 AMI 이미지 생성방식과 EBS 생성방식의 차이를 알아보면 AMI 이미지 생성 방식은 컴퓨터 하나를 통째로 백업한다고 생각하시면 됩니다. 운영체제와 하드디스크에 있는 모든 내용을 백업하는것이고, EBS 스냅샷 생성방식은 하드디스크를 백업하는 방식입니다. AMI 이미지 생성방식에서는 EC2와 연결되어 있는 하드디스크의 개념인 EBS를 모두 백업을 하지만 EBS스냅샷 방식에서는..

안녕하세요. 오늘은 SSL 인증서 발급과 HTTPS 구축을 하는 방법에 대해 알아보겠습니다 . 혹시 AWS에 도메인 등록과 도메인과 연결되어 있는 서비스가 없다면 이전 포스팅을 참조해주세요. developer111.tistory.com/20 [AWS] EC2 인스턴스 서버에 도메인 연결하기 ec2 서버에 웹프로젝트를 배포하고 ipv4 주소로 접근까지 가능하다면 웹프로젝트를 성공적으로 배포를 한것입니다. 허나, 우리가 평소에 웹사이트에 접근할때 ipv4 주소로 접근하는 경우는 거의 developer111.tistory.com SSL 인증서 발급 aws의 Certificate Mangager 서비스로 들어가면 SSL 인증서를 만들 수 있습니다. 인증서 요청 버튼을 눌러 인증서를 만들어 보겠습니다. 공인 인증..

ec2 서버에 웹프로젝트를 배포하고 ipv4 주소로 접근까지 가능하다면 웹프로젝트를 성공적으로 배포를 한것입니다. 허나, 우리가 평소에 웹사이트에 접근할때 ipv4 주소로 접근하는 경우는 거의 없습니다. 대부분의 경우 도메인 주소로 접근을 하게 됩니다. 도메인을 연결하여 서버를 사용하려는 분들을 위해 aws에서 ec2 서버와 도메인을 연결하는 방법을 알려드리도록 하겠습니다. 준비사항 미리 등록되어 있는 도메인, 우선 도메인이 등록되어 있어야 합니다. aws를 통해 구매할수도 있고, 다른 도메인 업체를 통해 구매할수도 있으며, 기존에 보유한신분들도 있어 방법이 워낙 다양하여 별도의 포스팅을 하기보다는 각자 자신의 상황에 맞게 도메인을 aws에 등록해주시기 바랍니다. 기존에 보유하신 분들도 aws에 도메인을..

이번에는 리눅스 서버에 mariadb를 설치해보도록 하겠습니다. 이전 포스팅에서 war파일 배포를 했었는데 mariadb를 먼저 설치하고 war파일을 배포해도 상관은 없습니다. 다만 자신이 사용하던 db의 내용을 그대로 백업해서 복원해야 하는 경우 파일질라를 사용하기 때문에 파일질라를 사용법을 모르시는 분이 있을 수 있어 war파일 배포 포스팅을 먼저 한후 \ mariadb설치 포스팅을 진행하였습니다. 굉장히 간단하니 빠르게 설명을 진행하겠습니다. 마리아db 다운 yum install -y mariadb-server 내가 다운 받은 마리아db 버전 확인 rpm -qa maria* mysqlDB생성 및 계정 생성 mysql_install_db --user=mysql 시스템 부팅시 자동 시작 설정 syste..