콘텐츠로 이동

2021 08 26 인프라

2021-08-26 인프라

S3

  • 왜 필요했나요? - 놀토 서비스 특성상 많은 양의 사진을 저장했어야 했음 - S3를 통해 파일 서버를 구축하고 싶었음
  • 어떻게 사용했나요? 1. 유일한 이름의 퍼블릭에 공개하지 않는 S3 버킷 만들기 2. WAS EC2에 ec2-s3-deploy IAM 설정을 걸어둠 3. AmazonS3ClientBuilder를 통해 AmazonS3 빈 설정 등록

    @Bean
    public AmazonS3 amazonS3() {
        return AmazonS3ClientBuilder
                .standard()
                .withRegion(region)
                .build();
    }
    

    1. amazonS3.putObject("버킷이름", "파일명", 실제파일) 메서드를 활용하여 S3에 저장
  • IAM이 뭔가요? - 참고 1: http://wildpup.cafe24.com/archives/929 - 참고 2: https://krauser085.github.io/AWS-02/ - 사실 IAM 설정을 안 해줬다면, 계정 정보에서 AccessKey, SecretKey를 발급받아 이를 통해 인증 절차 필요 - AccessKey, SecretKey를 가진다면 해당 계정의 AWS 자원에 접근 가능! - AWS CLI로 뚝딱뚝딱 가능 - IAM이란? - Identify and Access Management - AWS 리소스를 사용하는 유저/그룹/사용권한 등을 전체적으로 관리하는 서비스 - 그룹/유저를 추가하여 그룹/유저별로 세부적인 리소스 사용권한을 부여/관리 가능 - 이를 통해 리소스에 대한 액세스를 안전하게 제어할 수 있음
  • 루트 사용자와 IAM 사용자? - 참고: https://wonit.tistory.com/348 - 루트 사용자 => 실습 환경 구축/개인서버 오픈 시 그냥 회원가입 - 루트 사용자 == AWS 자원 암거나 다 살 수 있어 - == 탈취당하면 돈 뒤지게 깨짐 - IAM 사용자 => AWS 리소스에 대한 액세스 안전하게 제어
      - 다음과 같이 Root Account 몰라도 서로 공유하는 인스턴스에 접근 가능
      ![](https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F05JUE%2FbtqPibZqN4I%2F93QStidfQxe5b373Tid1xk%2Fimg.png)
    
      - 다음과 같이 리소스 접근 권한을 다르게 줄 수 있음
          - ec2-s3-deploy 권한을 EC2 IAM에 추가해서 사용하는 중!
    

도커

  • 어느 곳에 도커를 사용했나요? - 젠킨스, 엔진엑스, 마리아디비를 인스턴스에서 올릴 때 도커를 사용했습니다
  • 왜 도커를 사용했죠? - 솔직히 말하면 팀원의 추천으로 인해 사용 - 학습 차원에서 나도 동의했음
  • Snowflake 이슈 때매 도커 쓴다고 적어놨는데 경험해본적 있나요? - snowflake 이슈란 한 번 설치한 서버의 프로그램을 계속해서 설정 변경하고 패치를 적용하면서 서버 구축했을때,,, - scale up을 위해 동일한 환경의 서버를 구축해야할 때 진짜 골때리겠지? - 도커를 사용하면 사용하는 버전, 환경등을 Dockerfile 등으로 기록해두기 때문에 해당 문제로 부터 자유로움
  • 환경에 종속되지 않는다는게 좀 이해가 안되네요? - 기본적으로 도커는 리눅스 커널 위에서 돌아간다고 알고 있다. - 따라서 윈도우에서 실컷 개발해놓고 리눅스에 올렸을 때 뻑이나는 현상이 없어진다는 것!
  • VM에 비해 도커가 가지는 장점? - VM의 가상화 방식은 OS 가상화,,, 무겁고 느려서 운영환경에서 사용이 불가능했다 - 도커는 프로세스를 격리하는 방식 - CPU/메모리는 해당 프로세스가 필요한 만큼만 추가로 사용! - 성능 손실이 거의 없음
  • 이미지 쌓아서 배포해본적? - 두 개 이상의 이미지 풀받은거 겹쳐본적은 없는듯! - 비슷하게 해본적은 있다 (그리고 할 수 있을 것 같다!) - 필요한 프로그램/의존성 설정 pull 받아서 그위에 COPY 할 파일들 넣어두고, - 컨테이너 안에서 돌릴 shell script RUN 돌려본적은 있음!
  • 도커파일 써본적있나? - 있다! - 엔진엑스 깔아보면서 + jar 고립시켜 돌려버릴때!
    FROM nginx
    
    COPY nginx.conf /etc/nginx/nginx.conf
    COPY fullchain.pem /etc/letsencrypt/live/joel-web-hosting.o-r.kr/fullchain.pem
    COPY privkey.pem /etc/letsencrypt/live/joel-web-hosting.o-r.kr/privkey.pem
    
    ###############################
    FROM openjdk:8
    
    COPY application-oauth.yml application-oauth.yml
    COPY application-real-db.yml application-real-db.yml
    COPY app.jar app.jar
    COPY run1.sh run.sh
    RUN chmod +x run.sh
    
    ENTRYPOINT ["./run.sh"]