信頼はずっと、挑戦はもっと。

お問い合わせ
TEL:03-3496-3888

BLOG コアテックの社員ブログ (毎週月曜~金曜更新中)

LIST OF ARTICLES

記事一覧

  • テクログ

    【AWS】ELBのログをS3に保存して、Athenaで検索しよう!

    こんにちは皆さんAWS使ってますか?LB、使ってます??AWSのLBもいくつか種類がありますねhttps://docs.aws.amazon.com/elasticloadbalancing/index.html弊社も大変お世話になっていますそんなこんなでLBのアクセスログをS3に保存するととてもいいことがあります。https://tech.basicinc.jp/articles/46詳しいやり方はこちらのサイト様を参考にして頂いて・・・S3に保存するとAthenaでSQLを使って検索が出来るようになるので非常に便利です。よく使うクエリはこんな感じです。○該当IPがアクセスしているURLを検索するselect  request_ip, url from  ELBログの保存先 where  elb_name = ‘たくさんあると絞ってあげたほうがわかりやすいです’   AND  (regexp_like(request_ip, ‘111.111.111.111’)) limit 1000; こんな感じで○該当URLにアクセスしているIPを割り出す○該当URLにアクセスしているIPのカウント数○該当日時にアクセスしてきたIPやURLを割り出すなどが検索可能です。更に応用としてはUAでGoogleBotがクローリングしているURLを割り出したり(もちろんUAは偽装できてしまうので正確とは言えないですが・・・参考までに)日毎のGoogleBotの件数を見てみたり(↓)SELECT substr(request_timestamp,      1,     10) AS ymd,      count(*) AS cnt FROM ELBログの保存先 WHERE elb_name = ‘たくさんあると絞ってあげたほうがわかりやすいです’     AND user_agent LIKE '%Googlebot%' GROUP BY substr(request_timestamp, 1,10) ORDER BY ymd; あとはprocessing_time(何種類かあります)でorder by descすれば処理が重いページもわかったりします。便利ですね!!皆さんもELBのログをS3に保存して素晴らしいAthenaライフをお送りください!!
  • テクログ

    AWS CLI等でEC2に紐づいているパブリックIPアドレスがEIPか否かを見分ける

    नमस्ते! आप कैसे(कैसी) हैं?ナマステー!こんにちは。インフラ担当のまつやです。前日までに新たに起動したEC2があり、それが監視が必要なものであるならば自動でZabbixに登録するスクリプトを毎日動かしています。aws cli等でインスタンスの情報を取得して以下の情報を抜き出します。Reservations[].Instances[].NetworkInterfaces[].Association[].PublicIp これでパブリックIPの付与されたインスタンスをピックアップし、別条件でZabbixのホストに登録するか否かを判定し、Zabbixに登録がなければ登録しています。しかし最近、自動でZabbixにホスト登録されたはずのEC2が見つからないという事象が発生しました。上記で抜き出したパブリックIPが見つからない・・・どのEC2にも紐づいていないし、EIPを検索しても見つかりません。色々調べた結果、どうやらAuto ScalingグループのEC2インスタンスがスケールアウトしてローンチする際、予約しておいたEIPに紐づけされる前に、動的に割り当てられるパブリックIPアドレスを検知してZabbixのホストとして登録してしまっていることが分かりました。その後予約してあったEIPが紐づけられたために、一時的に割り当てられていたパブリックIPは解放されたのでどこを探しても見つからないわけです。ということは、動的に割り当てられるパブリックIPと、EIPを区別することができればZabbixに登録するか否かを判定することができそうです。aws ec2 describe-instancesでインスタンスリストを取得して探していると、それらしいものがありました。Reservations[].Instances[].NetworkInterfaces[].Association[].IpOwnerId {   "Reservations": [     {       "Groups": [],       "Instances": [         {    中略               "NetworkInterfaces": [                          {                                 "Association": {                                        "IpOwnerId": "XXXXXXXXXXXX",                                        "PublicDnsName": "ec2-XXX-XXX-XX-XXXX.ap-northeast-1.compute.amazonaws.com",                                        "PublicIp": "XXX.XXX.XXX.XXX"                                 }, IPの所有者のIDですね。この値がAWSアカウントのIDになっていればEIP,amazonになっていれば動的に割り当てられるパブリックIPということになります。これによって、IpOwnerIdがamazonである場合はZabbixホストに登録しないという処理をスクリプトに入れることができました。それではまた!फिर मिलेंगे!
  • テクログ

    Cloudwatch eventsでcronを使って 日か、曜日を指定するとき

    ひなっちです。Cloudwatch eventsでcronなんですが、地味に忘れて、ハマるんです。なぜか?普段、Linuxのcronタブに書いてる書き方とすこしちがうからです。Parameter ScheduleExpression is not valid. ↑これcron的には書き方正しいはずなのになーと今回、自分が少しはまったのが毎週金曜日、10時(JST)で処理を動かす場合でした。これを、そのまま素直にcronで書くと0 1 * * FRI * こうです。が、正解は0 1 ? * FRI * こうです。これ、ちゃんとマニュアルにも書いてあるんです。cron 式の日フィールドと曜日フィールドを同時に指定することはできません。一方のフィールドに値 (または *) を指定する場合、もう一方のフィールドで ? (疑問符) を使用する必要があります。https://docs.aws.amazon.com/ja_jp/AmazonCloudWatch/latest/events/ScheduledEvents.html#CronExpressionsほんと地味ーーーにはまるし、普段cronタブに慣れ親しんでいるとマニュアル読むほどのものじゃない気もして、辿りつくまでに時間がかかりました。。。。では!
  • 画像:ブログサムネイル

    テクログ

    awscliのユーザーを、該当ディレクトリに移動しただけで自動で切り替えたい!

    ●イントロダクションいろいろなものの合間にサーバレス付近の検証を延々やってる昨今ですが、皆様におかれましてはいかがお過ごしでしょうか。サーバレス付近もうちょっとやったら組み合わせてのマイクロサービスとかにすすみたいんだよね〜。Goでペチペチとやってますよ。実行速い。さて、年末ですので、awscliが活躍する時期ですね。そう、隙間のホコリを掃除したりするのに役立ちますね。●やりたいことホコリを掃除するついでにcloud9でServerlessFrameworkを使ってLambdaのデプロイをしてたんですけど、デプロイするステージが正しいかどうかをユーザーを切り替えることによって実現したいなって気分になりました。デフォではdevだけの権限があるので、prodにやると「できないよ?」って言われる、みたいな。ガチガチに縛るとかじゃなくてうっかりを防ぐ安全装置的なやつですね。でも毎回prodの権限があるユーザに切り替えるとかしたくないですね。めんどくさいからね。●profileを切り替えればユーザーも変更できるけど……awscliについて、profileを指定すれば別ユーザーになれるのはご存知ですね。awscliの設定切り替えでもそんなprofile変更を手で毎回やりたくない。makeとかでdev prodを分けるにしたってそれを間違えるからそこではやりたくない。自動でやって…ほしい!!!!●くみあわせ技だよまず、環境変数でクレデンシャルファイルのパスが変えられるんです。ということはユーザーも変えられる。AWS CLIでクレデンシャルファイルパスを環境変数から設定できるようになりましたあとはどこかのディレクトリに移動したとき、自動で環境変数さえ変えられれば!あっ!ディレクトリごとに環境変数を定義 - direnv●おわかりいただけただろうかそういうことでございます。インフルエンザが流行る時期ですが、お気をつけを。よい年を迎えられますよう祈念しております。 画像は記事とは関係ありませんがイメージです
  • テクログ

    EC2の自動リカバリを設定できない。。だと?

    # どんな状況で起こったかアカウント間を移行して、移行先でAMIからEC2を起動させようとしたら、自動リカバリー(CloudWatchでステータスチェックアラートをトリガーにして、インスタンスを自動復旧させる機能のこと)がグレーアウトして、選択すらできない。。。# 自動リカバリ機能の条件ってなんだっけ?https://dev.classmethod.jp/cloud/aws/ec2-autorecovery-by-cloudwatch-alarm/#toc-ec2自動リカバリの条件こちらのページを参考にさせていただきました。# 原因インスタンスストアボリュームが付いていたからでした。#まとめ原因書いてしまうとなんだ、そんなことか。とは思ったのですが、移行元のEC2インスタンスには、インスタンスストアボリューム(Ephemeral Disk)は付いてなかったんです。だから、AMIを取得して、移行したらそのまま、付かないまま移行できると思ったら、、、、自動で付けてくれるんです。しかも、一旦作成したら、後から外せません、、、本番環境を他のアカウントに移行して、運用するときはメンテナンス時間を確保したりと、作業の手間の割には調整に時間が取られるので、自動リカバリ付けたい方は、ディスク設定でインスタンスストアボリュームにはご注意を。(ただ、本番システムの移行作業って神経使うし、移行テストのときも画面とか、ログとか見て異常ないよねっていう確認なので、気づきづらい部分ではあります)qiitaでも投稿してるよ!https://qiita.com/s-yana/items/947f53f0fdaef4833b1d
  • テクログ

    Amazon CloudWatch Synthetics(プレビュー)で超簡単サイト監視!?

    マスオです。AWSの進化はどこまでいくのか?某国のビッグプロジェクト受注は逃しましたが...一昨日の公式ブログで気になるサービスのプレビュー公開が書かれていました。Introducing Amazon CloudWatch Synthetics - Now in Previewいわゆる外形監視する場合、お手製の監視ツールだったり既製のツールやサービスを使うことが多いと思います。(ZabbixとかMackerelとかNew Relicとか)あるいは会社によっては外部委託していてアラート条件に合致したら有人でエスカレーションや再起動対応!みたいなのもあったり。単純に死活だけ見たい場合もあれば、レスポンス時間やHTML内容をチェックしたりなど24時間サイトを細かく監視したかったりアクションを色々やれたりできると嬉しいやつですよね。ブログを見る限りでは初期設定は簡単でカスタマイズ性も高そうです。費用面では1回のアクセスで最低0.0012ドルかかるようなので、1分に1回だと6000円くらいかかる?高いか安いか・・・。まだ東京リージョン非対応でプレビューリリースとなっており、・US East (N. Virginia)・US East (Ohio)・EU (Ireland)だけ対応かつ申込みをするところからになります。皆さんも良かったら是非お試し下さい!それではまた!