Database JUNKY

MySQL,MariaDBを中心としたブログです

python3 json.loadsでjsonを読み込み、for ループで特定の要素を抜き出すサンプル

通常でよく使いそうなので、python3でのjsonの読み込み、取得したjsonをforループ処理にて、一部の要素の参照するという、まぜまぜのサンプルを作って見ました。

サンプルでは、このあたりを中心に書いてますー

辞書型変数の参照( for xx in yy:) 、 json.loads および urllib.request 

f:id:hit10231023:20180302202040p:plain

続きを読む

python3から、MySQLのストアドプロシージャをCALLする

python3でコードを書いているうちに、MySQLに関わる部分のソースが煩雑になってしまうため、ビジネスロジックは、全て、MySQLのストアドプロシージャにまかせるってことでこんなに綺麗なソースじなります。(あくまでも個人的な主観ですが)

なお、python3でのMySQLライブラリは、MySQLdb を利用しています

f:id:hit10231023:20180302202040p:plain f:id:hit10231023:20180309104332j:plain

続きを読む

python3でapiサーバを作る!!(笑)

開発の人に見せたらすごく笑われてしまいますが、ちょっと勉強用のため、ここにメモを残しておきます。

サンプルは、python3でMySQLからSELECTした結果をjsonで返すものです。自分的にapi (笑)的なもの

  • port 5000番で待ち受けます
  • port 8080から上記をCALLします

ってな感じで汗

仮に、port:5000 を apiサーバとしてw port: 8080 をCALL側として書いた例です

うーん、、プログラムってむずい。。。

f:id:hit10231023:20180302202040p:plain

続きを読む

aws s3のファイル大量削除は、ライフサイクルルールでやりましょう!

awsバケットの削除、もしくは、フォルダの中身の削除、s3のコンソールからでも行えるのですが、この中身が大量にあると一苦労。あっさり消えてくれません。もしくは、webのセッションがタイムアウトしてしまって、作業時間の無駄になってしまいますw

ここは、もっと効率よく、ライフサイクルルールで大量削除を実施しましょう!ただし、取り扱い注意!!

f:id:hit10231023:20180309123622p:plain

続きを読む

S3のコスト削減は、ストレージクラスの一括変更で!

S3のコストを下げよう!

利用していない、S3のデータ、そのまま保存しておいても課金されているのはご存知だと思います。もちろん、まったく使わないのであれば、削除しても構わないのですが、もしかしたら、いつか使うかも?とかいうケースって結構ありますよね?

ちなみに、S3に入っているデータを、とりあえず、別の環境にバックアップしておこう!なんて考えたりもすると思うのですが、ちょっとまってください。データ転送料というトラップがありますので、そう簡単にはいきません。

じゃあ、現在の設定は維持しつつ、ストレージの管理コストを下げましょうよってことで今回、s3 ストレージクラス変更の変更をしてみたいと思います。

f:id:hit10231023:20180309123622p:plain

続きを読む

AWS EC2 インスタンスタイプの変更でハマりました。ENAってなんだ??

インスタンスタイプを変更したら、ec2が起動しなくなった(汗

もともとの、VPCのNATインスタンスとして利用しておりましたが、いつの間には、m5インスタンスなるものが出ているじゃないっすか?汗 しかも、安い!!

m4.Xlarge : 月コスト: $146.40 最大帯域: 791 Mbits/sec m5.large
月コスト: $70.28 最大 10 Gbps

コストパフォーマンスの観点から、ことネットワークの帯域が大きく、かつ、コストが下がるってことを理由に、m4.Xlarge から m5.Largeにインスタンスタイプを切り替えてみようともくろみ、さて起動しようとしたら、なんかエラーで出て起動でないって、、あわわ。。

f:id:hit10231023:20180309123622p:plain

Enhanced networking with the Elastic Network Adapter (ENA) is required for the 'm5.large' instance type. Ensure that your instance 'i-xdsdsxddddd' is enabled for ENA.

インスタンス切り替えるのはいいけど、ENA有効になっている?って怒られて起動しなくてビビりました。そもそも、ENAって何?笑

ENA

次世代ネットワークドライバってやつらしい。

EC2 インスタンス向けの次世代ネットワークインターフェイス、Elastic Network Adapter (ENA) を導入

まあ、全然読んでないのですが、ネットワークの帯域太くできるよって意味だと思うので、現行のm4.Largeはそれが対応していないってことなのかな? ってなわけで、これをENA対応する設定を試してみたいと思います

続きを読む

Let's Encryptでなんと!?ワイルドカード証明書がサポート!!

無料で使えるSSLで有名な、Let's Encryptいつの間にかワイルドカード証明書が利用できるようになったので、その手順を載せました!! 今回の手順は、対象のWEBサーバで直接certbotを利用して、インストールしたわけではなく、amazon linuxで証明書作成専用のサーバを構築してcertbotを実行した手順書になります。おそらくワイルドカード証明書を選択するくらいなので、わざわざ、それごとに、certbotは入れないだろうと思いつつw

ご参考になれば。。

f:id:hit10231023:20180316002008j:plain

Let's Encrypt ワイルドカード証明書サポート

2018年1月にワイルドカード証明書の発行を開始 - Let's Encrypt 総合ポータル

2018年03月13日に、「ACME v2 プロトコル」と「ワイルドカード証明書」が利用可能になりました。詳しくは ワイルドカード証明書ACME v2 へ対応 および ACME v2 とワイルドカード証明書の技術情報をご覧ください。

。。とのことなので早速実験!!

続きを読む

MySQL日付の範囲内でのレコード重複チェックをSQLで実現する

日付(From - To )にて、レコードが重複(かぶっている)ものを抽出するSQLのサンプルです。うーん、なんて言えばいいのか

日付期間の重複チェック と言えばいいのか、日時の範囲チェックというべきか・・・なかなか難易度が高かったので、メモを残しておきます

続きを読む

発行される全てのSQLを全てログ取得する方法

調べればすぐわかるのですが、一応メモ。 MySQLを利用した運用の中で、どんなクエリが発行されているのか見たい時ありますよね? 通常ですと、スロークエリーを見るケースが多いので、そちらを見るのかな? しかしながら、スロークエリーではないのですが、細かいクエリが連発でくるのも負荷の原因になるので、ん?どーしてこんなにサーバのロードアベレージ上昇しているの?というのは確認する時、スロークエリーログだけですと、わからないパターンがあります。

f:id:hit10231023:20180309104332j:plain

んじゃ、そーいう時、どうするか?なんですが。。

続きを読む

ファイルの最終アクセス日時の契機は何?(atime)

最終アクセス日時について調べてみた

Windows,Linux 共にファイルに対して、作成日、更新日はあるのはご存知だとは思いますが、最終アクセス日付というのがあるのは知っていますか?ってえ?知っている、知らなかったの自分だけですね。ごめんなさい。では、この最終アクセス日時っていつ更新されるかわかりますか?

  • ファイルをcpした時?
  • ファイルをmvした時?
  • ls で一覧を見た時?
  • cat もしくは、 less で見た時?
  • webから参照した場合

と色々なケースでアクセスってあると思うのですが、何か契機(トリガー)で変更されるのか私自身わかっていないので、調べてみました。

f:id:hit10231023:20180308234003p:plain

以降 centos6系で検証を進めます。windowsは、、ごめんなさい。あまり要件がないのとしくみがちょっと違うので今回検証からは除外させていただきます。

続きを読む

python3から外部shellを実行する

以下は、python3から、bashを外部実行しているメモになります

f:id:hit10231023:20180302202040p:plain

外部shellを実行する場合は、subprocess ライブラリを使うっぽい。

と、まだ、全然pythonわかっていないのですが(汗)

続きを読む

python3をshellとして実行する

python3をshellとして実行するというタイトルがあっているのかどーかわからないけど。私、プログラムよくわかってないので許してください。

f:id:hit10231023:20180302202040p:plain

bash だと

#!/bin/bash

ですが、

python3 だと

#!/usr/bin/env python3
# -*- coding: utf-8 -*-

って書けばいいのかな?

あ、

# -*- coding: utf-8 -*-

に関しては、ファイルの入出力を全て、utf-8で扱うよって意味だと思ってますw

mysql5.7 のmy.cnfが読み込まれていない件について

mysql初期インストール後、my.cnfに設定しているはずの項目が反映されてない・・・。 いろいろと苦戦したあげく、わかったのが、selinuxが有効になっていたこと。。

盲点でした。。。

f:id:hit10231023:20180309104332j:plain

続きを読む

sshを無認証で接続する方法(公開鍵の設定)

実際警告は出した方がいいのですが、リモートの接続でいろいろ面倒なので、特定のクライアントは認証なしで接続するという 方法をメモします。私がめんどくさがりやなだけど、ちょっとセキュリティ上どーのこーのって話は無視します笑

f:id:hit10231023:20180308234003p:plain

続きを読む