AWS管理のWordPressにログインできない問題を解決
- 【前提】AWS及びWordPressの構築状態
- 【問題】WordPressにログインできなくなった
- 【対処法】TeraTerm上からデータベースにアクセスする
- 【まとめ】パブリックとプライベートを意識しましょう
- 【参考】調べていた非常に参考になったサイト
【前提】AWS及びWordPressの構築状態
前の記事にも書きましたが、AWSでサーバをレンタルしました。
mame-mame.hatenadiary.com
サーバ上で構築したものは以下です。
VPC(仮想プライベートネットワーク)構築
VPC内ではプライベートサブネットとパブリックサブネットを定義しました。
外部からのアクセスはパブリックサブネットに限定して、プライベートサブネットはパブリックサブネットからの限られた手段のアクセスだけを受け付ける、というものです。
NATを配置して、外部からのアクセスを誰に受け渡すかハンドリングする物も備えました。
EC2、RDSを構築
EC2は汎用的コンピュータマシン、RDSはデータベース特化型のコンピュータマシンになります。
EC2をパブリックサブネット、RDSをプライベートサブネットに配置しました。
RDSからはEC2からのMYSQL形式(データパケット:3306)の通信のみを受け付けます。
EC2は外部とのやり取りをSSHやHTTP、HTTPSで通信できます。
EC2はSSHアクセス時の認証鍵を作成しました。
【問題】WordPressにログインできなくなった
さて、WordPressを作ったうえで気づいたのですが、
作ったサイトのアクセスURLはEC2のパブリックDNS名を元に作られています。
このアドレスは、EC2作成時に自動で付けられた物です。
アドレスはこちらの都合とは関係なく違う名前になったりしてしまう事があるそうです。
例えばEC2を一度メンテナンスのために停止して後、再度立ち上げなどしてもアドレスが変わります。
サイトを運用する上で、途中からアドレスが変わるのは非常に不親切ですね。
固定アドレスにするにはIPを取得する必要があります。
AWSでは固定IP=Elastic IPという物を提供しています。
Elastic IPを1つ取得して自ら構築したEC2のアドレスをこちらに上書きしました。
これで万事解決…という訳にはいきませんでした。
何故ならWordPressは昔のアドレスを参照しているからです。
おそらく正確には、WordPressに紐づくデータベースが昔のアドレスを参照しているようです。
新しいアドレスでWordPressにアクセスを試すと、初期画面が出てきます。
ユーザ名、パスワードを入力すると、認証リクエストがデータベースを経由して古いアドレス上を参照しようとします。
これはマズイ、という事になりました。
昔の古いアドレスは自動割当てだったためもう戻ってこない…
WordPressのUI上ではログインもできないから設定変更できない…
今回、この問題に対して、色々と試行錯誤する事で何とか直す事が出来ました。
個人の備忘録も兼ねて記事に残しておきます。
【対処法】TeraTerm上からデータベースにアクセスする
問題の項に書きましたが、今回の原因はデータベース情報が古い事です。
この情報を新しくしてあげましょう、データベースを書き換えます。
しかしデータベースってプライベートサブネットにあって外部からアクセスが…、いやいや、それならばパブリックサブネットにあるEC2にアクセスして、EC2からMYSQLという手段でアクセスしてあげれば良いのです。
TeraTermからEC2にアクセス
アクセスの仕方は分かりますね、ホスト名にEC2のアドレス(ElasticIPで設定した新しいアドレス)を入力します、パスワードは以前発行した鍵を使用します。
EC2からRDSにアクセス
以下のコマンドを打てば良いです。
mysql -h (RDSのエンドポイント=WordPressのホスト名) -P 3306 -u (RDSのユーザ名) -p
するとパスワードを促されます。
パスワードを打つと、MYSQL制御をする事ができます。
後はデータベースの操作
WordPressのDBがあるか確認してみます。
mysql> show databases;
すると、wordpressというDBがあるはず。
wordpressの編集に入りましょう。
mysql> use wordpress;
現在のアドレス設定を確認するには以下のコマンドを打ちます。
mysql> select * from wp_options where option_name = 'siteurl'; mysql> select * from wp_options where option_name = 'home';
siteurlとhomeは、それぞれWordPressアドレスとサイトアドレスというものです。
(WordPressサイトの管理者画面にて設定→一般から、上記の情報を確認する事も出来ます)
WordPressアドレスは、WordPressコアファイルが存在するアドレスです。
サイトアドレスは、ユーザーがブラウザに入力してWordPressブログにアクセスするためのアドレスです。
この情報を新しいアドレスに変えてあげれば良いです。
UPDATE wordpress.wp_options set option_value=’http://(新しいパブリックDNS名)’ where option_name=’siteurl’; UPDATE wordpress.wp_options set option_value=’http://(新しいパブリックDNS名)’ where option_name=’home’;」
どちらの設定にもhttp://の部分を含め、最後にスラッシュ「/」を含めないでください。
【まとめ】パブリックとプライベートを意識しましょう
自分自身で構築したのに、どうやったらDBにアクセスできるんだろう、と私は迷っていました。
唯一開けてあった穴からもぐりこむべし、です。
しかし、プライベートサブネットは安全だ、というのは完全に言い切れないな、と自分自身がアクセスできた事で分かりました。
私と同じ手順を取れば外部からのアクセスも出来てしまうという事です。
やらないよりやった方が良いのでしょうけど、少し懐疑的になりました。
【参考】調べていた非常に参考になったサイト
今週やった事、これからやる事
■数日間、放置していました。
はてなブログを放置していました。
色々と手を広げてみた結果、ブログ更新に掛けられる時間が減りました。
また、手を広げた内容については、まとまった事をノウハウ的に更新したくなったためです。
とりあえずいま抱えているモノをざっと挙げたいと思います。
お仕事
GW明けお仕事はリモートワークで復活しました。
リモートワークを実施した結果、今のところは業務への大ダメージは無さそう。
通勤時間がなくなった事もあり1日を有効に使えそうなのは良い点です。
英語
英語の勉強を4月中旬くらいから始めていました。
英語を話すには最低限単語を知らないと!と思い単語帳を毎日100~200語暗記実施してました。
使った本はこれです。
新TOEICテストにでる順英単語―これだけ覚えれば860点突破!
- 作者:河上 源一
- メディア: 単行本
この本は、一時数か月だけみすず学苑のTOEIC対策講座を受けていた時に推奨された本です。
(みすず学苑=怒涛の合格のアレです)
本書には3060語の単語が記載されています。
後半につれて聞き馴染みのない単語が増えてきます。
1~1000単語までは常識的なものが多かったため、暗記の対象から外しました。
4/12から100単語ずつはじめて、5/3までに、2000~3060語までの1060語を覚えました。
5/4以降は2周目の暗記ロードをはじめて、1日200単語ずつを流しています。
お仕事の無い間は、この暗記作業で午前時間を使っていました。
プログラミング学習
プログラミングは、Pythonを学習し始めました。
そしてPythonを色んな開発のアウトプット手段として利用すると、習得しやすいと思いました。
そこでWebアプリ化のためのフレームワークであるDjangoを使ってみています。
docs.djangoproject.com
Djangoを使うとWebアプリを作成しやすくなります。
認証システムなどWebアプリで汎用的に利用されるサービスはDjangoにデフォルトで入っているモノを利用すれば良い、という代物です。
ただし、Djangoは入り込むと奥が深そう。
Webアプリで何を作りたいか、までイメージしてDjangoに向き合ってみた方が良いなぁと思いました。
HP作成
そこで、HP作成を開始しました。
実家が自営業をしておりまして、その企業HPを作ってみようと思って昨日から始めました。
HPの作成手段はWordPressです。
何といっても高い自由度と広告外しが出来るという点で、選んでみました。
WordPressはサーバ上に開設する必要があります。
サーバにはAWS(Amazon Web Service)を使ってみました。
AWSの構築は、以前に研修を受けた事があったので容易でした。
(セキュリティ、可用性を上げるための工夫はこれから高めていきます…)
aws.amazon.com
いま現在解決できていないのは、AWSが任意につけたDNSアドレスではないアドレスの設定ですね。
いわゆる独自ドメインの取得と、取得したドメインをAWSサーバのサービスと関連づける事が、出来ていないです。
これは速やかに実施していきたい内容です。
妊娠
スコーンと話は変わりますが、昨日妻の妊娠が分かりました。
(身体の状態を見るにそうだろうとは思っていましたが、医師の診断結果も出ました)
初期はつわりやダルさでだいぶ辛そうなので、家事などは自分が受け持とうと思っています。
リモートワークでその辺りは無理なくできそうです。
あとこんな機会は中々ないので、夫として思った事や日々の記録を、PCローカル上で日記的にまとめようと思いました。
Pythonで関数、モジュール、パッケージを作成する
■はじめに
以前、C++でJPEG画像にフィルタをかける関数プログラムを作成しました。
mame-mame.hatenadiary.com
次の記事では、そのフィルタ関数をスタティックライブラリとして作成しました。
mame-mame.hatenadiary.com
では、Pythonコードではどのようにするのでしょう。
本記事では
Pythonの「関数化&モジュール化」「ライブラリ(パッケージ)化」
について紹介します。
■Pythonでの作成方法
本記事におけるサンプル
今回サンプル関数として、四則演算を使用します。
加算関数をadd
除算関数をsub
乗算関数をmul
除算関数をdiv
としました。
この関数を作成して、アプリ側では関数をコールします。
関数化&モジュールの作成方法
要点だけお伝えします。
関数化する際はdefを使います。
C/C++のように変数の型指定が無いため、返り値の型宣言はありません。
一方でC/C++のように引数の設定や帰り値の指定は行います。
指定の方法はC/C++と同様です。
では、四則演算関数を定義します。
def add(x,y): result = x + y return result def sub(x,y): result = x - y return result def mul(x,y): result = x * y return result def div(x,y): result = x / y return result SAMPLE_NUM_X = 8 SAMPLE_NUM_Y = 4
SAMPLE_NUM_X、SAMPLE_NUM_Yも宣言しておきました。
以上の記述した内容を、calc_func.pyという名前でファイル保存します。
calc_func.pyは各関数を集めたモジュールとなります。
次にアプリ側。
アプリ側はコールしたいモジュールをimportによって参照します。
import calc_func if __name__=='__main__': a1 = calc_func.add(5,3) print(a1) a2 = calc_func.sub(4,6) print(a2) a3 = calc_func.mul(calc_func.SAMPLE_NUM_X, calc_func.SAMPLE_NUM_Y) print(a3) a4 = calc_func.div(calc_func.SAMPLE_NUM_X, calc_func.SAMPLE_NUM_Y) print(a4)
以上の記述した内容を、exec1.pyという名前でファイル保存します。
ターミナルで、アプリを実行すると以下の結果が得られます。
四則演算がきちんと実行できています。
乗算・除算は、calc_func.pyモジュールの変数も参照しています。
パッケージの作成方法
パッケージはディレクトリ(フォルダ)によって定義します。
パッケージ内に、モジュールと__init__.pyを置くことによりアプリ側からはパッケージと認識されます。
calc_packageというディレクトリ名でディレクトリ作成します。
ディレクトリ内に、calc_func.pyと、__init__.pyを置きます。
__init__.pyには何も書く必要はありません。
calc_func.pyというファイルには以下を記述します。
(モジュール化の説明と同名ですが、異なる内容を記述します)
def add(x,y): result = x + y return result def sub(x,y): result = x - y return result def mul(x,y): result = x * y return result def div(x,y): result = x / y return result SAMPLE_NUM_X = 10 SAMPLE_NUM_Y = 2
次にアプリ側です。
アプリ側はコールしたいパッケージ内及びその中のモジュールをfrom ○○ import ●●によって参照します。
from calc_package import calc_func if __name__=='__main__': a1 = calc_func.add(5,3) print(a1) a2 = calc_func.sub(4,6) print(a2) a3 = calc_func.mul(calc_func.SAMPLE_NUM_X, calc_func.SAMPLE_NUM_Y) print(a3) a4 = calc_func.div(calc_func.SAMPLE_NUM_X, calc_func.SAMPLE_NUM_Y) print(a4)
以上の記述した内容を、exec2.pyという名前でファイル保存します。
※1行目以外、exec1.pyとexec2.pyは同じ内容です。
ディレクトリ構成は以下のようになります。
ターミナルで、exec2.pyアプリを実行すると以下の結果が得られます。
calc_package内に保存したcalc_func.pyを参照している事は、乗算・除算(SAMPLE_NUM_X、SAMPLE_NUM_Yを使用)の結果からも分かります。
if __name__ == "__main__":について
PythonはC/C++と異なり、main関数がありません。
その代わり本構文で、モジュールを直接実行する時に、どこから実行するかを定義しています。
直接実行するとは、本記事で示しているようにコマンドラインからPythonアプリを実行する事を指します。
一方でそれ以外の方法としてモジュールをインポートして使用する場合があります。
本構文を使用すると、モジュールをインポートして使用する場合に関数の中身はコールされません。
詳しくは、以下のサイトが参考になります。
techacademy.jp
__init__.pyについて
__init__.pyはアプリがモジュールを検索する時のマーカーとなります。
このファイルがなければ、exec2.pyは実行時エラーが発生します。
詳しくは、以下のサイトが参考になります。
qiita.com
■おわりに
本記事では、モジュール化やパッケージ化を紹介しました。
大規模プロジェクトになってくると、1ファイルではとても整理できなくなってきます。
プロジェクト構成を整理しやすくするために、本記事のようなノウハウは必須になってくるでしょう。
不安を味方とするか敵とするか
■緊急事態宣言・休業に伴う危惧
【ノーカット】緊急事態宣言を5月末まで延長 安倍総理が記者会見で説明 (2020/05/04)
この度、世界中の方々と同様に、コロナ禍に巻き込まれています。
いまだGWを過ぎた後、
また5月末が過ぎた後、
また上半期が過ぎた後、
また今年が過ぎた後、
その後がどうなっていくか予測も尽きません。
その中で個人的に危惧している自分の感情があります。
う~ん。
危機感でなく不安感に
私は事業者でなく、会社に従事する勤め人です。
会社では当事者意識や危機感を持って働く事が求められてきました。
当事者意識や危機感とは、会社の将来性をより良くするためにはどうしたら良いかを真剣に悩み考える事です。
そうした考えが、会社を意識的に変えていく行動に繋がります。
私はこの事態において、
事業者はより危機感は強まっているのではないかと思います。
しかし、勤め人は危機感より不安感が高まっていく、当事者意識が薄れていくのではないかと感じました。
「会社に行く」
「会社の人と顔を合わせて仕事をする」
「平常時に“誰かに必要とされるかもしれないもの“を作る」
といった行為が会社に対して当事者意識を育んでいたように思えてきたし、それが無い状態において会社と自分との関係がどんどんと希薄になってきました。
不安感は非常にぼんやりとしています。
「もしかしたら~~になっちゃうんじゃなかろうか」
みたいな、心配事の延長上みたいな気持ちです。
会社への意識が薄れると、会社に対して持っていた明確な危機意識が、この会社もしかしたらマズイんじゃないかなぁというぼんやりした気持ちになる訳です。
反対に、自身が今後どう世の中を生きていくか、という点に危機感や当事者意識が働き始めます。
会社に帰属してはいけない。
ぼんやりと会社がリストラなどを実施するかもしれない、と考え始める。
自分が自分の力で世の中を渡ろうとした時、何が足りないのか。
■おわりに
自分が勤め人を今後も続ける場合に、危機感が不安感へと薄まってしまう事は良くないです。
会社内での生き方を成り行きに任せていて、会社の損失=自分の損失だと考えられないようでは出世の道も開けません。
気を引き締めなおす必要があるでしょう。
一方で自分が会社の外に出たいのであれば、この気持ちをむしろ糧とできるはずです。
どちらにしても厳しい世の中になってきましたね…。
やりたい事を簡単に実現しよう-ツール紹介-
■サービス実現のツールが揃っている!
1年前くらいにTwitterで
「思った事がすぐ形になる、そんな世の中なんだよ~」
って感じのツイートを見ました。
確かにその通りだと感じます。
親戚の飲食店を手伝ってみて、拡販したいなぁと思って考えたアイデアが色々ありました。
そのアイデアをすぐに実現する手段は調べてみると世の中に提供されており、飲食業を営む人にとっては拡販の間口は広がっていると言えるでしょう。
・キャッシュレス決済にしたら、お客さん増えるかなぁ:PayPay
・みんなからの評判の声が見聞きできたら、お客さん増えるかなぁ:食べログ
・テイクアウトサービス始めたら、お客さん増えるかなぁ:Menu
・宅配サービス始めたら、お客さん増えるかなぁ:Uber Eats
なんて具合。
近頃は、やりたいと思ったら何でもできるようです。
例えば突飛な所でいくと、、
「農業やってみたいなぁ」みたいな人がいたとして、農地も農具も、やり方も分からないという場合があったとします。
そんな人には「シェア畑」というサービスがあります。
農地・農具は貸してくれるし、栽培の仕方は農園の管理者の方から教えてもらえる、旅行などしている間の栽培も請け負ってくれたりする、なんて親身なサービスでしょう。
www.sharebatake.com
■他にも色々!
同じくTwitterから見た情報。
他にも様々なツールが紹介されていました。
会社設立書類作り:Money Forward
仲間の呼びかけ:Bosyu
採用広報戦略:PR table
採用実施:Wantedly
レファラル採用:Refcom
イベント作成:Everage
プレスリリースを発表:PR times
労務管理:Smart HR
勤怠管理:ジョブカン
オンラインアシスタントを雇う:Caster
投資家に会う:Startup List
契約書レビュー:Legal Force
契約:Cloudsign
契約の更新管理:Holms
社内コミュニケーション:Slack
ミーティング:Appearin
顧客開発インタビュー:Visasq
顧客検証:Campfire
ハードウェアの顧客検証:Makuake
メディア立ち上げ:Note
リードをナーチャー:Belface
顧客ライフサイクルを管理:Ferret One
名刺管理:Sansan
EC販売:BASE
サービス販売:Coconala
サブスクリプション課金:Paymo
売掛管理:Net Protections
売却:MAクラウド
他にも、このブログで度々出てくる楽曲投稿プラットフォームである「Audiostock」も便利ですね。
audiostock.jp
■モバイル開発なら
モバイル開発も調べると色々
アプリのUIプロトタイプ作成:Prott、Marvel、POP…
アプリの簡易作成:Flutter
■メリット・デメリット
こうしたサービスを使うメリットは何といっても
「早期にお試しが出来る」
「初期コストがあまり掛からない」
「やめたければ解約すれば良い」
という物です。
やはり、スタートアップや、ちょっとやってみたいなぁという人に対しての支援ツールと言えるでしょう。
一方でデメリットは、
「各種手数料が発生する」
事に尽きるでしょう。
全てのサービスは慈善事業ではありません。
プラットフォームの利用料を何等かの手段で取られる事になります。
あまりこのようなサービスばかりを活用すると、手数料が雪だるま式で増えていき、顧客への売価が高く吊り上がってしまうでしょう。
また、無料会員と有料会員で自由度に差があるサービスもあります。
やりこんでくると有料プランを使用したくなってきたりするはずです。
おわりに
私も自粛期間中に色々触れてみて、知見を広げたいなぁと感じました。
知らない曲探し
■おすすめの名盤
誰かさんの好きなアルバムを知る事が好きです。
特に自分の好きなアルバムもその人のリストに含まれていたりするとテンションが上がりますね。
今日見たのはこのページ。
galaxypimptaste.hatenadiary.com
紹介のナンバーを色々聞いてみようと思います。
MILES DAVIS - KIND OF BLUE
■唯一無二の大名盤
Miles Davisの「The Complete Columbia Album Collection」を持っています。
BOXセットで、なんと…53枚組です。
Miles Davisのコロンビア時代のアルバムをほぼほぼ網羅したもので、有名な「Kind Of Blue」「My Funny Valentine」「Nefertiti」「Bitches Brew」「On The Corner」「You're Under Arrest」も入っています。
「Birth Of The Cool」や「Cookin'」、「TuTu」は入ってません。
というか、ジャズに疎い自分ですら、こんなにも作品名を知っているのか、と驚愕としました、多すぎるよ代表作…。
で、このBoxの1作目から順にMiles Davis作品を聞いていっていました。
今回、ようやく「Kind Of Blue」にたどり着きました。
1959年の作品、全5曲。
- アーティスト:DAVIS, MILES
- 発売日: 2009/02/06
- メディア: CD
順に聞くと、より強調される本作品の圧倒的完成度。
名盤だからという前提でなるべく聴かないようにしたつもりですが、あまりにも到達し過ぎている完璧な作品です。
再生した時の、ビルエヴァンスのピアノイントロから空気感が異なる。
そのままSo Whatの有名なリフに入ります。
前述したように、私はジャズに疎いです、加えて音楽理論に疎い。
その耳で聞くので技巧面での凄さを感じる事は難しいはずなのですが、So Whatからは、1つ1つのフレーズがこれ以外ないという配置をしているように思えてくるのです。
熱い訳でも無い、冷めてる訳でも無い、色々な方が述べているように「アートである」と表現するしかない音響空間と楽器演奏なのです。
これはもう聴くしかない、もしも音が絵のように額に飾られて美術館に置かれるなら、という想像をしてしまいます。
ジャズ畑の人に怒られそうですが、自分はジャズにある種退屈と感じる時があります。
プレイヤーが楽しいと思って演奏している物に共感できなかったり、まとまりを感じられない事があります。
ジャズはアルバムで聴くと特にそう思う事があり、曲の構成に納得がいかなかったり、カバーするスタンダード曲に必然性を全く感じなかったりする訳です。
しかし、「Kind Of Blue」、これはあっという間にアルバムが終えてしまいます。
先に述べた1曲目のSo Whatから、5曲目のFlamenco Sketchesまで。
ロックやファンクが一番好きだけどこのアルバムに匹敵したアートと呼ばれる作品は果たしてあるのか…。
中山康樹著「新マイルスを聴け」を持っています。
その中で「Kind Of Blue」についてこう述べています。
これこそ、20世紀のジャズが到達しえた最高峰なのだ。ジャズを無人島に持っていくなら、この1枚だけでいい。
これこそ、モダン・ジャズのエッセンスであり、究極の名演奏集である。
~~~
しかしジャズとは、情けない音楽である。
100年にも及ぶ歴史のなかで、これ1枚しか生み出せなかったのだ。
「カインド・オブ・ブルー」に匹敵する作品は、ジャズのどこを切っても、出てこない。
ジャズよ、何をやっていたのだ。
もしマイルスが「カインド・オブ・ブルー」を残していなかったら、どうしていたのだ。
ホントにもう、何から何まで、マイルスにおんぶに抱っこなのである。
これがなければ、ジャズの素晴らしさを世界に、後世に伝える作品は、無に等しいものになっていたのだ。
「カインド・オブ・ブルー」、このたった1枚のために、ジャズは未来永劫、胸を張って生きていけるのである。
- 作者:中山 康樹
- 発売日: 1997/05/01
- メディア: 単行本
かなり強い文章です。
著者は大衆音楽全般に詳しく、ジャズはそれこそマイルス以外も山ほど聴いたはずです。
ジャズプレイヤーで言えばこのアルバムに参加した方を除いても高名な人は多くいるのですが、それでも上記の文章を書かざるを得ないのが本作です。
もし万が一、45分程度のお手すき時間があるならば、そしてその時間を最も有意義に過ごしたいというのであれば、この作品を掛けて、その前にただ座って浸るというのも一案です。
誰かにとって無人島に持っていくモノとはそれ程価値のあるものなのです。
買いです。
- アーティスト:Davis, Miles,Jimmy Cobb,John Coltrane,Paul Chambers,Wynton Kelly,Cannonball Adderley,Bill Evans
- 発売日: 1997/03/27
- メディア: CD
ちなみに、Boxセットを順に聴く中で、「Kind Of Blue」の他に優れていると(主観的に)感じた作品は「Porgy And Bess」です、これも1959年作品、充実期ですね。