IM _ AWS

jungeundelilahLEE·2020년 12월 15일
0

JS_심화

목록 보기
16/17

GOAL

  • Cloud와 Deployment의 의미를 각 각 알고, 내 코드를 남에게 배포할 수 있다.
  • 최소 AWS 서비스 블럭 에서 3개 이상의 서비스를 활용 하고, 설명 할 수 있다.(S3, EC2, RDS)
  • ssh를 무엇을 위해 활용 하는지 알고, 다른 컴퓨터에 원격 접속 한다는 것의 의미를 설명할 수 있다.
  • 보안을 위하여 github에 올리지 말아야 할 코드를 gitignore로 따로 분류 할 수 있다.

배포(Deployment) & AWS

배포란?

  • 내 코드를 다른 컴퓨터 위에서 구동하는 것
  • node version, port number, dependencies, hostname, file paths, api keys 등 내가 알고 있던 것들을 어떻게 다른 컴퓨터에서 알 수 있게 할 수 있을까?
  • 다양한 환경과 레벨들을 고려해야 함
    1. Development : 로컬에서 코드 정리
    2. Integration : 충돌 등 고려
    3. Staging : 준배포 단계에서 테스트
    4. Production : 완전체
  • 내 코드가 다른 환경에서 정상적으로 작동하려면?
    • 최소한 node version, port number, dependencies, hostname, file paths, api keys 를 확인해야 함
    • package.json의 dependencies를 잘 살펴보아야
    • 컴퓨터의 물리적 자원을 필요에 따라 분할해서 쓸 수 있음 (가상 컴퓨터)
    • 시간과 접속량에 따른 종량제로 운영됨
    • 하드웨어도 클라우드에서 관리함

AWS

  • 배포 플랫폼 중 하나
  • 인터넷으로 서비스하는 제품을 개발할 때
    • 온-프레미스 방식 (자체적으로 서버를 두고 운영)
    • 클라우드 컴퓨팅 서비스 (AWS, 네이버 클라우드, GCP, Azure 등)

S3 (Simple Storage Service, 인터넷용 스토리지 서비스)

  • 어떠한 정보(는 보통 파일s)를 저장하는 서비스 (called bucket)
  • 내구성(파일이 유실될 가능성이 거의 없음)이 좋고, 사용한 만큼 비용이 발생
  • SSL라는 암호화된 방식으로 데이터를 주고받으므로 안전함
  • S3는 이벤트 알림 전송 기능이 있으므로, 어떠한 객체가 업로드 되면 이벤트 알림을 보낼 수 있어서, 다른 것과 연동하여 사용하기 용이함
  • Amazon S3에서 제공하는 단순한 웹 서비스 인터페이스를 사용하여 웹에서 언제 어디서나 원하는 양의 데이터를 저장하고 검색할 수 있습니다. 또한 개발자는 Amazon이 자체 웹 사이트의 글로벌 네트워크 운영에 사용하는 것과 같은 높은 확장성과 신뢰성을 갖춘 빠르고 경제적인 데이터 스토리지 인프라에 액세스할 수 있습니다. 이 서비스의 목적은 규모의 이점을 극대화하고 개발자들에게 이러한 이점을 제공하는 것입니다. (by AWS)

EC2 (Elastic Compute Cloud)

  • 인스턴스는 '컴퓨터 한대'를 나타낸다고 생각하자 (이러한 인스턴스를 하나씩 빌려서 쓰는 것)
  • Amazon Web Services(AWS) 클라우드에서 확장 가능 컴퓨팅 용량을 제공합니다. // 텅빈 컴퓨터라고 생각하자! 텅 빈 컴퓨터에 내가 사용하 프로그램들을 넣는 것 Amazon EC2를 사용하면 하드웨어에 선투자할 필요가 없어 더 빠르게 애플리케이션을 개발하고 배포할 수 있습니다. Amazon EC2를 통해 원하는 만큼 가상 서버를 구축하고 보안 및 네트워크 구성과 스토리지 관리가 가능합니다. 또한 Amazon EC2는 요구 사항이나 갑작스러운 인기 증대 등 변동 사항에 따라 신속하게 규모를 확장하거나 축소할 수 있어 서버 트래픽 예측 필요성이 줄어듭니다. (BY AWS)

RDS (Relational Database Service)

  • AWS 클라우드에서 관계형 데이터베이스를 더 쉽게 설치, 운영 및 확장할 수 있는 웹 서비스입니다. (인프라 및 데이터베이스 업데이트를 관리해주는 것 뿐만 아니라 까다로운 관계형 데이터베이스의 설치, 운영 그리고 관리를 지원하는 서비스) 이 서비스는 산업 표준 관계형 데이터베이스를 위한 경제적이고 크기 조절이 가능한 용량을 제공하고 공통 데이터베이스 관리 작업을 관리합니다. (by AWS)
  • Amazon RDS는 현재 MySQL, Oracle, SQL Server, PostgreSQL, MariaDB, Aurora(MySQL과 호환)을 비롯한 총 6가지 데이터베이스 엔진을 지원하고 있습니다.

3S, EC2, RDS 실습

3S

EC2

  • npm, pm2, node 등 필요한 것 설치
  • $ cd .ssh 로 .ssh파일에 접근
  • (보통 다운로드 파일에 있는) EC2생성 시 만들어진 .pem 키를 가져와야
    $ mv ~/다운로드/(내가 생성한 비밀번호).pem
  • 생성한 인스턴스와 연결하기 위해 SSH 클라이언트탭으로 이동 후,
    $ chmod 400 (내가 생성한 비밀번호).pem
  • 퍼블릭 DNS을(를) 사용하여 인스턴스에 연결
    $ ssh -i "(내가 생성한 비밀번호).pem" ubuntu@ec2-3-35-16-18.ap-northeast-2.compute.amazonaws.com

RDS

  • mysql root 접근
    mysql -u root -p
  • 생성한 RDS와 연결
    mysql -u delilah(db이름) --host (endpoint) -p -> password
profile
delilah's journey

0개의 댓글