라벨이 aws인 게시물 표시

Windows의 기본 VPN설정으로 Netplix접속시 주의사항

목적 외국에서 한국 Nexplix를 보고 싶다. 하지만 유료 VPN은 별로 사용하고 싶지 않다. 수시로 접속 거부를 당하면서 요금을 지불하고 싶지는 않다. 해결책 부모님 댁에 VPN서버를 지원하는 무선공유기를 한대 설치해 드리고 나는 외국에서 VPN으로 접속하여 Nexplix를 감상한다! 상황 공유기에 설정한 VPN에 iPad, Macbook으로 접속하면 문제 없이 한국 Netplix로 접속되는것을 확인했다. Windows11에서는 기본 VPN으로 iptime의 VPN에 접속하면 일본 Netplix로 접속 된다. 원인 처음에는 VPN의 Split Tunneling 문제가 아닐까 싶었다. Windows의 VPN설정에서는 Split Tunneling설정이 보이지 않았으므로 Power Shell에서 확인해 보았지만 Split Tunneling은 설정되어 있지 않았다.  결론부터 말하면 원인은 DNS서버였다. 이유는 모르겠지만 MacBook에서는 VPN접속시, DNS서버도 VPN서버의 DNS가 자동으로 설정되었는데 Windows11에서는 DNS서버가 변경되지 않아 한국 지역으로 인식되지 않았던 것으로 추측. Solution Windows11의 VPN접속 설정에서 접속시의 DNS서버를 한국의 공유기 IP로 지정을 해주었다. 그리고 IPv6이용설정을 해제하여 IPv4만 이용하도록 설정하니 문제 없이 접속되었다. 다음 문제 미니PC를 한대 구매하여 모든 설정을 마쳤지만 매번 키보드/마우스로 조작하는게 귀찮아 Remote Desktop으로 접속하는 것을 생각했다. 미니PC에 접속할때는 iPad를 이용할 계획인데 현재 찾아본 바로는 Console접속을 지원하는 Application이 없는 듯 하다. RemoteDesktop으로 접속하면 현재 TV에 연결해 놓은 세션은 꺼져버리니 Console로 접속가능한 어플리케이션이 필요하다. TeamView를 이용하니 어느정도 문제가 해결되긴 했지만 여기저기 조그마한 문제점들이 있어 고민중.

AWS 서비스용 VPC 및 Subnet 생성

이전 포스팅을 이전한 내용. 시작하며 이 블로그의 주목적은 내 개인작업의 메모용 이었다는걸 잊고 이쁘게 만들려고 노력하다보니 점점 더 포스팅을 안하게 되었다. 모양새 보다는 질을 중시하여 꼼꼼하게 기록을 남겨가도록 하겠다. aws의 메뉴는 가능하면 영어로 기술하도록 한다. VPC의 목적 하려고 한다면 더욱 복잡한 구성의 vpc를 설계하는 것도 가능하지만 일반적으로 폭 넓게 이용할 수 있는 범위내서 작성했다. aws는 available zone 이라는 개념이 있기 때문에 최소 두개의 zone을 포함하도록 구성하였다. public subnet 에 두개의 zone을, 마찬가지로 private subnet에도 두개의 zone을 추가하겠다. VPC 생성 관리콘솔에서 vpc dashboard로 이동하여 Your VPCs를 클릭한다. VPC Wizard를 이용하여 생성해 본적도 있지만 그냥 Create VPC가 더 편한듯 하다. Create VPC를 클릭하여 Name Tag에 적당한 이름을 주고 IPv4의 CIDR block에 10.0.0.0/16을 지정하였다. IPv6 CIDR block도 Amazon provided IPv6 CIDR block을 선택했다. IPv6는 vpc작성시에 지정하지 않으면 나중에 별도로 추가할 수 없기 때문. Create를 클릭하여 VPC를 생성한다. Subnet 생성 vpc내에서 네트워크를 분리해 줄 subnet을 생성한다. 외부와 직접 통신할 수 있는 public subnet과 secure한 private subnet을 만들 것이다. 두개의 availability zone 을 이용할 수 있으니 각각 2개씩 총 4개의 subnet을 만들 것이다. VPC Dashboard에서 subnets를 클릭한 후 위에 있는 Create subnet을 클릭한다. Name tag에 헷갈리지 않게 public-a 를 입력한다. 위에서 생성한 VPC를 선택하면 지정한 IPv4, IPv6 의 CIDR block이 표시된다. Availabilty zone을 보니 a...

Amazon 계정 국가지정이 안될경우

 무언가 이상한데.. 현재 일본 amazon사이트인 amazon.co.jp와 미국 amazon사이트인   amazon . com 에 두개의 계정을 가지고 있다. 그리고 일본 amazon 사이트의 계정에 prime 멤버쉽을 등록하여 이용중에 있다. 그리고 추가 디바이스로서 echo dot와 kindle, 그리고 아이폰, 아이패드 등에 amazon prime과 kindle, amazon photo, amazon music 등의 어플리케이션을 설치하여 이용중이다.   이것저것 시도해보다가 echo dot을 초기화 하고 새로 등록하니 amazon music 플레이가 되지 않는다. 초기화 하기 전까지는 잘 되었는데 갑자기 거주국 설정이 잘못 되었다고 나온다. 그러고 보니 이전에도 amazon photo등에서 미국 계정 일본 계정이 이상하게 설정된 기억 있어서 자세하게 알아보았더니 의외의 사실을 알게 되었다.   의외의 사실 amazon . com 과 amazon.co.jp 두개의 사이트에 같은 메일주소와 같은 패스워드의 계정을 가지고 있을 경우, 어플리케이션이나 echo dot으로 로그인을 하면   amazon . com 이 우선된다는 것이다. 어플리케이션에서 amazon photo에 사진을 업로드하고 나중에 PC로 직접 확인을 해보면 사진이 안보이던 이유가 바로 이거였다. 또한 이번에 echo dot을 새로 설치한 후 amazon alexa에서 로그인 할때   amazon . com 이 우선되어 거주국이 잘못 설정되었던 듯 하다.   그냥 간단하게 설정 메뉴에서 거주국이나 사이트를 지정할 수 있게 해주면 좋을 듯 한데 “왜 이따위 방식”으로 설계되었는지 모를 일이다. 검색해 보니 생각보다 많은 정보가 있었으니, 이 정도라면 amazon에서 파악을 하고 있을 터인데, 아마도 구조상 어떻게 할 수 없는 문제가 있다보다 하고 예상 해 본다.   이건 진짜 의외인데 ? 이 문제...

phpでAWSのstatusページから異常を検知してchatworkへ通知する

 Amazonは「 http :// status . aws . amazon . com 」から AWS のサービス状況を確認できるページを提供している。ブラウザでアクセスすると各リージョンのサービス簡単に確認できる。そして、 RSS にも対応しているので RSS フィーダーを使ってサービスに異常が発生した場合、通知してくれる。   今回はphpを使ってRSSフィーダーを定期的にチェックし、新しいアイテムがフィーダーされたらそれを確認する仕組みを作ってみた。たまにしか起きないけど1回起きたら大きい影響を与えるので定期的に確認した方が絶対いい。   確認対象サービスはリージョンと関係ないグローバルサービスとリージョンに装束されるサービので2つに分けた。別に1つにしてもいいけど、RSSフィーダーのURLが微妙に違うので分けただけ。   $awspub = array ( "cloudfront" , "route53" , "route53domainregistration" , \ "import-export" , "management-console" , "marketplace" , \ "awswaf" ); $awsreg = array ( "apigateway" , "cloudwatch" , "dynamodb" , "ecr" , "ecs" , "ec2" , \ "elb" , "emr" , "elasticache" , "glacier" , "kinesis" , "rds" , \ "route53" , "sns" , "sqs" , "s3" , "vpc" , "autoscaling"...

AWS에서 zabbix를 이용한 autoscaling ec2 자동등록/자동삭제

  zabbix가 오픈소스로서 참 많은 기능을 제공 하고 있는데, jira와 마찬가지로 되는건 많은데 가려온 곳은 아슬아슬하게 피해가는 재주를 가지고 있는 듯 하다. 필요한 기능은 거의 다 있는데 될듯 하면서도 안되는데 jira와 zabbix. 특히 AWS에서 제공하는 AutoScaling Group을 이용한 EC2의 scale out/in 을 이용하면 zabbix에서 기본으로 제공되는 기능으로는 EC2를 제대로 모니터링 할 수가 없다. 어찌어찌 Host 등록은 한다 하더라도, EC2가 scale in 되어 terminated되었을 경우엔, 그냥 그대로 zabbix agent 와 통신할 수 없다는 에러를 내뿜으며 방치되어 버린다. 인터넷을 뒤져보아도 깔끔하게 처리할 수 있는 방법이 없고, 스크립트와 다른 기능들을 이용하여 scale out/in 에 의한 EC2의 자동등록/자동삭제를 구현하고 있었다. 그러나 이마저도 실제로 해보니 메뉴가 틀리거나 옵션이 없거나, 실제로 동작하지 않는 경우도 많았다. 최종적으로는 여러가지 정보를 취합하여 실제로 동작하는 방법을 찾아 냈으니 참고 삼아 이곳에 남기도록 한다. 시행착오 auto discovery 기능을 시도 해보았지만, 24bit 네트웍에 대해 15분 이내로 처리가 끝나지 않아, 다음 discovery가 계속하여 지연되는 현상이 발생했다. 15분 이면 terminated된 인스턴스에대해 agent 통신 에러가 발생하는 타이밍이기 때문에 유효한 방법이 아니라고 생각되어 포기하였다. ※ zabbix version : 4.0TLS ※ 특별한 설정내용이 없는 항목은 디폴트값이나 환경에 맞추어 적절히 설정할 것   zabbix_agentd.conf 먼저 ec2의 zabbix_agentd.conf 파일을 수정해 줄 필요가 있다. //ec2의 instance id를 얻기위해 ec2에서 meta-data를 조회한다. //meta-data조회를 위한 curl명령어 실행을 위해 지정 Enab...

AWSの放置されたEBSをchatworkへ定期的に通知

  毎日ec2やamiを作成/削除を繰り返している環境では気付かないうちに放置されているEBSが増えてくる。考えられる原因としては色々あるけど大きくは以下の2つではないかと思っている。 AMIからEC2を起動する場合の話だけど、AMI作成時に「EBSをインスタンス削除時に一緒に削除する」というオプションにチェックしなかった場合、そのAMIから起動したEC2を削除するときは毎回そのEBSが残ってしまう 不要になったらAMIを削除するとAMIに紐づいているEBSやスナップショットは削除されないらしい。定期的に不要AMIを方付ける仕組みを採用しているなら定期的に放置EBSも増えるはず。 なので以下のスクリプトを作成して定期的にチャットワークに通知するようにした。 #!/usr/bin/php <? $query= "/usr/local/bin/aws --region ap-northeast-1 ec2 describe-volumes --filters Name=status,Values=available" ; $result=json_decode(`$query`); put_msg($result); function put_msg ($obj) { $TOKN= "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" ; $CWEP= "https://api.chatwork.com/v2/rooms" ; $RMID= "XXXXXXXX" ; $now=time(); $ebsinfo= "" ; $cntebs=count($obj->Volumes); if ($cntebs > 0 ) { for ($i= 0 ; $i<count($obj->Volumes); $i++) { $cy=substr($obj->Volumes[$i]->CreateTime, 0 ,...

slack+slash command+API Gateway를 이용한 SSM 명령실행

목표 slack에서 slash command 를 이용하여 특정 명령어를 입력하면 SSM을 이용하여 지정한 ec2에서 지정된 명령을 실행하여 그 결과를 slack 에 출력한다. 여기에서는 각 ec2에서 free -m 명령을 실행 한 후 그 결과를 출력하도록 한다. 전제조건 : 대상 EC2는 ssm을 이용한 명령실행이 가능한 상황이어야 한다. AWS설정 IAM 설정 slash command를 api gateway에서 받은 후, lambda에서 ssm을 호출한다. 그러기 위해서 lambda 함수에는 ssm과 로그 출력을 위한 cloudwatch logs 에 대한 권한이 필요하다. IAM 에서 role을 선택하여 role을 작성 lambda를 선택해주고 일단 다음, 다음을 클릭하여 적당한 이름을 주고 role을 생성하였다. 작성한 role을 선택후 「AmazonSSMFullAccess」AWS관리 Policy를 추가 inline policy를 선택하여 아래 json내용으로 적당한 이름을 지정하여 추가(이외에도 쓸일이 있다면 policy를 따로 생성한후 지정하는 것도 좋다. 이 policy가 없으면 cloudwatch logs에 로그 출력이 불가능. { "Version" : "2012-10-17" , "Statement" : [ { "Sid" : "VisualEditor0" , "Effect" : "Allow" , "Action" : [ "logs:CreateLogStream" , "logs:DescribeLogStreams" , "logs:PutLogEvents" ...