2022/03 6

[AWS] Private EC2 Instance에 접속하기

보통, 서버를 구축할 때 web service에 직접 접근하는 것을 막기 위해 private subnet에 위치시키곤 합니다. private subnet에 위치한 web server에 직접 접근하려면 어떻게 해야할까요? 첫 번째로는 ssm을 사용하면 됩니다. ssm을 사용하면 키를 이용하지 않고 public instance에 접근 가능하고 private instance에도 접근 가능합니다. 대신에 aws cli와 ssm plugin등 설치해야 할게 많습니다. 또한 ssm-agent가 server에 깔려 있지 않으면 instance를 만들 때 user data로 ssm agent를 설치해야 합니다. 두 번째는 pem key를 이용하면됩니다. public instance에 접근하기 위해서 key가 필요합니다..

AWS 2022.03.30

[AWS] Route53 Private DNS로 ALB와 연동하기

AWS 서비스에는 Route 53이라는 클라우드 DNS(Domain Name System)이 있습니다. AWS 내에서 도메인을 구입하여 DNS 서비스를 사용하여도 되고 다른 사이트에서 도메인을 구입한 후에 사용하여도 됩니다. 서비스를 할 때는 인터넷을 통해 누구나 접속할 수 있는 Public DNS를 사용해야하지만 내부 Cloud에서만 사용할 때는 Private DNS를 사용해도 됩니다. MSA 아키텍쳐에서 서로 요청을 할 때 IP가 아니라 도메인을 사용하면 여러 장점이 있기에 도메인을 사용합니다. 직접 AWS Route53을 사용하여 Private Hosted Zone을 생성해 보겠습니다. 실습. Route53에서 Private Hosted Zone을 만들어서 ALB와 연동하기 실습에 앞서, AWS 계..

AWS 2022.03.24

[AWS] EC2에 Apache Tomcat 설치하기

Java web service를 가능하게 해주는 Apache Tomcat을 EC2 amazon linux 2에 설치를 해보려고 합니다. EC2에 생성을 하기에 AWS 계정이 필요합니다. [실습] EC2에 Apache Tomcat 설치 1. EC2 생성 Amazon Linux2 AMI를 사용하는 EC2 하나를 생성해줍니다. 접근성이 좋게 public subnet에 ipv4를 활성화해서 만들어 줍니다. EC2 서버를 만들었으면 ssh나 putty나 ssm을 이용하여 해당 서버 안으로 접속해 줍니다. 2. Java 설치 Apache Tomcate을 설치하기에 앞서 EC2에 Java를 설치해 줍니다. Amazon linux2 EC2에서 Java는 amazon linux extras를 이용하여 설치 가능합니다. ..

AWS 2022.03.23

[Javascript] Javascript 동작(1)

Javascript란? Javascript는 싱글 쓰레드로 동작하는 객체 기반의 스크립트 언어입니다. 웹 브라우저나 Node와 같은 런타임 환경에서 실행이 됩니다. Javascript에는 hoisting, call by sharing, prototype, closure 등 다른 프로그래밍 언어에서 찾아볼 수 없는 특징들이 있습니다. 또한 런타임 환경에서는 비동기 작업을 하기도 합니다. Javascript는 어떻게 동작할까? Javascript가 어떻게 동작하는지 알기 위해서 먼저 Execution context와 Execution Stack에 대해서 알아야 합니다. Execution context와 stack에 대해서 잘 알면 나중에 hoistong이나 closure와 같은 개념에 대해서 더 잘 이해할 ..

[Docker] Nestjs와 Mysql 연결 (Container 간 연결)

Docker-compose를 이용하면 여러 개의 컨테이너로 구성된 서비스들을 관리할 수 있습니다. 여러 개의 컨테이너로 구성된 서비스들끼리 연결하는 경우도 종종 있습니다. 저의 서비스의 경우 mysql과 Nest.js를 연동을 하려고 합니다. 연동을 할 때 어떤 점을 고려해야 하는지 간단하게 얘기해보겠습니다. 먼저, Docker에 대해서 알고 있어야 합니다. Docker는 간략히 말해 container 단위로 프로세스들을 격리하기 때문에, container끼리 영향을 주지 않습니다. 따라서 컨테이너끼리 연결을 하고자 한다면 docker network를 설정해주어야 합니다. Network에 대한 내용은 다른 블로그에도 정리가 잘 되어 있고 공식 document에도 정리가 잘되어 있으니 참고하면 되겠습니다...

Docker 2022.03.12

Overloading & Overriding

Overloading과 Overriding은 객체지향 프로그래밍에서 필수적으로 알아야 하는 개념입니다. 대표적인 객체지향 언어인 JAVA를 공부하지 않아도 python, javascript, typescript에서도 사용되는 개념입니다. 또한 Overloading의 경우는 클래스 내에 메서드뿐만 아니라 함수에도 적용이 됩니다. 이번 글에서는 Overloading과 Overriding의 개념에 대해서 정리를 해보려고 합니다. java와 typescript에서 overloading과 overriding의 규칙이 살짝 다른데 그 부분은 추후의 글에서 다뤄보도록 하겠습니다. Overloading Overloading이란 함수나 메서드의 이름은 똑같은데 return type이나 argument type, argu..

2022.03.10