개발/AWS (9) 썸네일형 리스트형 AWS Secret Manager 목적Next.js 프레임워크 내에서 .env 파일 내의 S3 관련 Secret Key 노출을 방지할 수 있는 방법을 모색함빌드 후 배포시 .env 파일이 유실되어 릴리즈 버전에서 s3 접근에 리스크 존재, 이를 방지하기 위함AWS Secret Manager사용 방법https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-secrets-manager/import * as AWS from "@aws-sdk/client-secrets-manager";const client = new AWS.SecretsManager({ region: "REGION" });// async/await.try { const data = await client.l.. [Docker] 도커 볼륨 생성 도커 볼륨의 역할 => 컨테이너가 날아가더라도 볼륨은 유지가 된다. uploadVol:/upload 볼륨 이름 :/ 컨테이너 경로 172.17.0.2:8080 volumn에 들어간 파일은 어디에 있을까? docker volume inspect uploadVol 명령어 Mountpoint 경로에 파일이 존재함을 알 수 있다. 볼륨을 왜 쓸까? 볼륨 리소스를 만들어놓으면, 컨테이너를 여러개 만들고 여러개의 컨테이너들이 이 볼륨을 같이 마운트 시키면 볼륨을 공유파일 시스템처럼 쓸 수 있다. [ 데이터 전용 컨테이너 사용 ] 컨테이너는 Create만 하고 run을 할 필요가 없음. 하지만 볼륨을 가지고 있는 상태에서, 볼륨을 쓰도록 Create만 해놓는다. 그리고, 공유 스토리지가 필요한 Container를 실.. [Docker] Container 이미지 작업 수업 Memo 믿고 써도 되는 애들도 있음 Repository에 개인이 작성해서 Push를 할 수도 있음 가입해보자 도커 이미지 관련 명령어들 컨테이너를 실행을 시켰다는 전제를 두자. 파일을 Container 안에서 추가, 삭제 작업을 한다. 그리고 Commit 명령어를 내릴 수 있다. 변경된 라이터블 레이어들이 readonly 레이어로 쌓이면서 우리만의 이미지로 쌓일 수 있다. 만들어진 이미지를 tag만 바꿔 달때, docker image tag 명령어를 쓴다. docker save, load, import, export를 사용할 수도 있음. ( 별로 사용 많이 안 함) 최종적으로는 Docker File을 가지고 Docker 이미지 빌드 명령으로 이미지 만드는 것을 할 수 있음. 오늘은 commit까지만 해볼 예정... [Docker] 2. 컨테이너 기반 기술 :: 네트워크 네임스페이스, Control Groups 스위치 장비의 예전 이름이 브릿지였음. 리눅스 OS를 깔고 스위치 역할을 할 수 있음. 리눅스 브릿지 기술을 이용해서 네트워크 격리를 하는 것임. 랜선을 하나 만들고, 링크 쌍을 만들어서 ip 쌍을 만들고 네트워크 연결 할 것임. Control Groups Linux Kernel에서 제공하는 기능 리눅스 커널에서 특정 프로세스 하나에게 CPU 몇 코어만 써, 메모리는 1기가만 써, 어떤 디바이스는 쓸 수 있고 없고를 제어해주는 것이 Control Groups이다. Docker Container는 Linux 커널의 입장에서 1개의 프로세스일 뿐이다. 기본적으로 리눅스 OS는 프로세스가 요청하는 자원들을 계속 준다. Docker Container를 운영하다보면, 특정 컨테이너가 자원을 독점해버릴 수 있기 때.. [Docker] 2. 컨테이너 기반 기술 :: 리눅스 chroot 기능 활용 로그인만 console에서 해주고 mobaXterm 접속 newroot로 파일 시스템이 격리 됐음 완전히 격리된 root를 제공해주고 있음. 리눅스 커널의 namespace 기능으로 특정 프로세스에게 이러한 기능을 지원한다. namespace라는 개념은 사실 아주 광범위한 단어이다. 쓰이는 문맥에 맞게 해석을 해야하는데, 쿠버네티스의 namespace 리눅스 커널의 namespace 그 외 Language별로 (JAVA 등)의 namespace 등등 무언가 격리를 해주는 느낌의 단어이다. UNSHARE 명령 run program with some namespaces unshared from parent unshare -m 명령을 사용하여 mount namespace를 격리 -m : 마운트 마운트라는 개념.. [Docker] 1. Oracle VM VirtualBox 설치 도구 -> 네트워크 선택 이제 머신 -> 추가 -> 파일 추가 저기 줄 3개짜리 클릭해서 스냅샷 클릭 확인하기 시작 클릭하면 VM intro가 뜨면서 요렇게 나옴 root / edu 로그인 후 ping 테스트까지 완료 [Spring boot] VSCODE 웹 프로젝트 war 파일 AWS로 배포하기 (1) AWS 인스턴스 생성 회사 홈페이지를 만든 후, AWS로 배포를 하게 되었다. 소요 시간은 도메인을 미리 사뒀다는 전제하에 삽질 포함 정확히 이틀정도 걸렸음. 또 하라하면 도메인이 바로 적용된다는 전제하에 반나절 컷 가능할듯 ㅋ 아무튼 블로그에 쓰는건 추후 배포할 때 까먹지 않기 위해 하는 기록임 AWS에 배포를 한다는 의미는 아주아주 쉽게 얘기해서 "가상 컴퓨터를 AWS(클라우드)에 만들고, 해당 가상 컴퓨터에 나의 프로젝트를 저장시킨 후 서버를 자동으로 가동시켜주며 도메인과 연결해주는 네임서버를 발급해줌" 이다. 나는 멍충이라 이걸 이해하는데에 꽤 많은 시간이 걸렸다...ㅋㅎ 로그인하면 다음과 같은 화면이 뜬다 왼쪽 상단 서비스에 들어가서 EC2 클릭 인스턴스 시작 클릭 여기서부터 좀 갈리는데 프리티어인 Amazon Li.. [AWS] EC2 리눅스 서버 셋팅 (1) 아파치와 톰캣의 차이? 보통 우리는 컴퓨터를 사용할 때 웹 페이지를 띄워서 정보를 검색하고 다양한 콘텐츠를 즐긴다. 예를 들어 내가 유투브에서 동영상이 보고 싶다면, 웹 브라우저(크롬, 파이어폭스, IE)에서 유투브의 URL(www.youtube.com)을 쳐서 해당 페이지에 접속을 한다. 그러면 해당 페이지에서는 사용자가 원하는 화면을 보여주고 정보를 제공한다. 바로 이것이 클라이언트(사용자)와 서버(유투브 서버)의 상호 작용이다. 클라이언트와 서버를 통신을 가능하게 하는 것이 브라우저이며, 브라우저는 클라이언트는 원하는 것을 요청(request)하고 서버에서는 사용자가 원하는 것에 응답(response) 한다. 1. 아파치 아파치 : 아파치 소프트웨어 재단 아파치 서버 : 'open source' 라이선스에 따라 배포되어 .. 이전 1 2 다음