어제 AWS인스턴스를 모두 설정했다고 생각했는데, 오늘 회사에서 접속해보니 Tomcat을 시작해도 외부에서 접속이 안되는 것을 발견했다.

아마존 인스턴스 자체에서 포트는

기존에 RDS(3389)와 MS SQL(1433)만 설정해두었는데, 오늘 뒤늦게 HTTP(80), HTTPS(443), 커스텀(8080)포트를 추가했다.



그리고 인스턴스 내부 윈도우 방화벽도 어제 포스팅한 MS-SQL과 같이 따로 열어주어야한다.

(참고: http://smlgeek.tistory.com/8?category=671676)







외부에서도 접속 성공!


한 열흘동안 다른일도 많았지만, 서버PC 대신 사용할 AWS EC2 인스턴스 환경설정을 마쳤다.

- JAVA 설치 + 환경변수 설정.

- Tomcat 8.0 설치.

- MS-SQL 2017 설치.


무엇보다 애를 먹은것은 AWS(아마존 웹 서비스) RDS가 아닌 EC2에 DB서버를 설치하고 외부에서 접속이 되도록 설정하는 것이었다.

게다가 중간에 한번 인스턴스 자체를 종료(terminate)해버려서 인스턴스 자체를 다시 만들고 설치해야했다.

해서 이후에 잊어버릴테니 구글링 해서 본 것을 토대로 막혔던 원인을 다시 짚어보고 넘어가려한다.




1. AWS 보안그룹 설정

보안 그룹 자체는 제한을 따로 두지않고 사용하며, MS-SQL 포트를 따로 열어두었다(1433포트).




2. 인스턴스의 윈도우 방화벽 설정

위의 AWS 보안그룹 설정과 마찬가지로 1433포트만을 열어두는 설정을 따로 추가한다.

Control Panel(제어판) - Windows Firewall(Windows Defender 방화벽) - Advanced settings(고급 설정)에서 인바운드 규칙을 추가한다.


Port를 선택하고 다음.


TCP를 선택하고 포트번호(MS-SQL은 기본 1433포트를 사용) 입력 후 다음.


연결 허용 선택 후 다음.


프로젝트 도중 카페나 공공장소에서 접속할 수도 있기때문에 모든 연결에서 허용으로 설정하고 다음.


이름과 설명은 그냥 내가 헷갈리지 않을 정도로만 작성하고 완료.




3. MS-SQL 2017 Express Edition설치 후, SQL Server 2017 Configuration Manager(SQL Server 구성 관리자) 설정 변경.

※ 프로젝트에서 사용할 버전은 MS-SQL 2017 EXPRESS Edition이다.

   일반 MS-SQL이 아닌 Express판의 기본 설정은 외부 접속이 불가능하게 되어있어 로컬 접속이 아닌 이상 반.드.시. 수정해야 외부에서 접속이 가능하다.


- SQL Server Network Configuration(SQL Server 네트워크 구성)의 Protocols for SQLEXPRESS(SQLEXPRESS에 대한 프로토콜)의 요소 상태 "사용"으로 변경.

- TCP/IP 설정 중 IP Address의 가장 아래 IPAll 구성의 TCP Port를 1433으로 설정.




4. SSMS(SQL Server Management Studio)에서 서버 설정 변경.

Window Authentication(윈도우 인증) 접속시 서버명은 "컴퓨터이름\SQLEXPRESS"이다.


- 서버 인증을 "Window 인증모드" ==> "SQL Server 및 Widnow 인증모드"로 변경.


- SQL Server로 로그인할 사용자를 하나 만듦.




이렇게 1-4까지 모두 설정하고, local(AWS기준 외부)에서 접속해본다.



AWS에서 생성해둔 게시판 전용 DB를 볼 수 있다.



이 외에 SQL Server Browser를 켜야한다는 게시물도 많았는데, 끄고서도 정상적으로 접속이 되는것을 보아 필수적인 부분은 아닌 듯 하다.

이제 다음 차시부터는 Spring 프로젝트 설정을 할 예정이다.


생각만큼 부지런히 포스팅이 진행되지는 않지만 그래도 3차시 포스팅 시작.

집에 사용하지 않는 PC를 서버로 사용하려던 와중에 24시간 실제로 서비스해보고 싶은 마음이 들어 AWS나 Cafe24를 알아보게되었다.

이번 게시판 프로젝트에는 Cafe24도 좋지만 무엇보다도 1년동안은 무료인점이 매력적인 AWS를 먼저 사용해보려한다.

서버 OS는 일단 익숙한 Window를 사용한다.


[목록]

- AWS생성 및 필수 설정


아래는 아마존 웹 서비스 계정을 생성 후 인스턴스를 생성하는 과정이다.

(계정 생성 과정은 제외)




1. 로그인 후, 콘솔에 로그인 버튼을 클릭하여 AWS 서비스 화면으로 들어간다.




2. 가상머신 시작 버튼을 눌러 가상머신 세팅을 시작한다. 이때, 오른쪽 지역은 서울로 맞춘다.




3. 설치할 인스턴스 OS를 선택한다. 이번 프로젝트에는 윈도우를 사용하기로 했으므로 Window를 선택한다.




4. AWS를 무료로 사용하는 프리 티어(Free Tier)이므로 기본 선택된 사항으로 두고 검토 및 시작을 클릭한다.




5. 인스턴스 생성 전, 인스턴스 접속에 필요한 키페어를 다운받는다. 

키페어는 인스턴스 접속에 꼭!꼭! 필요하므로 안전한 곳에 다운 받아두고 꼭 메모해둔다.




6. 인스턴스를 시작할 수 있다며 인스턴스id를 링크해주는데,

그 전에 AWS를 사용하다가 요금폭탄을 맞았다는 이야기를 종종 들어서 결제 알림을 하나 설정하고 진행하도록 한다.




6-1. 오른쪽 상단 계정명을 누르고 결제 관련 메뉴인 '내 결제 대시보드'를 선택한다.




6-2. 왼쪽 메뉴의 '기본 설정'을 선택하고 "결제 알림 받기"에 체크 후 설정을 저장한다.

그리고 결제 알림 받기 설정 부분의 "결제 알림 관리" 링크를 클릭한다.




6-3. 왼쪽 메뉴 '경보'의 하위메뉴 중 '결제'란을 선택하고 경보를 생성한다.




6-4. 얼마를 초과하면 결제 경보를 메일로 받을것인지를 설정하는 modal이다. 설정 후 경보 생성 버튼으로 알림을 생성한다.




6-5. 알림을 받을 메일을 확인하는 작업이다. 위에 적은 메일 주소로 확인 메일이 발송되었으니 읽고 확인해야한다.




6-6. 아래는 발송메일로 Confirm subscription 링크를 클릭하면 그 아래와 같은 확인 화면이 조회된다.



▼ Confirm subscription 링크 결과




6-7. 메일 주소가 확인되었다며 경보 보기 버튼이 활성화된다.




6-8. 설정한 경보 목록이 조회된다.

혹시나 프리 티어 제공 월 750시간 이상을 사용하여 비용이 발생하더라도, 설정해둔 알림대로 1달러라도 초과하게되면 위 메일로 알림이 올 것이므로 요금 폭탄을 맞을 걱정은 없다.




7. 계속해서 인스턴스를 설정한다. 6번에서 인스턴스ID 링크를 클릭하면 아래와같이 인스턴스 목록 화면으로 이동한다.

이제 5번에서 다운로드 해둔 키페어로 연결을 설정해본다.




8. 암호 가져오기를 클릭한다.




9. "파일 선택"을 클릭하여 5번에서 안전한 곳에 다운받아 놓은 키페어 pem 파일을 찾아 연다.



10. pem파일을 열면 자동으로 텍스트 Area에 pem파일이 복사되고, 암호 해독을 통해 암호를 생성하며 이전화면으로 돌아간다.



11. "원격 데스크톱 파일"을 다운로드하고 다운로드 받은곳에서 다운받은 파일을 실행한다.




12. 10번에서 해독된 암호를 복사해서 password에 붙여넣는다.




13. 익숙한 윈도우 바탕화면의 AWS인스턴스가 생성되었다.







(+) 보안을 위해 설정을 다르게 할 수도 있지만, 연습용 서버이므로 이 인스턴스를 어느곳에서나 접속이 가능하도록 설정한다.










이후 DB설정과 서버설정을 완료 하면 해당 인스턴스의 접속에 제한을 둘 예정이다.



오늘은 앞으로 서버를 사용할 AWS(Amazon Web Service) 가상 머신을 생성해 보았다.

앞으로 1년간의 프로젝트에 사용 될 예정이라 틈나는대로 기능이나 설정법을 확인해 볼 생각이다.



아무튼 이래저래 바쁘기보다는 그냥 매너리즘에 젖은 생활에 너무 익숙해진듯하여

이러다간 시작도못하고 시간만 흐르겠다 싶어 오늘은 '툴이라도 다운받고 프로젝트라도 만들자!' 싶은 마음에 2차시 포스팅을 시작한다.


[목록]

- 목표 기간 설정 ==> 2018. 08. 25 (한달)

- STS 다운로드

- 프로젝트 생성

- 사용해보고 싶은 설정 추가 ==> AWS나 카페24의 가상서버를 통한 실제 서비스, Git/GitHub를 통한 형상관리


일이 아닌 개인 의지로 이클립스 다운로드하고 프로젝트를 생성한 것이 얼마만인지.

덕분에 첫 프로젝트 생성 하자마자 에러가 나서 당황했으나, 단순히 pom.xml의 release version을 변경하여 해결.

이렇게 어쨌든 첫 걸음은 내딛었다.



내일은 형상관리 설정과 AWS 설정에 시간을 사용하려고 한다.



주제.

Spring 게시판


선정 이유.

현재 상황에서는 주제 선정이 좋아도 개발 시간이 오래걸리고,

새로운/어려운 기술보다 알고있었지만 잊어버린것들을 우선 찾는것이 중요하다고 생각했다.

그래서 어느 회사든 신입에게 흔히 시키는 '게시판'을 만들기로한다.


개발 환경.

Spring, Tomcat, Mssql, MyBatis 등을 사용할 계획이다.


+ Recent posts