반응형

현상

어느날.. 서버설정을 조금 만지고 서버를 재부팅했는데.. AWS 콘솔 접속이 안되는것이다....허걱

오류가 발생하여 인스턴스에 연결하거나 연결 상태를 유지할 수 없습니다. 이 인스턴스가 방금 시작된 경우 1~2분 후에 다시 시도하십시오. UPSTEAM_NOT_FOUND [519]

콘솔 접속 할 경우 위와같은 메시지와 함께 콘솔접속이 안되는 상황.. 1~2분 기다려보래서 10분을 기다려도 연결 할 수 없었다.

반응형

 

해결 방법

중지 > 실행

해결방법은 생각보다 간단했다.. 나는 계속 재부팅을 눌러 재부팅하만을 기다렸는데.. 재부팅으로 하면 안된다... 먼저 서버 콘솔에서 중지 명령을 먼저 해주고 인스턴스가 중지됨을 확인하고 다시 시작을 누른다.

 

사실 재부팅이 중지>시작을 합쳐놓은거지만 인스턴스에서 처리되는 것은 세부적으로 차이가 있다. 따라서, 재부팅 시도하지말고 중지와 시작을 나눠서 수행하면 정상 연결 되는 것을 볼 수 있다.

 

AWS 라이트세일 UPSTREAM_NOT_FOUND[519] 해결하기 / LightSail 콘솔 접속 안됨 문제 해결

반응형
반응형

이번에 아마존 EC2 인스턴스를 12개월 동안 무료로 사용할 수 있는 프리티어 기간이 끝난다는 메일을 받았다.

아무생각 없이 영원히 이용할 수 있을 것 같았던 EC2가.. 끝이라니..! 무료 사용 종료는 2020년 4월 30일.. 이번달이 지나고 나서 온디멘드 요금으로 전환된다.

그래서 그냥 유료로 기존 EC2 서버를 운용 할 것인가. 아님 그냥 서비스를 종료할까, 아니면 다른 서버로 이주해서 계속 서비스를 할 것인가 고민을 많이 했다.

고민끝에 서버를 이전하기로 했고, 기존 EC2 서버는 더 이상 요금이 발생하지 않도록 삭제하기로 했다.

1. EC2 인스턴스 종료 및 삭제

 

인스턴스 중지

EC2 인스턴스를 삭제하기 전에 실행중이라면 인스턴스를 종료해주자.

1. EC2 대시보드에서 인스턴스를 눌러주자.

2. 삭제하려는 인스턴스 선택

3. 인스턴스 상태 클릭

4. 인스턴스 중지 선택

정지할꺼냐고 물어보는데 중지를 눌러줍시다.

상단에 성공적으로 중지됐다고 나오고, 인스턴스 상태가 중지됨으로 나오면 완전히 중지된 상태이다.

인스턴스 종료(삭제)

이제 인스턴스를 삭제할 꺼다. 예전에 AWS 처음 할 때 저 인스턴스 종료가... 그냥 윈도우 잠깐 시스템 종료 해두듯이. 그냥.. 단순 종료인줄 알았는데.. 저거 서버 삭제다.. ㅋㅋ 아무생각없이 눌렀다가 서버 날아가서 오열했던 기억이 잠깐 난다.

1. 삭제할 인스턴스 선택

2. 인스턴스 상태 선택

3. 인스턴스 종료 선택

진짜 삭제할꺼냐고 묻는다. 종료를 눌러주자.

그럼 성공적으로 종료되었다는 메시지와 함께 인스턴스 상태를 보면 종료됨으로 표시된다. 처음에 어..? 삭제 끝났는데 왜 목록에 자꾸 남아있지!? 하고 이상해했다. 계속 새로고침을 눌러봐도 종료됨으로 떠있어서 이게 삭제가 아닌가? 했는데 한 5~10분 지나면 목록에서 사라진다 ㅋㅋ..

몇분 후면 이렇게 목록에서 사라져있다 ㅎㅎ 여기까지 EC2 인스턴스 삭제는 끝이다.

하지만, 인스턴스만 삭제고, 나머지 EIP 등으로 과금이 생길 수 있기때문에 깔끔하게 다른 것 까지 지워주자.

2. EIP 삭제 (Elastic IP / 탄력적 IP)

EIP를 사용하지 않고 유동 IP를 사용했다면 추가 과금 될 것은 없다. 하지만 서버에서 서비스를 운영하는 입장에서는 보통 고정 IP를 쓰고 프리티어에서 1개의 EIP는 무료로 사용 할 수 있기 때문에 아마도 다들 EIP 할당이 되어있을 것 같다.

EIP는 프리티어에서 1개까지는 무료지만, EIP할당 받아놓고 인스턴스를 Run 해놓지 않으면 과금이 발생한다. 보통 대학생들이 AWS에 돈나갔어요 ㅜㅜ 한번만 봐주세요 하고 보내는는 이유중, 이런 사유로 발생하는 경우가 많다 ㅋㅋ..

AWS 입장에서는 고정 IP를 한정적으로 가지고있고, 여기에 인스턴스가 돌아가지 않고 있다면, IP 자원 하나를 손실보는 것이기 떄문에 인스턴스가 안돌아가는 경우 과금을 하는 것 같다. 이제 할당된 EIP를 삭제하는 법에 대해 알아보자.

1. 좌측에 탄력적 IP를 눌러주자.

2. 삭제하려는 IP를 선택해주자.

3. 상단 작업을 클릭

4. 탄력적 IP 주소 릴리즈 를 눌러주자

진짜 삭제할 꺼냐고 묻는다. 릴리스를 눌러주자.

일단 여기까지 하면 보통 과금될 일은 없다. 추가적으로 AWS S3, Route 53, RDS, 스냅샷 을 사용할 경우 이 서비스들 각각 다 서비스를 삭제해주면 된다. 하지만 난 S3, RDS를 사용하지 않고 Route 53은 계속 사용할 것이기 떄문에 일단 여기까지만 했다.

다음은, 과금에 영향은 없지만 이 EC2와 관련된 것은 다 지우고 싶다 할 경우 진행하면 된다.

3. 보안그룹 삭제

일단 기존 EC2 에서 사용되었던 보안그룹도 삭제할 것이다. 보안 그룹이 뭐지? 하는 사람은 머.. 방화벽 정책정도로 생각하면 될 것 같다. 나중에 다시 EC2 인스턴스를 올려서 동일한 방화벽 정책을 사용할 경우에는 남겨두어도 좋지만, 난 라이트세일 서버로 이전했기 때문에 필요 없어서 지웠다. 머.. 나중에 EC2 인스턴스를 다시올릴때 필요하다면 다시 만들려고 한다. 머 어차피... DB포트정도만 열면되기 떄문..

1. 네트워크 및 보안 탭에 보안그룹을 클릭

2. 삭제하려는 보안 그룹 선택

→ 2번에 빨간 박스친 밑에 default 보안그룹은 말그대로 기본 설정이기 때문에 안지워도 된다. 본인이 만든것만 지우면 되기때문에 디폴트는 걍 무시한다.

3. 작업 선택

4. 보안그룹 삭제 선택

진짜 삭제할 꺼냐고 물어본다. 삭제를 눌러주자.

짜잔 삭제 완료

4. 키 페어 삭제

이제 기존 EC2 서버 접속간 사용했던 키페어를 삭제할 예정이다. 이거 머 삭제해도 되나..? 한번 고민은 해봤었는데 어치파.. 기존 EC2 접속에만 사용했었기 때문에 더 이상 그 인스턴스는 필요하지 않으니, 삭제해도 상관 없을 것이라고 판단됐다.

 

1. 네트워크 및 보안 키 페어 클릭

2. 삭제하려는 키 페어 선택

3. 작업 클릭

4. 삭제 클릭

그 다음 진짜 삭제할꺼냐고 묻는데 상당히 중요한 판단인가본지 직접 "삭제"라고 타이핑 하고 진행하라고 한다. 일단.. 삭제하기로 맘먹었기 때문에 그냥 삭제 치고 삭제를 누르자.

짜짠.. 키 페어 삭제 완료

삭제 후기

삭제 후기? 별거 없다. AWS 프리티어 1년간 정말 잘 썼다. 앞으로 이거 관련해서 추가 과금은 없겠지..? ㅎㅎ 요금 폭탄 안나오길 바란다.

#AWS #EC2 #인스턴스 #삭제 #프리티어 #종료 #방법 #탄력적IP #키페어 #보안그룹 #서버 #서버삭제 #인스턴스삭제

반응형
  1. 익명 2021.09.08 11:01

    비밀댓글입니다

  2. 익명 2022.04.15 17:10

    비밀댓글입니다

    • 외장_하드 2022.04.15 17:27 신고

      프리티어라디 엘라스틱 ip를 할당받아놓으셨다면 비용이 발생합니다!

  3. test 2022.05.05 19:59

    잊고있던 계정 인스턴스 덕분에 삭제했습니다. 두 달치 청구됐지만 ㅠ

  4. 지나가는나그네 2022.09.28 12:10

    감사합니다. 덕분에 쉽게 과금 걱정 덜었네요 ㅎㅎ

반응형

 

https://extsdd.tistory.com/126

 

[아마존 AWS EC2] AWS서버 8080 톰캣 포트 숨기기 / 포트포워딩 / 8080포트 번호 없이 들어가기 / iptables

https://extsdd.tistory.com/125 [아마존 AWS EC2] AWS서버 URL 주소에 프로젝트명 숨기기 / 톰캣 주소 변경 / 포워딩 / 스프링 / server.xm https://extsdd.tistory.com/124 [Maria DB] AWS EC2 원격 서버 마리아..

extsdd.tistory.com

  자 저번시간까진 내 서버 URL에서 프로젝트 이름명도 제거하고, 포트번호도 제거했다. 이번에는 IP형식의 내 주소에 도메인을 할당해보자! 비전공자들에겐 어려울 수 있으니 쉽게 설명해주겠다.

DNS (Domain Name System)

 

  모든 서버들은 IP주소를 가진다. 우리가 만든 AWS EC2서버도 하나의 IP주소를 가지듯이 우리가 알고있는 Naver나 Daum 이런친구들도 다 IP를 갖는다. 하지만 우리가 접속할땐 네이버의 ip를 치고들어가는게 아니고 naver.com을 치고 들어간다. 왜냐하면 IP로 외우고 접속하다보면 이게 딱봤을때 뭐하는 서버인지, 어디 주소인지도 모르고, 수많은 IP들을 다 외우고 다니긴 힘들기 떄문이다.

 

  그래서 DNS라는걸 이용한다 Domain Name System으로써 저 서버의 IP들과 우리 인간들이 알아먹을법한 naver.com 이런걸로 다 매칭을 시켜놓고 사람들이 주소창에 naver.com을 치면 저 DNS 서버에서는 해당 네이버 서버 IP로 변환시켜주는 시스템이다. 아무튼 우리가 이제 할 것도 이거랑 관련이 있는데 도메인을 구입한후 AWS에 등록시켜주는 작업을 할 예정이다.

 

1. 도메인 구입

 

  일단 가비아나 머 이런데서 살 수도 있는데 AWS에서 서비스하고 있는 Route 53에서 도메인을 구매해보자 가격차이는 크게 안난다. 머 1년에 1.4만원정도? 업체별로 천원, 이천원 차이인데 편한곳에서 구매하면 된다.

 

https://console.aws.amazon.com/route53/home?#

 

  위 링크로 들어가 Route 53 서비스 페이지로 들어가자

 

 

  저기 우측 도메인 등록의 지금 시작하기를 눌러보자.

 

 

  다시 도메인 등록 버튼 클릭!

 

 

 

  자 1번 박스에 자신이 구매하려는 도메인을 입력하자. 예를 들면 naver 같은걸루, 2번 박스는 최상위 도메인을 뭘로 할지 고르란건데 나는 당연히 가장 무난한 .com을 택했다. 그뒤 3번 박스의 확인 버튼을 누르면 가능한지 여부가 나오고 그 밑에는 유사한 것 들도 나온다. 지체 없이 장바구니에 추가해주자(4), 그리고 5번 박스를 보며 소계가 나온다. 1년에 12달러! 마지막으로 6번 박스의 계속을 눌러주자!

 

 

  그다음 적당히 내용을 입력해주고 계속버튼을 누르자. 아 맞다 전화번호 국가코드는 0없이 그냥 82만 넣어주면 된다. 한국 국가코드가 82다

 

 

  다음으로 넘어가면 이런 팝업이 나온다. 뭐 한마디로 이메일주소 구라면 죽는다란 뜻이다. 제대로 입력했는지 다시 한번 확인해보고 넘어가자! 15일 뒤까지 이메일로 인증안하면 취소된단 얘기다.

 

 

  차근차근 해보자 먼자 1번 박스 개중요하다. 이거 1년뒤에 자동결제 할꺼냐는건데 우리같은 취미로 하는분들은 비활성화를 해놓자.. 안그럼 1년뒤에 자동으로 결제된다. 혹시 꼭 이 도메인을 절대 빼앗기고 싶지 않은분은 뭐 자동연장이 좋겠지만.....1년뒤에 이거 결제해논게 기억이나 날까..? ㅠㅠ

 

  암튼 두번쨰 박스로 넘어가서 잘 할꺼냐는 말에 동의해주자. 마지막 3번 이메일 인증 받고오란다. 생각날때 지금 해두자. 15뒤에 해지되지 말고..

 

 

  짜잔 .! 메일함에 가보면 링크가 있다. 인증해주자.

 

 

  인증 완료!!

 

 

  다시 주문서로 와서 상태 새로 고침버튼을 눌러보자.

 

 

  진짜루 인증에 성공했다 이제 마지막으로 주문완료를(4) 눌러주자!

 

 

  짜잔! 주문성공! 결제 프로세스가 없는걸 보니 이미 EC2 인스턴스 만들때 등록했던 카드로 승인이 따지는 형태인거 같다.

 

 

  저기 보이는 도메인으로 이동버튼을 눌러주자!

 

 

  그럼 도메인 등록이 진행중이라고 나온다.

 

 

  한 2분 정도가 지나니 승인 문자가 왔다.

 

2. 도메인 등록

 

 

 

  대시보드로 이동해주자!

 

 

  그다음 호스팅 영역으로 이동! 숫자가 1이 카운트 된걸 볼 수 있다.

 

 

  자신의 도메인 이름을 클릭해보자!

 

 

 

  위와같은 화면이 나오는데 1번 박스에 있는 레코드 세트 생성 버튼을 누르자!

 

  2번 박스는 서브도메인이 있는경우에 설정하고, 없는사람은 두면된다. 보통은 없기에 걍 비워두면 된다. 그 밑에 유형은 주소체계인데 IPv4를 사용할꺼니 그냥 두자. 3번 박스는 캐싱시간인데 그냥 디폴트로 두자.. 가장중요한게 4번이다. 바로 연결하려는 자기 AWS EC2 인스턴스의 IP주소를 저기다 넣으면 된다. 5번은 라우팅 방식인데 심플한게 젤 좋으니 그냥 두자 ㅎㅎ 마지막으로 생성 버튼을 누르자!

 

 

  히힛..하나가 추가됐당.

3. 결과 확인

 

  다른 글들 읽어보면 15분은 걸린다고 하는데 새벽 1시44분 기준으로.. 머.. 해보니까 바로 됐다.

 

http://신청한도메인/reqUrl.do?reqParam=3

 

자 이제 최종적으로 자기가 신청한 도메인 + 우리가 만든 서비스를 치면 그대로 수행되는걸 볼 수있다. 위 주소대로라면 구글이 나올것이다.

 

캬..이제 주소 줄이는건 마스터 한 것 같다. 리뷰를 한번 해보자.

 

 

http://자기AWS아이피:8080/CP_service-1.0.0/reqUrl.do?reqParam=3

처음엔 포트번호에...프로젝트 이름에.. 너무 조잡했다. 하지만 https://extsdd.tistory.com/125이 포스팅을 통해서 저 프로젝트명을 없애줬다.

 

http://자기AWS아이피:8080/reqUrl.do?reqParam=3

 

후.. 프로젝트명을 없앴는데도 저 :8080 포트가 남아있다 ..ㅡㅡ 하지만 https://extsdd.tistory.com/126이 포스팅을 통해 우린 포트포워딩을 통해 80포트가 들어와도 자동으로 8080으로 연결될 수 있도록 설정했다

 

http://자기AWS아이피/reqUrl.do?reqParam=3

많이 줄여준거 같은데도 주소가 IP로 되어있으니까 사람들에게 소개하기 쪽팔린다... 이번 포스팅을 통해 도메인을 등록해주자.

 

http://도메인/reqUrl.do?reqParam=3

캬..이제야 다른 홈페이지처럼 간지가 나게 됐다 히히..

 

#아마존 #AWS #EC2 #인스턴스 #Route53 #서버 #도메인 #주소 #연결 #설정 #URL #DNS #등록 #구입 #비용 #톰캣 #스프링 #프로젝트

 

반응형
반응형

 

https://extsdd.tistory.com/125

 

[아마존 AWS EC2] AWS서버 URL 주소에 프로젝트명 숨기기 / 톰캣 주소 변경 / 포워딩 / 스프링 / server.xm

https://extsdd.tistory.com/124 [Maria DB] AWS EC2 원격 서버 마리아 DB 접속 / HeidiSQL / 데이터 삽입 / 테이블 생성 https://extsdd.tistory.com/123 [아마존 AWS EC2] #3 스프링/전자정부프레임워크 프로젝..

extsdd.tistory.com

  저번시간까지 AWS에 올린 내 스프링 프로젝트 URL에서 프로젝트 이름 빼는걸 했었다.

 

  http://자기AWS아이피:8080/reqUrl.do?reqParam=3

 

  위 링크처럼 프로젝트 이름도 빠지고 간단해 졌지만 아직도 :8080 포트 번호가 써져있어서 메이플 프리서버같은 느낌이 안날 수가 없다. 이번에는 저 8080 포트를 뺴보자!

 

1. EC2 쉘 Root 접속

 

 

 

 

  짜잔.. 접속 성공..!

 

 

  su 명령어를 통해 Root계정으로 들어가자.

2. 포트 포워딩 정보 입력

 

  iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8080

 

  위 명령어를 먹여주자! 저게 뭐냐면 라우팅정보를 가지고 있는 테이블이 있는데 앞으로 80으로 들어오는 포트번호는 8080으로 해석해주세요~ 라고 입력해 놓는거다. 그럼 우리가 그냥 인터넷 주소치듯이 (보통 인터넷 포트가 80포트니까 80포트는 생략함) 치면 사실 80포트로 요청이 갈껀데 저 테이블 정보를보고 아! 80포트는 8080으로 해석하라네!? ㅇㅋㅇㅋ 하고 8080으로 변환을 시켜주는거다. 그럼 우리 톰캣주소로 포워딩이 되는거다.

 

 

  말은 거창했는데 명령어를 먹이면 뭐.. 큰 반응은 없다..

3. 결과 확인

 

변경 전 : http://자기AWS아이피:8080/reqUrl.do?reqParam=3

변경 후 : http://자기AWS아이피/reqUrl.do?reqParam=3

 

자 변경 후 주소로 접속이 가능한걸 확인 할 수 있다. 아마도 우리 소스대로라면 구글을 띄울것이다.

 

#아마존 #AWS #EC2 #톰캣 #포트번호 #8080 #숨기기 #없애기 #포트포워딩 #없이들어가기기 #주소

 

반응형
반응형

 

https://extsdd.tistory.com/124

 

[Maria DB] AWS EC2 원격 서버 마리아 DB 접속 / HeidiSQL / 데이터 삽입 / 테이블 생성

https://extsdd.tistory.com/123 [아마존 AWS EC2] #3 스프링/전자정부프레임워크 프로젝트 AWS에 FileZilla로 배포하기 / 메이븐 빌드 / 자 여태까지 만들었던 프로젝트를 아마존에 배포할 시간이다. https://ext..

extsdd.tistory.com

  자 기나긴 여정끝에 드디어, AWS에 소스를 올려서 서비스가 정상적으로 장동하는지 까지 확인했다.! 하지만.. 문제가 있다..

 

http://자기AWS아이피:8080/CP_service-1.0.0/reqUrl.do?reqParam=3

 

  우리 프로젝트대로라면 위 링크대로 했을때 저 CP_service-1.0.0 이게 .war파일 명칭인데...저게 강제로 드러나게 되어있다... 메이플에서 캐릭만들자마자 손도끼하고 빨간장화를 신고다니는것마냥 쪽팔리다. 오늘은 저걸 없애줄거다.

 

1. SU 쉘 진입

 

 

 

  자 본인 EC2 쉘로가서 su를 입력하고 엔터를 누르고 비번을 쳐서 Root권한을 딴다.

 

2. 톰캣/conf 폴더로 이동

 

 

  다음으로 해야할 껀 자기가 설치한 톰캣 경로에 있는 conf 경로까지 가는 것이다. 내 글을보고 따라왔다면 난 /server/폴더에 만들어 놨기 때문에

# cd /server/apache-tomcat-8.5.55/conf

 

  위 명령어를 치고 가면 된다.

 

 

우와~ 이동됐다!

3. server.xml 수정

 

vi server.xml

 

 

  위 명령어를 이용해서 server.xml을 수정하자

 

 

  자 방향키를 이용해서 맨 밑으로 쭉 내려오면 Host태그 안쪽에 저 코드를 넣어주자.

<Context docBase="CP_service-1.0.0" path="/" reloadable="false" source="org.eclipse.jst.jee.server:CP_service-1.0.0"/>

 

  </Host> 이 태그가 나오기 전에 아무데나 넣어주면 된다. 나랑 프로젝트 이름이 다른사람들은 각자 알아서 CP_service-1.0.0 이거 대신에 본인 프로젝트명을 넣으면 된다.

 

  입력은 보드 i 버튼을 눌러 입력하고 입력이 완료되면 Shift+: 키를 누른후 wq를 입력후 엔터를 눌러주자.

 

4. 톰캣 재부팅

 

# cd /server/apache-tomcat-8.5.55/bin

 

  자 톰캣을 끄기위해 위 경로까지 가보자. 톰캣 밑에있는 bin경로로 가면 된다.

./shutdown.sh

 

위 명령어를 입력해 톰캣을 중지한다.

 

 

./startup.sh

 

이번엔 다시 켜주자 ㅎㅎ

 

 

완료!

5. 결과 확인

 

변경전 : http://자기AWS아이피:8080/CP_service-1.0.0/reqUrl.do?reqParam=3

변경후 : http://자기AWS아이피:8080/reqUrl.do?reqParam=3

 

  처음에 했던 테스트했던 URL인데 다른점이라면 중간에 프로젝트명이 바꼈다. 변경후 경로를 요청해보면 아마 원하는 창이 뜰꺼다. 변경전 주소를 떠도 될꺼고! 서버에서 중간에 CP_service-1.0.0 이라는 프로젝트명 경로가오면 / 경로로 포워딩시켜주는 원리인 것 같다.

 

  이제 프로젝트명이 안보이니 그래도 좀 구실은 갖춘것 같다.

 

  만약 저거 톰캣 껏다켜도 안되는사람은 rebbot 명령어로 EC2 인스턴스를 재부팅시키고 다시 Putty로 붙어서 해당 경로까지가서 다시 톰캣을 재실행봐라. 무슨 이유인지 모르겠는데. 톰캣 종료할때 프로세스가 안죽는 현상이 있는 것 같다..

 

 

#아마존 #AWS #EC2 #서버 #URL #주소 #프로젝트명 #숨기기 #톰캣 #변경 #포워딩 #serverxml

 

 

반응형
반응형

  자 여태까지 만들었던 프로젝트를 아마존에 배포할 시간이다.

https://extsdd.tistory.com/113

 

[Spring/eGov ] #8 이클립스에서 마리아DB 데이터 조회하기 / MyBatis / 컨트롤러 Controller / 서비스 / DAO /

https://extsdd.tistory.com/112 [Spring/eGov ] #7 스프링, 전자정부프레임워크 샘플 예제- 마이바티스(MyBatis)로 마리아 DB 연동하기 / https://extsdd.tistory.com/102 [Spring/eGov ] #6 웹 서비스 만들기 2..

extsdd.tistory.com

  여기까지 못따라온 사람은 위 글까지 마치고 오면 될 것 같다.

 

메이븐 프로젝트 / Maven

 

 

  자 지금까지 정자정부프레임워크(스프링)으로 간단한 서비스를 만들었고, 그걸 내 서버에서 돌려봤다. 서버에서 돌리기위해 이클립스상에서 Run을 누르면 JDK환경에서 실행할 수 있는 최소 실행파일만 생성되어 로컬 톰캣에 올라가는 것이지만. 이제 정식으로 내 서비스를 실제 서버에 올리려면 그 서버가 받아 들일 수 있게 만들어야한다.

 

  이게 바로 패키징 과정이라고 하며 Build라고도 부른다. 갤럭시폰을 만들기위해 삼성전자에서 액정 따로 사고, 메인보드사고, 저장장치사고 전선으로 대충 이어서 전원들어오고 작동시켜보면서 테스트는 해보자. 실제로 이런식으로 고객에게 팔지는 않는다. 그걸 다 다듬어서 플라스틱 외관에 담아 우리가 아는 핸드폰의 모양으로 만들어 고객에게 판다. 이거랑 똑같은거다. 소프트웨어도 실제로 완성을 하면 Build 과정을 통해 이걸 다른 JAVA환경에서 실행할 수 있게 만들어 줘야 하는 것이다.

 

 

 

 

 

  메이븐, 많이 들어봤을 것이다. 보통 라이브러리 관리할 메이븐 dependency를 이용해 간단하게 추가하니까 말이다. 맞다 보통 알고있다시피 메이븐이 간단하게 라이브러리 주소만 디펜던시로 걸어주면 알아서 그 라이브러리의 최신본을 따오는 기능을 수행한다. 하지만 더 중요한 기능이 있다.

 

  바로 이 프로젝트를 패키징하여 빌드하고 이 산출물을 통해 배포할 수 있는 배포 툴인건다. 메이븐 프로젝트라는 단어도 들어봤을 것이다. 혹시 그래들이라고도 들어봤나..!? 보통 메이븐과 그래들을 쌍쌍바처럼 같이 다니는걸 들어봤을텐데 이게 다 최종 산출물을 만들어주는 프레임워크의 이름인거다. 자. 결론만 말하자면 이 메이븐이라는 친구가 우리가 EC2서버에서 우리 프로젝트를 돌릴 수있도록 완성품을 만들어주는 역할이라고 생각하면 된다.

 

1. Maven Clean

 

 

 

  자 일단 처음부터 깔끔하게 시작하기 위해 Maven Clean과정을 통해 깔끔하게 없애주자. 본인 프로젝트 오른쪽마우스(1)를 누른뒤 Run As를 누르고(2) Maven clean을 눌러주자(3)

 

 

  여기서 오류나는 사람은 없을꺼고, 보통 다 빌드 성공이 뜰 것이다.

2. Maven Test

 

  자 이제 메이븐을 밀어줬으니 빌드 할 준비가 되었는지 확인하기 위해서 Maven Test를 진행해주자.

 

 

  위 설명대로 이번엔 Maven test를 눌러보자!

 

 

  짜잔~ 빌드 성공

TroubleShooting

 

 

 

  혹시나 저런식으로 JRE, JDK에 관련된 오류가 나타나면 아래 포스팅을 참조해 해결하고오자!

https://extsdd.tistory.com/122

 

[Spring/eGov] 메이븐 빌드 실패 / Failed to execute goal / Perhaps you are running on a JRE rather than a JDK

자 메이븐 빌드를 했는데 위처럼 JRE대신 JDK를 써보라는 오류가 발생했다. 원인은 간단하다. JRE로 빌드를 못한다는거다. JDK로 경로를 다시 잡아주면 된다. 1. Installed JREs 재설정 이클립스 상단 윈�

extsdd.tistory.com

  나도 저 오류가 나타났어 잠시 헤멨었다 ㅎㅎ

 

3. Maven Install

 

  자 다시 본론으로 와서, 이제 진짜 Maven 배포파일을 만들어보자!

 

 

  과정은 똑같고 빌드할 프로젝트를 눌러 Maven Install 버튼을 눌러주자..!

 

 

  그럼 글자들이 쭈루룩 지나가면서 4초만에 완성이 됐다! Build SUCESS!

4. 배포파일 확인

 

 

 

  빌드후 달라진 점이라면 target 폴더에 .war 파일이 생성됐다..! 이게 배포파일이고 이걸 톰캣 폴더에 갔다놓고 재부팅하면! 내가만든 서비스가 시작된다!

 

  저 배포파일의 위치를 잠깐 알아둬야하는데

 

 

  해당 .war 파일을 오른쪽마우스 클릭후 Properties를 눌러주자.

 

 

  저기 로케이션에 나온 경로를 복사해두던지 아님 어디 메모장 같은데 메모를 해놓는다.

5. FileZilla SFTP를 이용한 배포

 

  배포방법에는 수많은 종류가 있다. GIT으로 EC2 인스턴스에 소스를 받아서 Maven Wrapper로 그 자리에서 빌드하는 방법이 있고, 비슷하게 그래들로 하는 방법도 있고, 젠킨스 같은 툴을써서 배포를 더 쉽게하는 방법이 있지만, 나는 소스 수정이 많지 않아 가장 직관적인 방법은 FTP로 직접 배포파일을 쏘기로 했다. ㅎㅎ..

 

https://extsdd.tistory.com/121?category=853192

 

[아마존 AWS EC2] EC2 서버 FileZilla로 FTP 접속하기 / Root 계정 접속 / 파일질라 / SFTP

이제 우리가 만든 EC2 인스턴스에 FTP 접속을 시도해보자. FTP 접속 툴로는 대학교때무터 자주 썼던 파일질라로 정했다. 먼저 알아두자면 FTP란 FIle Transafer Protocol 로써 장비간 파일을 주고받는 프로

extsdd.tistory.com

  자 일단 선행되어야 할 것이 있다면, FIleZilla를 다운 및 설치 후, Root 계정으로 EC2 인스턴스에 붙는 과정을 진행해야한다. 위 포스팅을 보면 나와있으니 따라하고 오면 된다.

 

 

  자 시작해보자.

  1. 먼저 화면의 좌측이 내 실제 컴퓨터다. 저기 1번 박스에 위에서 아까 복붙해놓은 .war파일의 경로를 쳐서 찾아가던지, 디렉토리를 눌러서 찾아가던지 알아서 완성된 .war파일이 있는곳까지 가라.

 

  2. 우측화면은 EC2 인스턴스다. 본인들이 설치한 톰캣폴더의 webapps폴더까지 들어가라, 내 포스팅을 보고한 사람들은 아마 폴더를 server에 만들었을 것이다.

 

  3. 우리 컴퓨터에 있는 .war파일을 오른쪽마우스 눌러주자.

  4. 당연히 업로드 버튼을 눌러준다.

 

 

  오오... 퍼센트가 다 차서 전송이 완료되면 우측 EC2 인스턴스에서도 우리가 만든 .war파일을 볼 수 있다.

6. 톰캣 재부팅

 

  이제 톰캣 재부팅을 하면 저 .war파일을 서버가 돌리기 시작한다.

 

 

  우리 서버로 돌아가서 일단 SU 권한으로 접속후 본인들이 만들어놓은 아파치 톰캣폴더의 bin 폴더까지 이동해보자.

cd /server/apache-tomcat-8.5.55/bin

 

  나 같은 경우에는 위 주소에 톰캣을 설치해놨기 때문에 내 포스팅을 보고 온사람들은 위 명령어를 입력하면 톰캣의 bin까지 올 수 있다.

 

 

 

./shutdown.sh

 

  bin폴더까지 왔으면 위 명령어를 이용해 서버를 꺼주자.

 

 

 

./startup.sh

 

  다시 톰캣 시작명령어를 치고 톰캣이 부팅되면, 아까 넣어놨던 .war파일을 인식해 돌리게 된다.

 

7. 결과 확인

 

http://본인AWS아이피주소:8080/CP_service-1.0.0/reqUrl.do?reqParam=3

 

  위 경로를 찍어보자, 주소중 "본인AWS아이피주소" 이칸에 본인 EC2 IP주소를 넣으면 된다. 그리고 :8080은 톰캣 포트고 뒤에 CP_service-1.0.0 이란게 붙었는데 이건 우리가 만든 배포파일인 .war의 이름이기도 하다. 이거 안보이게 하는법은 나중에하도록하고 우리가 전에 만들었던 변수에따라 url을 리다이렉션 해주는 서비스가 정상적으로 작동하는지 확인하자!

 

 

  아마 위와같은 창이 뜨면 성공인거다!. 엥? 에러가발생했는데 왜 성공이야? 할 수 있지만, 이 에러는 우리가 EC2 서버에 설치한 마리아DB에 테이블이랑 데이터를 넣지 않아서 그런거다. 일단 저 화면이 나오는거 자체만으로 WAS는 문제 없이 돌고있다는 것이다. 왜냐하면 내가 만든 reqUrl.do라는 요청에 어떻게든 반응은 나타내고 있으니까! 오늘은 여기까지하고, 다음에 한번 마리아 DB에 값을 넣고, 테스트해보도록 하자.

 

#AWS #EC2 #스프링 #전자정부프레임워크 #메이븐 #프로젝트 #배포 #파일질라 #Maven #Filezilla #Build #install #빌드 #인스톨

 

반응형
  1. 찰도마도 2021.11.05 06:46

    많은 도움 되었습니다. 정말 감사합니다.

반응형

 

  이제 우리가 만든 EC2 인스턴스에 FTP 접속을 시도해보자. FTP 접속 툴로는 대학교때무터 자주 썼던 파일질라로 정했다. 먼저 알아두자면 FTP란 FIle Transafer Protocol 로써 장비간 파일을 주고받는 프로토콜이다. 여기서 나오는 SFTP는 Secure + FTP로써 인증키를 더해 보안을 강화한 프로토콜이라고 이해하면 된다.

1. SFTP Root 계정 접근 허용

 

sudo vi /etc/ssh/sshd_config

 

  본인 EC2 서버쉘에서 위 명령어를 입력하자!

 

 

  내리다 보면 #Authentication 항목이 있는데 거기 밑에

PermitRootLogin yes

  구문을 추가하자! 해당 값을 추가하여 SFTP로 접속할 때 Root 권한으로 접속하는 것을 허용한다는 의미다.

저 VI편집기가 생소한사람들이 있다면은. 일단 파일을 열면 방향키로 커서 조작이 가능하다. 저 위치까지 가서 알파뱃 i 단축키를 눌러보자.그럼 하단에 -- INSERT -- 표시가 나타나며 현재 삽입모드라는 것을 알려준다. 이제 여기서 위 코드를 따라친다.

 

 

  이제 저장하고 나가기 위해서 "ESC" 단축키를 한번 눌러주자. 그럼 명령모드로 나가진것이다 이떄 SHIFT+: 를 동시에 위 사진처럼 : 이라고 나오며 뭔가 입력할 수 있게 된다. 여기다 wq를 입력하고 엔터를 눌러주면 저장 후 나가기의 명령어다.

 

 

  su 엔터후 비번을 치고 들어가 관리자 권한으로 넘어가자.

cp .ssh/authorized_keys /root/.ssh/

 

  그리고 아래 명령어를 입력해 키를 우리가 만들었던 인증키를 복사한다. 진짜 복사할꺼냐고 뜯다면 Y를 입력해주면 된다.

 

 

  문제없이 복사되면 위 사진과 같다.

2. 파일질라 다운 및 설치

 

https://filezilla.softonic.kr/

 

FileZilla

신난다 무료 FTP 클라이언트

filezilla.softonic.kr

 

 

   다운 버튼을 눌러주자.

 

 

  이딴 낚시팝업이 나오는데 X를 눌러주자.

 

 

  이번엔 진짜다 다운 버튼을 누르자!

 

 

  자 다운받은 파일질라 셋업을 실행시키자.

 

 

  쭉쭉쭉 넘어가자.

 

 

  여기도 쭉쭉쭉! 설치가 완료되면 실행해주자.

3. 원격 접속 셋팅

 

 

 

  자 편집(1)을 눌러주고 설정(2)을 눌러주자. 그위 연결-FTP 하위에 있는 SFTP 설정으로 들어간다. 키 파일 추가(4) 버튼을 눌러주고 우리가 전에 만들었던 .ppk파일을 지정해주자. 그럼 5번 박스와 같이 추가 된다. 다 됐으면 6번 확인을 눌러주자.

 

 

  자 다시 1번 박스를 보면 세 세션여는 버튼이 있다 눌러주자. 사이트 관리자 창이 뜨면 New Site를 눌러주고(2), 프로토콜을 SFTP로 바꿔주자(3), 그리고 4번 박스에 본인 EC2 서버 IP를 입력한다. 포트는 따로 입력하지 않아도 된다.

 

  이제 5번박스로 넘어가 로그온 유형을 키파일로 잡아주고(5) 사용자를 Root로 설정해주자(6), 그리고 키파일을 입력해주는데 이것도 마찬가지로 우리 아까 추가했던 ppk파일을 넣어주자.(7) 다 됐으면 8번 연결을 눌러보자!

 

4. 결과 확인

 

 

 

 

  우왕 Root 디렉토리 접근에 성공했다~ 이걸로 Root 계정으로 AWS EC2 인스턴스에 SFTP로 접속하는법 끝!

 

#아마존 #AWS #EC2 #파일질라 #FileZilla #FTP #SFTP #Root계정 #Root #관리자권한

 

 

반응형
  1. 찰도마도 2021.11.05 06:15

    감사합니다 너무 어려운데 덕분에 해결했습니다

반응형

 

PuTTY를 이용해서 원격 EC2 서버에 접속하자. 만약 방법을 까먹었다면 아래 포스팅을 참고하면 된다.

https://extsdd.tistory.com/78

 

[아마존 AWS EC2] #1 EC2 서버 접속하기 / PUTTY 다운 및 설치 / PEM→PPK 변환 / Server refused our key

https://extsdd.tistory.com/77 [아마존 AWS 무료 EC2 서버 생성하기] #3 EC2 인스턴스 생성 / 구축 / 방화벽이란? / 탄력적 IP https://extsdd.tistory.com/76 [아마존 AWS 무료 EC2 서버 생성하기] #2 IAM 계정..

extsdd.tistory.com

 

 

1. 패키지 업데이트

 

apt-get update

 

위 명령어를 쉘에서 실행해주자.

 

 

완료!

2. GIT 설치

 

sudo apt-get install git
sudo apt install git
git -- version

 

위 명령어를 입력하자

 

 

버전이 찍히면 설치가 완료.. 짱쉽당..

 

 

#아마존 #AWS #EC2 #우분투 #GIT #설치 #깃

 

반응형

+ Recent posts