서버/통신 기초

공영재·2021년 8월 12일
0

개발 용어 쉽게 이해하기

  • Server - 서비스를 제공하는 컴퓨터

  • 도메인 설정 - IP 주소 ( 196.35.~~~ )를 xxx.com으로 명명

  • 페이지마다 변하는 것 ( 불러와야 할 동영상 등 ) 은 서버 /
    아이콘, 폰트 등은 클라이언트에 저장 ( <- 클라이언트에 저장하는 것이 앱 설치)

  • API (Application Programming Interface) - 클라이언트와 서버의 대화 방법

  • 이 API는 세계적으로 규격화 되어 있고, 이를 REST API라 함


구매한 도메인에 github.io에 컴파일한 웹을 연결하는 법

  1. 가비아 등을 통해 도메인 구매 (www.ulrim.com)

  2. visual studio code에서 npm run build
    -> 생성된 build 파일을 내 github repository에 drag&drop
    -> 내 repository.github.io에 웹 연결

  3. 구매한 영문 도메인과 그 서브 도메인들을 어떤 ip 로 매핑시켜야 할지를 네임서버에 설정해주어야 하기 때문에, 네임서버를 제공해주는 사이트 (dnszi) 이용
    (네임서버를 직접 구축할 수도 있지만, 사용 중인 데스크탑을 종료하면 서버도 종료되어 해당 도메인에 접속할 수 없음)

  4. dnszi 에서 도메인 추가 - 구매한 도메인 연결

  5. 가비아 홈페이지 > 도메인 정보 변경 > 네임서버에서 dnszi에서 얻은 네임서버 주소 입력

  6. dnszi 도메인 목록 > 호스트IP 관리(A 레코드) > ip주소에
    밑의 네 개 중 하나를 입력. ddns (Dynamic Domain Name Service, DNS 서버와 같은 역할을 하지만 유동IP에 대응) 설정은 X.
    185.199.108.153
    185.199.109.153
    185.199.110.153
    185.199.111.153

  7. Github Repository > setting > Pages에 들어가서 custom domain 을 위에서 등록한 A 레코드(서브도메인) 으로 설정


!!! AWS를 이용한 웹/서버 연결

  • AWS amplify
    : 프런트 엔드 웹 및 모바일 개발자가 안전하고 확장 가능한 풀 스택 애플리케이션을 손쉽게 구축하게 해주는 툴

npm install -g @aws-amplify
(에러 발생 시 @aws-amplify/core 등으로 분할)

amplify configure ( 기본 구성, region, 사용자 생성 후 액세스 키가 들어있는 csv 파일 다운)

그 후 아래 과정

amplify init (App 생성, backend 생성 등)
amplify add api (REST / GraphQL 중 택 1)
amplify push (추가된 api를 cloud로 올림)
amplify status (현재 amplify project 상태 확인)
amplify console api(GraphQL로 설정)
amplify add hosting (호스팅 할 도메인 추가)
amplify publish (소스코드 publish)

amplify pull - 소스코드만 repository에서 받은 후 amplify에 접속
사용자 확인(accesKey ID)후 개발 환경 입력하면 amplify 폴더 (src/aws-exports.js) 생성
이후 pull 명령어는 cloud로부터 변경사항을 update 받음.

-> 즉, 프로젝트 세팅(amplify)을 해서 소스코드를 repository에 올리고 각 팀원에 해당하는 USER를 만들어서 accessKey Id와 secretAccessKey를 팀원들에게 전달 / 팀원들은 repo를 받고 amplify pull 커맨드로 사용자 인증

그 후 amplify 도메인 관리를 통해 custom domain 연결 (아래 과정)

AWS Route 53에서 호스팅 영역 -> domain 레코드 생성
Name Server의 값들을 구매한 도메인 사이트(ex. 가비아)의 Name Server에 할당
AWS Route 53에서 amplify의 안내대로 CNAME / ANAME / CNAME을 순서대로 설정


  • AWS route53
    : aws에서 제공하는 DNS, NS 값을 할당받은 후 네임서버 정보를 도메인 등록대행기관에 등록

  • AWS EC2
    : aws에서 제공하는 클라우드 서버.

인스턴스: 가상 컴퓨팅 환경

Amazon 머신 이미지(AMI): 서버에 필요한 운영체제와 여러 소프트웨어들이 적절히 구성된 상태로 제공되는 템플릿으로 인스턴스를 쉽게 만들 수 있다.

인스턴스 유형: 인스턴스를 위한 CPU, 메모리, 스토리지, 네트워킹 용량의 여러 가지 구성 제공

키 페어를 사용하여 인스턴스 로그인 정보 보호(AWS는 퍼블릭 키를 저장하고 사용자는 개인 키를 안전한 장소에 보관하는 방식)

Amazon Elastic Block Store(Amazon EBS), 즉 Amazon EBS 볼륨을 사용해 영구 스토리지 볼륨에 데이터 저장

탄력적 IP 주소(EIP): 동적 클라우드 컴퓨팅을 위한 고정 IPv4 주소

태그: 사용자가 생성하여 Amazon EC2 리소스에 할당할 수 있는 메타데이터

AWS 클라우드에서는 논리적으로 격리되어 있지만 원할 때마다 고객의 네트워크와 간편히 연결할 수 있는 가상 네트워크인 Virtual Private Clouds(VPC)


  • AWS cognito
    : 모바일과 웹 앱에서 인증 및 보안 관리, 별도 사용자 계정 서비스를 활용하여 다양한 AWS 서비스를 쉽게 연동하고 권한 및 접근 관리가능한 툴

인증 서비스 만들기 - https://aws.amazon.com/ko/blogs/korea/how-to-own-user-auth-service-using-amazon-cognito/


  • AWS DynamoDB
    : AWS에서 제공하는 NoSQL 데이터베이스 서비스

배포 및 확장이 쉽고 빠름. 데이터베이스를 적용하기까지 오랜 시간이 걸리지 않으며 수백만 IOPS를 처리할 수 있는 시스템 설계해두었기 때문에 인터페이스의 조작만으로 규모 확장 가능

데이터 자동 복제데이터의 손실을 방지하기 위해서 데이터 베이스를 자동으로 백업

보조 인덱스를 통한 빠른 조회. NoSQL 특성상 관계가 없기 때문에 일반적으로 데이터를 찾기에는 인덱싱이 없으면 속도가 느려지지만 그 부분을 해결함

사용한만큼 사용료를 지불. 저장소의 사용과 사용하려는 퍼포먼스의 정도에 따라서 사용료 지불함으로써 최적화

더 많은 DynamoDB 정보 - https://interconnection.tistory.com/60

profile
Web / Computer Vision

0개의 댓글