DevOps/AWS
[AWS] S3
S3 Simple Storage Service의 약자로 간단한 저장소 서비스입니다. 일종의 파일 서버입니다. 기존 파일 서버는 트래픽이 증가하면 이에따른 장비를 더 설치해야 하지만 S3는 이를 대신 해줍니다. 즉, 트래픽에 대한 걱정은 하지 않아도 됩니다. 데이터를 중복으로 분산 저장하여 복원이 가능합니다. 버전 관리 기능을 제공합니다. HTTP를 지원하기 때문에 REST, SOAP 인터페이스를 제공합니다. 파일 접근 권한을 설정할 수 있어서 보안에 효율적입니다. 이외에도 여러 특징이 있지만 차츰 공부하면서 추가하겠습니다.. * 추가로 빌드 파일을 S3에 올리는 방식은 지양해야합니다. 후에 적용해 볼 CI/CD 전략에 대하여 s3로 빌드파일을 올리면 빌드, 테스트 자동화를 할 수 없기 때문에 github..
[AWS] 간단한 배포
1. 프로젝트 만듬 2. 깃허브에 올림 3. EC2 서버로 접속하여 깃허브 클론 4. apt를 이용해 JDK 설치 5. MySQL 설치 및 초기설정 6. 프로젝트 빌드 -> S3 서버로 대체 7. 보안 그룹 방화벽 해제 7. nohup 백그라운드 실행 8. 로그 EC2 서버 접속 우선 EC2 인스턴스를 만든 후 2가지 방법으로 서버를 접속할 수 있습니다. movaXterm을 이용한 접속 cmd에서 ssh 명령어를 통한 접속 movaXterm을 이용한 접속 EC2 인스턴스 만드는 포스팅에서 자세히 다루고 있습니다. ssh를 통한 접속 ssh -i 키페어이름.pem ubuntu@퍼블릭ipv4주소 ssh : 프로토콜의 일종으로써 데이터를 보내는 데 사용하는 HTTP라 이해하면 됩니다. -i : 개인 pem키 ..
[AWS] AWS에서의 RSA
RSA는 공개키 암호화 알고리즘의 일종이다. 공개키 알고리즘은 "암호화"와 "전자서명" 두가지로 구현할 수 있다. AWS는 데이터가 누가 보냈는지 확인하기 위해 private key를 사용한다. RSA란 암호화 알고리즘의 일종입니다. 여기서는 어떻게 돌아가는지 간단한 매커니즘만 공부할 것이며 어떤 수학 알고리즘이 들어가서 사용되는지는 다루지 않습니다. 공개키 암호 기존 대칭키 알고리즘은 둘 다 똑같은 알고리즘으로 구현된 똑같은 키를 가지고 암호화하고 복호화할 수 있었습니다. 하지만 키를 암호화하고 키의 데이터까지 상대방에게 전달해야 했으므로 보안성이 취약했습니다. 해커가 중간에 키 정보를 가져가면 치명적이기 때문입니다. 이러한 문제 때문에 고안한 방식이 공개키 암호 방식입니다. 공개키와 비밀키 두개가 있..
[AWS] EC2
EC2는 컴퓨터 서버 한대 임대하는 서비스이다. EC2를 사용하기 위해서 EC2 서버 인스턴스를 만들어야 한다. windows환경은 movaXterm을 통해 ubuntu 환경으로 서버에 접속 가능하다. (서버를 Linux환경으로 만듬) ECS란? Amazon Elastic Compute Cloud 2006년에 아마존에서 나온 서버 클라우드 서비스입니다. 저희는 운영체제를 선택하면 운영체제가 설치된 컴퓨터 한대를 임대할 수 있습니다. 방화벽 IP주소를 선택하여 로컬에서부터 EC2 서버까지 갈 수 있게 지정합니다. 여기서 방화벽이라는 말그대로 보안의 벽을 만나게 됩니다. 방화벽은 모든 포트를 차단합니다. 일반적으로 방화벽은 0~65535까지 모든 포트 번호를 차단하고 있습니다. 이를 뚫기 위해 인바운드 규칙..
[AWS] AWS의 등장배경
전산실 구축 회사에서 전산실을 구축한다고 가정해봅시다. 1차적으로 토지(premise)와 건물이 필요할 것이고 이후 서버나 침입 방지, 차단 시스템, 로드밸런서, 이외 각종 네트워크 장비들을 설치하고 서로 연결해야합니다. 케이블 양도 방대해질 것이며 이 선들을 모두 정리해야합니다. 반도체는 열에 민감하기 때문에 에어컨 시스템도 설치해야하며 이에 따른 전력량도 필요하게 됩니다. 불이 났을 경우를 대비한 소방시설, 한쪽 건물 사용이 불가하다면 이중화를 통해 다른 동일한 서버 건물을 바로 이용할 수 있게 구축해야합니다. 전산실 자체 보안도 철저해야하며 이에따른 인건비가 들 수 있습니다. 저희같은 1인 개발자나 규모가 작은 스타트업일 경우 전산실 구축이 상당히 부담스럽다는 것을 알 수 있습니다. AWS의 등장 ..
[AWS]
1. AWS가 무엇인지? 2. Linux 3. Network 기본 지식 4. EC2란? (Iaas) (인프라 - 물리적 컴퓨터 1대만 떡하니 주어진 것) 클라우드 서비스에 내 프로젝트를 단순 배포하기 위해 환경 구축 5. Shell script 노가다로 구축했던 것을 효율적으로 하기 위해 6. 엘라스틱 빈 스톡 (Paas) (플랫폼 - 물리적 컴퓨터에 프로그램들이 설치되어 있는 플랫폼) 환경 구축 없이 프로젝트 배포하는 서비스를 배울 예정 7. Github Action 클라우드 서비스에 배포 자동화를 구축. Github Action 이외에 여러가지 서비스가 존재 8. 로드백런서, 롤링 배포 클라우드 서비스에 무중단 배포를 할 것입니다. 직접 구축하는 Nginx가 있는데 이를 사용하진 않을 예정 9. Ne..