본문 바로가기

분류 전체보기110

AWS IAM 보안 정책 aws에 가입해서 루트 계정으로 로그인을 한 후 가장 먼저 해야 하는 보안 요소가 있다. 보안을 강화할수록 편의는 사라지는 반비례 관계지만 루트 계정이 털렸을 때의 비용을 생각해보면 꼭 해야 하는 이유가 된다. 시스템을 설계할 때 모든 곳에 보안 요소가 들어가지만 가장 기본인 계정과 관련한 보안 정책이 있다. 지키지 않으면 IAM dashboard에서 노란색 느낌표로 자극을 주는 최소한의 보안 정책은 꼭 따르도록 한다. Delete your root access keys 루트 사용자의 access key를 삭제 또는 비활성화한다. 별도로 생성하지 않았다면 루트 사용자의 access key는 없기 때문에 옆에 초록불이 켜있을 것이다. 삭제와 비활성화의 차이는 해당 access key를 다시 복구할 수 있는.. 2020. 4. 7.
DNS 과정과 route 53 사용법 aws에서는 도메인을 route 53에 등록해서 DNS(Domain Name System) 서비스를 쉽게 사용할 수 있다. 단순히 도메인을 ip 주소로 바꿔주는 역할을 하지만 그 과정에는 체계적인 시스템이 숨어있다. 체계적인 시스템 안에 로컬 환경과 여러 cache layer까지 있다 보니 정확히 알지 못하면 헷갈릴만한 요소가 많아 주의해야 한다. DNS 과정 먼저 www.naver.com을 접속하기 위해 ip주소를 얻어오는 과정은 대략 다음과 같다. 1. 내 컴퓨터 os마다 다르지만 /etc/host 파일에서 www.naver.com을 도메인이 매핑되어있는지 확인한다. DNS 서버가 존재하기 전에는 이 파일로 모든 매핑을 관리했으나 지금은 불가능한 일이다. 하지만 여전히 가장 먼저 참조하기 때문에 개인.. 2020. 4. 4.
Security Group vs Network ACL 정리 Security Group과 Network ACL을 대충 방화벽 정도로만 인식하고 있으면 aws 상에서 여러 서비스들이 언급될 때 혼란이 있을 수 있다. 둘 다 보안 비슷한 역할인 거 같으니 각각이 어느 영역을 책임지고, 어떤 정책으로 관리하는지 알아보자. 적용 범위 두 서비스 모두 트래픽의 요청(inbound)과 응답(outbound)을 관리하는 공통점이 있지만 담당하고 있는 분야가 다르다. Network ACL Network ACL은 생성 후 subnet 단위로 association 한다. 즉 subnet 단위로 적용되고, subnet 안에 속해있는 instance들도 물론 해당된다. Security Group Security Group은 instance 단위로 제어한다. 그래서 aws console.. 2020. 4. 2.
Swagger openapi 사용법 OpenAPI는 REST API를 사용하는데 필요한 정보를 담은 규격이다. yaml이나 json으로 endpoint, parameter, response 등 모든 api를 표현한다. OpenAPI 3.0.0부터는 Swagger specification이 OpenAPI specification으로 이름을 바꾸고 여러 다른 회사/단체와 힘을 합쳐 표준화가 진행되었다. OpenAPI에서는 모델을 정의하고 재활용하는 문법을 통해 중복되는 선언을 줄일 수는 있지만 막상 작성하다 보면 크기가 방대해지는 건 어쩔 수 없다. 소스코드에서 api 명세를 작성하는 방법이나 다른 여러 방법들이 존재하지만 모든 불만을 충족시켜줄 순 없는 노릇이라 직접 해보며 경험을 쌓아보는 게 좋을 것 같다. openapi 첫 줄은 open.. 2020. 4. 2.
AWS storage type 스토리지 종류는 크게 3가지로 각 종류마다 aws에서 제공하는 service들이 있다. 단순히 파일을 저장하는 용도에서 더 나아가 어떤 차이가 있고, 어떻게 동작하는지 알아야 스토리지를 활용하는 다른 서비스를 자유자재로 다루는데 도움이 된다. 어떤 서비스를 사용하냐에 따라 쉽게 지원되는 스토리지 서비스가 있는 경우가 많기 때문에 고민하는 경우가 적을 수 있겠지만, 각 종류마다 차이를 알면 더 깊게 가용성 / 보안 / 확장성 / IOPS / 비용 등의 특징도 이해할 수 있을 것이다. Block storage 원시 스토리지로 ssd/hdd 종류가 있고, 각 종류마다 성능을 선택한다. EC2 Instance Store ec2 인스턴스에 포함된 디스크로 매우 좋은 IOPS 성능을 가진다. ec2를 reboot해.. 2020. 3. 31.
딥러닝에 사용하는 확률분포 함수 모델을 학습시키는 과정에서 필요한 확률 분포 함수 중 자주 사용되는 몇 가지만 정리해본다. Softmax 입력으로 가중치를 받아서 각 가중치를 [0, 1]의 확률로 정규화하는 방법 중 하나이다. $$ p_{i} = \frac{e^{z_{i}}}{\sum_{j=1}^{N}e^{z_{j}}} $$ 입력 크기에 단순히 선형 비례하지 않고, $e^{x}$의 값에 비례한다. def softmax(z): e_z = np.exp(z - np.max(z)) return e_z / e_z.sum() softmax 함수에서 최댓값을 모든 가중치에서 빼고 시작하는데, 이는 지수가 커서 발생하는 부작용을 줄이기 위함이다. [1, 2, 3]을 입력으로 실행해보면 지수함수 특성상 값이 클수록 가중치가 높아져 [0.09 0.24 .. 2020. 3. 30.