라벨이 aws인 게시물 표시

간만의 휴식에 한일들

 3월 1일부터 새로운 회사에 입사하게 되어서 2월은 약 한달 정도 쉬게 되었다. 쉬기 전 까지는 이것도 하고 저것도 하고 계획도 많았지만 막상 쉬게 되면 이런 저런 제약 때문에 생각대로 되지 않는다. 특히 꼬맹이 학교에서 돌아오는 시간이 있으니 그에 맞춰 집에 있으려면 할 수 있는 것도 그렇게 많지 않은 것 같다. 그나마 한 것 들이라고는 영화본 것 밖에 없는 듯. 슬램덩크, 아바타2, 앤트맨&와스프 퀀텀 매니아. 요렇게 3개의 영화를 보고 왔다. 슬램덩크 추억의 만화책을 애니화 한 만화 영화. 뭐 나쁘지 않은 영화 였다. 전체적으로는 약간 루즈한 느낌이 들지만 마지막 클라이막스 부분에서는 음악과 함께 좋은 연출을 본 듯 한 느낌이다. 두번 본 사람도 있다고 하는데 그 정도 까지는 아닌 듯. 아바타2 볼까 말까 고민한 영화. 이미 뒷편 들까지 어느정도 촬영이 끝났다는 이야기를 듣고 보기로 결정. 처음으로 4dx 영화관에서 보았는데 의자의 흔들림 등 그 외 효과들이 그렇게 효과가 있다고는 생각을 못하겠다. 가~끔씩 타이밍이 딱 맞을 때도 있지만 오히려 신경이 쓰여서 영화에 집중 못하는 경우도 꽤 있었던 듯 하다.  화면에 집중하고 싶어서 더빙판으로 관람 했는데 더빙 판은 4dx밖에 없드라.. 내용도 괜찮고 그래픽도 괜찮고 눈도 즐거웠다. 다음 편이 나오면 또 보러 가고 싶다. 앤트맨&와스프 퀀텀 매니아 인터넷의 평가는 좋은편이 아닌 듯 하다. 이것도 4dx로 관람 하고 왔는데 나쁘지는 않은 듯 하다. 딱 거기까지. 양자 세계에 또하나의 우주가 존재한다는 가설은 이전부터 있었던 이야기. 결국 우리가 살고 있는 지구도 누군가의 양자 세계 일 수도 있다는 것.  하지만 양자 세계의 묘사가 뭐랄까 스타워즈 짝퉁이라는 느낌이 강하게 든다. 스타워즈를 본 적 없는 사람에게는 신선한 충격으로 다가 올지도 모르겠다. 영화를 볼때는 개연성같은걸 신경 쓰면 지는 거다. 그냥 무지성으로 생각하지 말고 시간 때우기로만 본다면 나쁘진 않은 듯 하지만 하나씩 따지기 시작

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에서 파악을 하고 있을 터인데, 아마도 구조상 어떻게 할 수 없는 문제가 있다보다 하고 예상 해 본다.   이건 진짜 의외인데 ? 이 문제는   amazon . com 과 amazon.co.jp의 계정에 대

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명령어 실행을 위해 지정 EnableRemoteC

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"