AIHUB環境構築手順.docx

環境構築手順 - AI HUB.docx

環境構築手順 - AWSコンソール上での環境構築.docx

環境構築手順 - VPNサーバー構築.docx

環境構築手順 - プロキシサーバー構築.docx

環境構築手順 - ユーザ管理・ログ管理DB構築.docx



*시큐리티 그룹과 루팅의 차이

시큐리티 그룹 : 인바운드와 아웃바운드에 대해 제한을 거는 것. 프로토콜(ssh.http,https...), 아이피 등

루팅 : 최종 목적지가 외부인 노드에 대해  어떤 노드를 거쳐 최종노드로 가는지 경로를 지정해준 것.

루트테이블은 최종목적지와 중간 타겟을 입력한후, 서브넷 단위로 연결짓는다.






*NAT의 역할

NAT(Network Address Translation, 네트워크 주소 변환


 사설 아이피가 외부로 요청을 보낼 때 공용 아이피로 변환시켜 외부와 연결하던가, 반대로 외부로 요청이 들어올 때 공용 아이피로 받아 공용 아이피를 변환시켜 사설 아이피에 연결하는 기능을 한다.


패킷에 변화가 생기기 때문에 IP나 TCP/UDP의 체크섬(checksum)도 다시 계산되어 재기록해야 합니다. NAT를 이용하는 이유는 대개 사설 네트워크에 속한 여러 개의 호스트가 하나의 공인 IP 주소를 사용하여 인터넷에 접속하기 위함입니다. 많은 네트워크 관리자들이 NAT를 편리한 기법이라고 보고 널리 사용하고 있으며, NAT가 호스트 간의 통신에 있어서 복잡성을 증가시킬 수 있으므로 네트워크 성능에 영향을 줄 수 있는 것은 당연하다 볼 수 있습니다.


NAT는 IPv4의 주소 부족 문제를 해결하기 위한 방법으로서 고려되었으며, 주로 비공인(사설, local) 네트워크 주소를 사용하는 망에서 외부의 공인망(public, 예를 들면 인터넷)과의 통신을 위해서 네트워크 주소를 변환하는 것입니다. 


즉 내부 망에서는 사설 IP 주소를 사용하여 통신을 하고, 외부망과의 통신시에는 NAT를 거쳐 공인 IP 주소로 자동 변환합니다.



*proxy의 역할

다른 주소로 들어오는 요청을 다른 서버로 분할 분배 가능하게 함












































지난 포스팅에서는 Putty 를 활용한 Linux 인스턴스 접속 방법에 대해 알아 보았습니다. 

오늘은 이어서  Linux 인스턴스에 파일을 전송할수 있는 WinSCP 활용법에 대해 알아보겠습니다. 

WinSCP 를 사용하기 위해서는 우선 지난 포스팅에서 Puttygen 을 통해 생성한 PPK 파일이 필요합니다. 

PPK 파일생성 방법은
[AWS] Windows 에서 Linux 인스턴스 연결을 위한 PuTTY 사용방법 을 참고.



1.  개인 key 를 활용한 서버 접속 방법

아래 링크를 통해 WinSCP 프로그램을 다운로드 합니다.
WinSCP 다운로드 -> https://winscp.net/eng/download.php

WinSCP 를 설치하고 프로그램을 실행 합니다. 
프로그램을 실행하면 바로 로그인 입력 화면이 표출됩니다.
image



호스트 이름에 Ec2 인스턴스의 Public IP 또는 Public DNS 를 입력합니다.
사용자 이름에 접속할 계정 정보를 입력 합니다. 
image
인증키를 통해 서버에 접속할 예정이므로 설정을 위해 고급버튼 을 선택합니다.


* 인스턴스 접속계정 정보는 아래와 같이 구성됩니다.

  • Amazon Linux AMI의 경우 사용자 이름은 ec2-user
  • RHEL AMI의 경우 사용자 이름은 ec2-user 또는 root
  • Ubuntu AMI의 경우 사용자 이름은 ubuntu 또는 root
  • Centos AMI의 경우 사용자 이름은 centos
  • Fedora AMI의 경우 사용자 이름은 ec2-user
  • SUSE의 경우 사용자 이름은 ec2-user 또는 root





SSH – 인증 메뉴를 통해 개인키 파일을 등록할 수 있습니다.  
image

SSH 접속을 위해 생성했던 PPK 파일을 선택한 후 확인을 선택 합니다. 

*PEM키를 넣어도 ppk파일을 리턴해준다.
(PKK파일 만드는 법 : http://regularmotion.kr/aws%EC%97%90-apm%ED%99%98%EA%B2%BD-%EA%B5%AC%EC%B6%95%ED%95%98%EA%B8%B0-3-ppk-%ED%8C%8C%EC%9D%BC-%EC%83%9D%EC%84%B1-putty-%EC%A0%91%EC%86%8D/)


다시 로그인 화면으로 돌아와 로그인 버튼을 선택 합니다. 
아래와 같이 인증 절차가 진행됩니다.
image



인증 완료 후 서버에 접속되고
ec2-user 디렉토리가 정상적으로 표시 되는 것을 확인 할 수 있습니다.
image




















이제 좌측에 보이는 로컬 파일을 선택하여 우측에 보이는 서버폴더에 파일을 업로드 할 수 있습니다. 





2.  SSH 터널링을 활용한 접속 방법

지난 포스팅에서 SSH 보안 접속을 위하여 Bastion Host 와 Web 서버의 key 를
분리하는 작업을 진행 하였습니다.

지난 포스팅 보러가기 -> [AWS] Bastion Host 를 활용한 SSH 접근통제 #2






Web 서버에 SSH 접속을 위해서는 Bastion Host를 통해서만 접속이 가능하도록 구성되어 있으므로 WinSCP 를 통한 접속 또한 Bastion Host를 통해서만 가능 합니다.


WinSCP 에서는 이러한 경우에 사용할 수 있도록 SSH 터널링을 통한 서버 접속 기능을 제공하고 있습니다.


그럼 SSH 터널링 기능을 활용한 서버 접속 방법에 대해 살펴 보도록 하겠습니다.


새로운 세션 연결을 프로그램 상단에 “새로운 세션” 탭을 선택합니다. 
image
호스트 이름에  Web Server의 Private_IP 를 입력합니다. 
(Bastion 호스트를 통한 접속이므로 Private_IP 로 접속이 가능합니다)

사용자 이름에  ec2-user(계정명) 을 입력합니다. 


고급 버튼은 선택하고
SSH – 인증을 선택합니다.
image
에이전트 포워딩 허용에 체크합니다.
개인키 파일 항목에 Web 서버 접속에 필요한 Web.ppk 파일을 등록 후 확인을 선택합니다.

웹서버 설정에 필요한 설정은 마무리 되었으므로
터널링 접속을 위한 설정을 진행 합니다.


연결 – 터널링 메뉴를 선택 합니다.
image
SSH 터널링을 통한 접속 항목을 체크합니다.
호스트 이름 Bastion Host 의 Public_IP 를 입력합니다.

사용자 이름 ec2-user(계정명) 을 입력합니다.
개인키 파일 Bastion Host 서버 접속에 필요한 namsan.ppk 파일을 등록합니다. 






로그인 버튼을 선택하면 인증절차가 진행 됩니다.
image


최초 접속시 호스트키를 추가하라는 안내창이 표출되면
 를 선택 합니다.
image


이제 터널링 설정을 이용해 
Bastion Host를 거쳐 Web 서버에 접속이 완료 되었습니다. 
image


이제 Security Group 의 이중보안이 적용된 환경에서 관리자 로컬에 있는 파일을 Web 서버로 안전하게 전송할 수 있는 구성이 완료 되었습니다. 





이 글에서는 아마존 EC2 기반으로 윈도우 서버 환경을 구축하는 내용을 안내합니다.

데이터 스냅 서버, EMS 서버, WebBroker 서버, 소켓 서버 용 테스트 및 서비스에 사용할 수 있습니다.

 

아마존 EC2 기반 리눅스 서버 환경 구축하는 내용은 다음 링크를 참고하세요.

 

아마존 EC2

아마존 EC2란?

아마존 EC2는 클라우드 기반으로 서버 인프라를 제공합니다. 웹 페이지를 이용해 필요한 플랫폼과 용량을 선택해 서버 인스턴스를 실행하고 접속해 테스트 및 서비스 할 수 있습니 - 아마존 EC2 자세히보기

 

아마존 EC2를 사용하는 이유

AWS 프리 티어를 이용해 12개월 동안 무료로 체험할 수 있습니다. - AWS 프리 티어 자세히보기

 

 

이 글에서 다루는 내용은 아래와 같습니다.

  • Windows 2012 R2 인스턴스 생성
  • 보안설정(서버에서 사용하는 포트번호 오픈)
  • 원격 데스크탑으로 연결

준비

AWS 가입(게정생성)

EC2를 사용하기 위해서는 AWS 계정이 필요합니다.

이미 많은 글들에서 가입 절차를 소개하고 있으니 아래 링크를 참조해 가입하시기 바랍니다.

(참고로 가입 시 마스터 또는 비자 카드가 필요합니다.)

 

인스턴스 생성

윈도우즈 서버 인스턴스를 추가하는 과정을 설명합니다.

 

아마존 웹서비스 로그인

 

EC2 서비스 선택

  • 필터에 ec2 입력 후 선택

 

인스턴스 목록 표시

  • 왼쪽 메뉴 중 Instances 항목 선택

 

가까운 지역 선택

  • 상단 우측의 지역을 누르고, 가까운 지역 선택
    (저는 Asia Pacific(Seoul)을 선택했습니다.)

 

새로운 인스턴스 추가

  • [Launch Instance] 버튼 클릭

 

인스턴스 이미지 선택

  • 적합한 항목의 [Select] 버튼 클릭
    (저는 "Microsoft Windows Server 2012 Base"(64 - bit)를 선택 했습니다.)

 

인스턴스 유형 선택

  • 적합한 인스턴스 유형 선택
  • [Review and Launch] 버튼 클릭

 

내용 확인

  • 내용 확인 후 [Launch] 버튼 클릭
  • 주의 문구는 무시합니다.(보안설정은 뒤에서 다시 진행합니다.)

 

Key Pair 생성 및 다운로드

중요: 인스턴스(서버) 접속 시 비밀번호 인증에 사용할 키파일을 로컬 저장소에 저장합니다. 해당 파일을 분실하지 않도록 주의하시기 바랍니다.

  • "Create a new key pair" 항목 선택
  • Key pair name 입력
  • [Download key Pair] 버튼 클릭 해 다운로드

 

 

보안설정

애플리케이션 서버에서 사용할 포트번호를 Inbound 규칙에 추가하는 절차를 설명합니다.

 

인스턴스의 Security Group 확인

  • 인스턴스 목록 항목 중 가장 오른쪽 항목에서 Security Group을 확인합니다.
    (저는 launch-wizard-1 입니다.)

 

 Security Groups 메뉴 선택

  • 왼쪽 메뉴에서 Network & Security > Security Groups 메뉴 클릭

 

Security Group 선택

  • 인스턴스에 설정된 Security Group을 선택합니다.
    (저는 launch-wizard-1을 선택)

 

Inbound 탭에서 Inbound 규칙 수정

  • 아래 탭 중 Inbound 탭 선택
  • [Edit] 버튼 클릭

 

Inbound 규칙 편집

  • [Add Rule] 버튼 클릭
  • 필요한 규칙을 추가합니다.
    • 데이터스냅 TCP/IP의 경우 "Custom TCP Rule / TCP / 211" 규칙 추가
    • EMS 서버, 데이터스냅 HTTP, WebBroker의 경우 "Custom TCP Rule / TCP / 8080" 규칙 추가
    • 기타 서버에서 사용하는 포트번호를 추가합니다.

 

원격 데스크탑 연결

윈도우즈 서버 인스턴스에 원격 데스크탑 연결하는 절차를 설명합니다.

 

인스턴스 선택 후 연결

  • 인스턴스 목록에서 인스턴스 선택
  • [Connect] 버튼 클릭
  • Connect To Your Instnace 팝업창 표시

 

비밀번호 가져오기

  • [Get Password] 버튼 클릭

 

Key pair 파일 선택

  • 인스턴스 생성 시 다운로드 받은 Key Pair 파일을 로컬 저장소에서 선택
  • [Decrypt Password] 버튼 클릭

 

접속 정보 확인

  • 화면에 표시된 접속 정보 확인

 

원격 데스크톱 연결

  • 원격 데스크톱 연결 실행
  • 컴퓨터 항목에 Public DNS 항목 입력(복사 > 붙여넣기)

 

 

사용자 자격 증명 입력

  • User name, Password 입력
  • [확인] 버튼 클릭

 

서버 접속 확인

 

윈도우즈 방화벽 규칙 추가

 

관련링크



・window에서 리눅스 인스턴스로 접

-리눅스는 ssh식 서버 접속 방식으로 조정이 가능.

-윈도우에서 리눅스를 조정하려면 ssh 역할을 해주는 프로그램을 설치해야함.(유닉스계는 ssh를 모두 가지고 잇음)

-ssh의 프로토콜로 서버에 접속하게 해주는 응용프로그램은 한국 어플인 넷사랑의 xshell, putti 등이 있다.



・aws에서 SSH연결 정보를 확인(ip,아아디,패스워드)

-인스턴스에 오른쪽 클릭해서 커넥트

-그러면 접속하려는 aws 서버의 ip주소, 아이디(ubuntu)가 나옴. 패스워드는 파일로 받았음

-아이디는 aws에서 정해주는 거니까 이상한거 적으면 접속안돼!!

-패스워드 적는란은 공란으로 패스





・xShell 에서 아이피 주소 추가 후 서버에 접속

-xshell에 아이피주소를 추가함






・xShell 에서 서버에 접속

-사용자 인층창으로 가서

-서버로 접근하려면 3개가 필요

1.ip 번호, 2.ip의 아이디 3. 패스워드

-암호키의 방법을 public key로 선택 후 아마존에서 받음 pem파일을 로드함




-접속 끊고싶으면 exit입력












・EC2

-가장먼저 생겨난 서비스. 독립된 컴퓨터 한대를 통째로 임대해주는 상품

-인스턴스란? 쉽게 하나의 컴퓨터라고 생각하면됨


・choose AMI : 컴퓨터의 운영체제를 선택

-unix를 뿌리로 하는 Linux, microsoft의 window

-Linux는 거의 무료

-SQL server가 들어있는 window는 고가.. ㅠ



*인스턴스 시작을 클릭해서 인스턴스 생성을 시작!






・choose an instance type

-컴퓨터의 사양을 선택. 타입은 컴퓨터의 사양을 아마존이 구분화시킨것

-프리 인스턴스타입의 조건 : AWS 프리 티어에는 1년 동안 매달 사용할 수 있는 750시간의 Linux 및 Windows t2.micro 인스턴스가 포함되어 있습니다. 프리 티어를 계속 유지하려면 EC2 마이크로 인스턴스만 사용하십시오.

-vCPUs(vitual CPUs) : cpu가 몇개있는가? 여기서 개의 기준은 아마존이 어떤 성능만큼을 1개로 정의한 것

-m으로 시작하는 type은 memory 성능이 특화된 사양

-c으로 시작하는 type은 cpu 성능이 특화된 사양

-인스턴스 타입은 가격과 직접적으로 관련되기 때문에 신중한 선택이 필요함




・가격정책

-https://aws.amazon.com/ko/ec2/pricing/

-온디맨드 인스턴스 : 필요할 때 켜고, 필요없을 때 끄는 인스턴스. 온디맨드 인스턴스에서는 실행하는 인스턴스에 따라 시간당 또는 초당 컴퓨팅 파워에 대한 비용을 지불합니다. 장기 약정이나 선결제 금액은 필요 없습니다. 애플리케이션 수요에 따라 컴퓨팅 파워를 늘리거나 줄일 수 있으며 사용한 인스턴스에 대해 지정된 시간당 요금만 지불하면 됩니다.

-온디맨드 가격표를 참고(t2micro 시간당 0.02$ -> 하루에 0.48$ -> 한달에 $14.4)

-시간당 가격측정을 하기때문에, 필요할때만 사용하면 가격이 매우 저렴함

-예약인스턴스 : 쉽게 표현하면 약정. 약정 걸어놓은 기간동안 쭉 사용해야하는 대신에 할인율이 적용됨.

-스팟인스턴스 : 아마존 서버에서 노는컴퓨터가 많을때와 적을때 가격 정책이 다른 플랜. 노는 서버가 많을 때는 싸고, 노는 서버가 없을 때는 온디멘드보다도 비싸진다.








・인스턴스 장치 설정 configuration instance detail

-number of instances : 인스턴스의 수는 초보자들이 실수로 많이설정하는 경우를 대비해 한정해놓음. 
-purchasing option : 앞에서 설정한 스팟인스턴스를 설정
-shutdown behavior : 서버를 셧다운하면 인스턴스를 일시적으로 stop할 것이냐, 아니면 종료 terminate 시킬 것이냐를 선택
-termination protection : 실수로 인스턴스 terminate 시킨 것을 복구함
-monitoring : 서버의 상태를 비쥬얼라이징 하여 보여주는데, 더 구체적으로 시각화한 자료는 유료다.



・저장소 추가 Add storage

-storage size : 30giga 까지 무료, 윈도우 디폴트 30기가 리눅스 디폴트 8기가
-volume type : 저장장치의 타입설정 당연히 ssd 추천
-Delete on Termination : 체크시 컴퓨터가 종료되면 하드도 폐기처리, 비체크시 종료되도 하드 비폐기


・태그 추가 Tag Instance

-어떤 인스턴스의 역할, 누가 관리하는지등.




・보안 그룹 설정 Configure Security Group

누가 접속하게 할거나, 어떤 방식으로 접근하게 할거냐, 방화벽과 같은 기능
-type : 우리가 만든 인스턴스에 접속하는 방법을 설정함. 브라우저로 접속, 디비에 접속 등등..
제한된 접속방법만 우리의 인스턴스에 접속할 수 있도록 제한하는 방법
SSH : 리눅스, 유닉스 계열에서 서버를 원격으로 조작하는 것
HTTP/HTTPS : 웹브라우저를 통해서 웹브라우저에 접속하는 것
RDP : 윈도우 계열에서 서버를 원격으로 조작하는 것
(다른 건 찾아봐)
-source : SSH로 서버에 접근할 수 있는 ip를 설정함




 Type

 Protocol

 Port Range

 Source

 SSH

 TCP

 22

 Anywhere

 0.0.0.0/0

 HTTP

 TCP

 80

 Anywhere

 0.0.0.0/0

 HTTPS

 TCP

 443

 Anywhere

 0.0.0.0/0

 Custom TCP Rule

 TCP

 8080

 Anywhere

 0.0.0.0/0

 Custom TCP Rule

 TCP

 9000

 Anywhere

 0.0.0.0/0



・리뷰 및 런칭 Review and launch

-Select an existing key pari or create a new key pair : 
키페어 네임 설정 후 키페어를 파일로 다운로드
키페어 다운로드하면 아마존에서 복잡한 키를 만들어서 파일로 다운받게해줌
다운과 동시에 인스턴스에도 패스워드 파일과 동일한 암호를 심어서 파일을 통해 인스턴스에 접근하게 해줌
아마존에서 다시 안주므로 소중하게 다루도록





・인스턴스의 상태선택






・2단계 인증

-보안, 자격 증명 및 규정 준수 -> IAM -> 보안상태 -> 루트 계정에서 MFA 활성화

구글 otp와 aws를 연동하여, 매 로그인시 비밀번호 + otp번호를 입력하게됨


・region 지역

-아마존 웹서비스의 서비스 센터가 어디에 존재하는가?

-멀면 멀수록 송신이 느려지기 때문에 물리적인 region도 중요

-실제로 웹서비스를 사용하는 대상은 고객이기 때문에 웹사이트에 접속하는 주요고객들이 어디 출신인가도 중요.

-각 Amazon EC2 리전은 다른 Amazon EC2 리전에서 완전히 격리되도록 설계되었습니다. 이를 통해 가장 강력한 내결함성 및 안정성을 달성할 수 있습니다.

-지역마다 가격이 다름

-www.cloudping.info : 현재 우리의 웹브라우저에서 각가의 아마존의 인프라가 위치하고 있는 곳에 접속을 해서 속도를 체크한다.

-latency(지연율)을 보고 어느 region에 aws를 구매하면 효율적일지 판단할 수 있다.



・availabilty zone 가용성존

각 Amazon EC2 리전은 다른 Amazon EC2 리전에서 완전히 격리되도록 설계되었습니다. 이를 통해 가장 강력한 내결함성 및 안정성을 달성할 수 있습니다.

인스턴스를 실행할 때 사용자가 직접 가용 영역을 선택하거나 AWS가 사용자를 위해 가용 영역을 선택하도록 할 수 있습니다. 복수의 가용 영역에 걸쳐 인스턴스를 배포했을 때 하나의 인스턴스에 장애가 발생한 경우를 대비하여, 다른 가용 영역의 인스턴스가 장애가 발생한 인스턴스 관련 요청을 처리할 수 있도록 애플리케이션을 설계할 수 있습니다.



+ Recent posts