2024/12 5

AWS ECR로 개인 repository에 도커 이미지 관리하기

Docker는 컨테이너를 만들어내는 이미지라는 틀을 가지고 있다.그리고 모든 이미지는 Docker hub에 'docker push' 명령어로 올려서 모두와 공유할 수 있다.하지만 이미지를 우리 팀만 써야하는 경우라면 Github에서처럼 private repository가 필요해진다.도커에 돈을내고 private repository를 만들수도 있지만, 프리티어가 적용되는 AWS ECR이라는 대안도 있다.ECR에 이미지를 올리고, 또 다운받는 과정을 정리해보았다. 1. 개발 컴퓨터에서 이미지 빌드하기docker build --platform linux/amd64 -t 이미지이름:태그 실행위치먼저 위 명령어로 이미지를 생성한다. 각 옵션과 아규먼트를 자세히 설명하면 아래와 같다. -t : 이미지의 이름과 태그..

프레임워크/AWS 2024.12.23

AWS Elastic BeansTalk 삭제 후에도 요금 청구되는 경우

Elastic Beanstalk (aka EBS)는 백엔드 배포를 위한 AWS 자원을 자동으로 생성하여, 신속한 배포를 돕는 서비스이다.EBS 자체에는 요금이 청구되지 않지만, 얘가 생성하는 AWS 자원들이 매우 비싸고, 프리티어 적용이 안되기 때문에 요금이 부담되는 경우가 있다. 문제는, EBS 콘솔에서 삭제를 누른다고 해도 관련 자원들은 삭제가 되지 않아 요금이 계속 올라간다.이런 경우 직접 자원을 정리해줘야하는데, 그 방법에 대해 정리해보려고 한다. 1. 청구서에서 자원 종류 및 region 확인우측 상단의 내 계정 정보를 누르고, '결제 및 비용관리'로 들어간다.  그럼 이렇게 총 요금이 보이지만, 어디서 요금이 발생했는지는 알수 없다.좌측 탭에서 '청구서'를 누르거나 스크롤을 내려보자. [+] ..

프레임워크/AWS 2024.12.23

Dockerfile에서 bash 명령 사용하기 | RUN, CMD, ENTRYPOINT 차이

도커는 이미지라는 틀을 만들고, 이를 사용해서 가상 머신을 만들어내는 식으로 동작한다.이때 이미지를 정의하기 위해 Dockerfile을 문법에 맞게 적어줘야하는데, 여기서 쉘 명령어를 사용하기가 여간 까다롭지 않다.도커파일에서 쉘 명령어를 입력하는 형식과, 사용할 수 있는 커맨드의 종류 두가지를 모두 정리해보았다. 1. Shell form과 exec formDockerfile 예시를 읽다보면 똑같은 일을 하는 명령을 두가지 방법으로 적어놓은 것을 볼 수 있다.FROM centos:7# 컨테이너 실행 직후 컨테이너에 running... 이라는 문구를 두번 출력한다.CMD "echo 'Hello from shell form!'; exec bash" # shell formCMD ["/bin/bash", "-c..

SSL 작동 방식 및 필요성 이해하기

SSL 보안의 필요성'공개키 암호화 방식 이해하기'에서 알아보았듯이, 인터넷을 통해 전달되는 모든 정보는 다른 컴퓨터가 읽을 수 있다. (이제부터 도청이라고 부르겠다) 따라서 아무도 읽지 못하도록 암호화하는 것이 중요했다. 그런데 중요한 정보를 훔치는 데에는 도청 말고도 수많은 방법이 있다. 한가지 방법은 정상 서버에 가짜 유저가 요청을 보내는 것이다. 이것은 서버측에서 사용자 인증을 강화해서 해결할 수 있다.또 다른 방법은 가짜 서버를 만들어서 정상 유저가 입력하는 모든 정보를 갈취하는 것이다. 입력하는 정보가 아무리 암호화되어있다고 해도, 가짜 서버에서 복호화 될 수 있는 형태라면 결국 그 정보는 도난 당하게 된다.따라서 요청을 보낼 곳이 내가 접속하고싶은 서버가 맞는지 확인하는 과정이 아주 중요하다..

CS 지식 2024.12.13

공개키 암호화 방식 이해하기

HTTPS 암호화에도 활용되는 공개키 방식(aka 비대칭키 방식) 암호화란 무엇일까?그리고 애초에 왜 암호화는 왜 필요한걸까? 이 두가지 이유에 대해 알아보자. 암호화의 필요성인터넷은 정보를 목적지로 보내기 위해서 그 사이에 있는 다른 컴퓨터를 반드시 거치게 된다. 그리고 전달하는 내용은 그 경로에 해당하는 모든 컴퓨터가 다 볼 수 있다. 애초에 인터넷은 군사 목적으로 개발 되었기 때문에 해당 네트워크에 악의적인 사용자가 한명도 없다는 가정을 하고 개발되었다.따라서 여러 컴퓨터에 거쳐 패킷을 전달해서, 확장에 유리한 구조를 만드는 것을 반대할 이유가 없었다. 누군가 내가 보낸 내용을 읽더라도, 다 우리 군대 소속이니까 상관이 없었기 때문이다.하지만 인터넷이 대중에게 공개되면서, 통신 내용을 타인이 읽을 ..

CS 지식 2024.12.12