글

라벨이 aws인 게시물 표시

서버에서 CORS 설정하기

사내 사이트 유지보수 하면서 그동안 cors 관련해서 할일도 없었는데 개발 관련 일을 계속하다보니 cors 관련 에러를 접함.... 그리하여 조금 고생을 함. 1.php 설정 어느분 블로그를 보고 한건데 페이지가 기억이 안남..... 암튼 allow 된 사이트만 허용하게 하는것. $http_origin = $_SERVER['HTTP_ORIGIN']; $allowed_origin = array('http://사이트', 'https://사이트'); if (in_array($http_origin, $allowed_origin)) {     header("Access-Control-Allow-Origin: {$http_origin}"); } 2. aws apigateway 설정 angular + s3 + lambda + apigateway 조합으로 사이트 만들었는데 여기에서 cors 삽질을 함.... (기본 지식이 부족해서) 암튼  요 링크에 cors 설정들이 대부분 있는거 같음. https://enable-cors.org/server.html 요거보고 해결. https://enable-cors.org/server_awsapigateway.html 내용들 : Log into API Gateway console Create all the REST resources that needs to be exposed with their methods before setting up CORS (if new resources/methods are created after enabling CORS, these steps must be repeated) Select a resource Add OPTIONS method, choose as integration type "mock" For each Method of a resource Go ...

[Tool] Putty SSH Tunnels 및 SSH DB 접속.

DB를 AWS aurora serverless로 사용해서 AWS 내부에서만 접속이 가능. bation host server로 통해 DB 접속. 1. MYSQL Workbench Manage Server Connections 에서   가. Connection Method : Standard TCP/IP over SSH 선택.   나. Parameters 탭에서        bation host server 및 DB에 맞게 설정. 2. Putty SSH Tunnels Category 에서   가. SSH --> Tunnels 에서        Source port : 잘 안 쓰는 포트로        Destination : DB 주소        Local ,Auto 라디오 버튼 활성화.   나. 연결 될 bation host server 서버 맞게 설정.   연결 후 코드에서 host :  localhost                          port :  Putty에서 설정한 잘 안 쓰는 포트   그리면 잘 됨.   

[AWS] EC2 EBS NVMe 마운트

EC2 인스턴스를 타입변경을 t2에서 t3 인스턴스로 변경 후 EBS가 기존과 다르게 뭔가 마운트 관련 변경 되는게 있는거 같음. (T3 변경 때 EBS 최적화 라는 문구가 있던데 그거와 관련이 있는듯) 암튼 https://docs.aws.amazon.com/ko_kr/AWSEC2/latest/UserGuide/nvme-ebs-volumes.html  참고 함. 간단하게 1. sudo /sbin/ebsnvme-id /dev/nvme1n1 2. sudo mount /dev/sdf /마운트 하고 싶은 디렉토리/ 예) [ec2-user@ready backup]$ sudo /sbin/ebsnvme-id /dev/nvme1n1 Volume ID: vol-042128714c5020fe3 sdf [ec2-user@ready backup]$ [ec2-user@ready backup]$ sudo mount /dev/sdf /backup/ 만약에 ec2 t3에서 새로운 volume을 추가하는데 파일시스템이 없다면 포맷으로 파일시스템을 지정해야함. 아래 3,4 확인. https://docs.aws.amazon.com/ko_kr/AWSEC2/latest/UserGuide/ebs-using-volumes.html

[AWS] EC2 ENA 활성화 하기

기존 EC2 t2 인스턴스를 t3 인스턴스로 타입 변경을 하려고 했더니 ena를 활성화 하라고 메세지 뜸.(오래된 ec2 인스턴스는 기본으로 활성화 안되어 있음. 최근꺼는 바로 인스턴스 타입 변경이 되었는데....) 암튼 https://docs.aws.amazon.com/ko_kr/AWSEC2/latest/WindowsGuide/enhanced-networking-ena.html  참고. 간단하게 1. 해당 EC2 인스턴스  sudo yum update , sudo reboot 2. AWS CLI 가) aws ec2 stop-instances --instance-ids 인스턴스ID 나) aws ec2 modify-instance-attribute --instance-id 인스턴스ID --ena-support 다) aws ec2 start-instances --instance-ids 인스턴스ID 라) aws ec2 describe-instances --instance-ids 인스턴스ID --query "Reservations[].Instances[].EnaSupport" 하면  [ true ] 라고 나옴. 가) 단계전에는 true라는 단어가 없음.

[AWS] Amazon Linux Time 변경

기본 시간대가 UTC로 되어있음. sudo rm /etc/localtime sudo ln -s /usr/share/zoneinfo/Asia/Seoul /etc/localtime sudo reboot date sudo date

[AWS] ec2 Amazon Linux update fail.

sudo yum update로 업데이트 하니 중간에 아래의 에러가 발생하면서 중간에 끊기고 업데이트가 안 되었다. Transaction check error:   file /usr/share/pear/doc/json/README.md from install of php56-jsonc-1.3.10-1.20.amzn1.x86_64 conflicts with file from package php55-pecl-jsonc-1.3.6-1.13.amzn1.x86_64 Error Summary ------------- php56을 사용하고 있는데 php55로 인해 문제가 생긴거 같음. 검색을 해서  sudo yum remove php55-common 을 실행을 하여 다시 업데이트를 했더니 잘 되었다. 참고로 의존성으로 인해 php55 관련 된게 몇개 지워진다. 참고 : https://forums.aws.amazon.com/thread.jspa?threadID=266321

[AWS] EC2 persistent instance retirement scheduled

사용중인 EC2 인스턴스 하나가 예약 스케줄이 있어서 봤더니 EC2 persistent instance retirement scheduled 이벤트가 하나 있었다. 관련 문서는 (이유 및 해결방법) http://docs.aws.amazon.com/ko_kr/AWSEC2/latest/UserGuide/instance-retirement.html#instance-retirement-working 편하게 서비스 없는 시간에 인스턴스 중지 했다가 다시 시작을 하면 끝.!!! -재시작(리붓) 아님. 중지 되는 시간은 5분 걸림.(인스턴스마다 다름). 추가적으로 좌측에 ec2 대쉬보드 이벤트에 관련 예약 스케줄이 있다가 작업 후 예약 스케줄 없어짐. 근데 상단에 경고(종) 예약된 변경에는 그대로 작업이 남아있음. 문의를 했더니 콘솔 페이지 버그라서 해당 예정일이 지나야 없어진다고 함. (지켜 보겠음. 아니라면....)

[AWS] RDS mysql slow_query 설정

AWS RDS MySQL에서 slow_query 설정. 1. AWS console >> RDS >> Instances >> 해당 DB 체크 >> Logs 보면  Logs 목록에    slowquery/mysql-slowquery.log이 없음. 2. Parameter Groups >> 해당 Parameter 체크 후 Edit Parameters 클릭    가. slow_query_log  = 1 (사용)  (기본값은  <engine-default> 또는  0 )    나. long_query_time  = 10 (기본값은 10(초단위) )    : slow_query 기준값 즉 10초가 넘으면 slow_query로 log에 남음.    다.  log_queries_not_using_indexes : 인덱스를 사용하지 않는 모든 쿼리를           느린 쿼리 로그에 기록하려면 1로 설정합니다. 기본값은 0입니다. 인덱스를 사용하지           않는 쿼리는 실행 시간이  long_query_time  파라미터의 값보다 짧아도 로그에            기록됩니다.(안 하는걸로....)     라. 암튼 가. 부분을 수정 후 저장 DB 리셋 후  1. logs 부분을 보면          slowquery/mysql-slowquery.log 나옴.    마. SHOW VARIABLES LIKE 'slow_query_%';  ,SHOW VARIABLES LIKE ...

[AWS] SDK (php용) 에러 확인.

아래의 소스로  S3 버켓에 있는 objects list를 가지고 오려고 하는데 500 에러가 계속 남. <?php require 'vendor/autoload.php'; $param = Array('region'=>'ap-northeast-2', 'version'=>'2006-03-01' ); $s3 = new Aws\S3\S3Client($param); $list = $s3->listObjects(Array('Bucket'=>'dodopopo')); //var_dump($list); $listArray = $list->toArray(); foreach($list['Contents'] as $item){     print($item['Key']."\n"); } ?> 디버깅을 하기 위해 $param = Array('region'=>'ap-northeast-2', 'version'=>'2006-03-01', 'debug'=> true ); 'debug'=> true를 추가하여 에러를 확인. DateTime::__construct(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifi...