본문 바로가기

AWS

테라폼 맨땅에서 부터 적용하기 1 AWS에서 리소스를 제어할때 기본적으로 AWS Console을 사용한다. 하지만 리소스가 점점 늘어날 수록 손으로 일일이 대응하기엔 시간도 많이 걸리고 휴먼에러도 많이 발생한다. 인프라는 다른 개발자들의 컨텐츠 작업보다는 훨씬 리스크가 큰 작업이다. 예를 들자면, 인프라는 건물이고 개발자는 인프라가 생성한 방에서 일하는 근로자인 것이다. 개발자가 실수를 하면 방에서 불이 나거나, 물 난리가 나는 정도의 레벨이라면 인프라의 실수는 기둥하나를 날리는 것이라던지, 중간 층을 통채로 날리던지 비교 여부를 떠나 개발자 대비 리스크가 훨씬 큰 작업이라는 것이다. 이번 적용기 글에선 사용법이나 이런 것들은 적지 않고 느낀 점만 간단히 적을 생각이다. 이미 많은 분들이 잘 사용할 수 있는 방법을 적어놨기 때문이고 사실.. 더보기
[AWS Lambda] S3 Image Resize with URL Parameter (Cloudfront 요금 30% 감면) 기존에 사용하던 이미지 파일들이 너무 커서 리사이징을 해야 하는 이슈가 발생했는데 파일이 너무 많고 쓰는지 안 쓰는지 알수 없는 상황이었다. 그렇다고 개발팀에선 이미지 파일 리사이징 후 업로드 하는 부분에 대해서 대응할 시간은 없고 인프라쪽은 빠르게 조치를 해야하다보니 람다 function을 이용해서 처리할 방법을 고민하게 되었다. 찾아보다보니 lambda@edge 기능을 이용하여 S3 -> Cloudfront로 보낼때 origin response 부분에 Lambda@edge를 채워 놓고 거기서 리사이징을 한 뒤 Cloudfront로 보내면 URL 파라미터를 포함하여 캐시가 된다는 내용이 있었다. 그렇게 되면 개발팀에서도 굳이 별도의 기능을 구현하지 않고 URL Parameter를 사용하여 처리하면 되기.. 더보기
ngrinder 서버 세팅 # 도커 설치 sudo yum install docker -y # 도커 always on boot sudo chkconfig docker on # controller 기동 sudo docker run -d --name controller -v ~/ngrinder-controller:/opt/ngrinder-controller -p 8080:80 -p 16001:16001 -p 12000-12009:12000-12009 ngrinder/controller # 1 ~ n까지 필요한 만큼 네이밍 바꿔가면서 서버 생성 sudo docker run -d --name agent{n} --link controller:controller ngrinder/agent # html 가져와 지는지 확인 wget localho.. 더보기
ELK 서버 세팅하기 wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add - echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-7.x.list sudo apt install elasticsearch sudo vim /etc/elasticsearch/elasticsearch.yml # edit network.host: localhost :wq # quit sudo systemctl start elasticsearch sudo systemctl enable elasticsearch #.. 더보기
ubuntu apache2 letsencrypt 적용방법 # letsencrypt 설치 sudo apt-get install letsencrypt # 인증서 설치 # ACMEv1 프로토콜의 보안 문제로 ACMEv2를 적용하여야 인증서가 생성됨 sudo letsencrypt certonly --server https://acme-v02.api.letsencrypt.org/directory --webroot --webroot-path={webroot} # 이메일 주소 입력 후 엔터 # SSL 모드 활성화 sudo a2enmod ssl # Rewrite 활성화 sudo a2enmod rewrite # SSL 설정 sudo vim /etc/apache2/sites-available/default-ssl.conf # edit DocumentRoot {webroot} S.. 더보기
AWS EC2 에서 s3 drive 연동하기 (non-root) # AWS EC2 Ubuntu 16.04 LTS 기준 sudo apt-get install s3fs sudo vim /etc/fuser.conf # edit # user_allow_other 주석 제거 # quit echo : ~/.passwd-s3fs sudo vim /etc/passwd-s3fs # add : # quit sudo chmod 600 ~/.passwd-s3fs sudo chmod 640 /etc/passwd-s3fs mkdir ~/s3-drive sudo s3fs -o allow_other -o use_cache=/tmp -o uid=1000,umask=077,gid=1000 ~/s3-drive # 유의사항 - 마지막 구문의 -o uid=1000,umask=077,gid=1000 옵션을.. 더보기
EC2 CodeDeploy Agent Install (ubuntu) sudo apt-get update sudo apt-get install python-pip sudo apt-get install ruby2.0 wget https://aws-codedeploy-ap-northeast-2.s3.amazonaws.com/latest/install chmod +x ./install sudo ./install auto sudo servie codedeploy-agent status 더보기
CloudFormation을 통한 개발서버 On/Off 스케줄링 (실패) # CloudFormation 생성 # 템플릿 추가 후 실행 - https://s3.amazonaws.com/solutions-reference/aws-instance-scheduler/latest/instance-scheduler.template # Service(s) to schedule -> BOTH # Default time zone -> Asia/Seoul # Enable CloudWatch Metrics -> Yes # Started tags -> state=started # Stopped tags -> state=stopped # 다음 - 다음 # AWS CloudFormation에서 사용자 정의 이름으로 IAM 리소스를 생성할 수 있음을 승인합니다. 체크 후 생성 # https://docs.. 더보기