GIJIN.NET

ITと音楽の狭間

Tech

ちょっとハマった話

投稿日:2014年9月9日 更新日:

昨日、AWSで作ってみたこのBlogなんだけど、ちょっとハマった事があったのでメモで書いておく。

大きくは二つ。

(1)鍵認証のための鍵をSCPでアップロード出来ない問題
(2)Global IPの変更によりWordPressにログイン出来ない問題

この二つのうち、(2)はちゃんと回避出来たけど、(1)は根本的には解決してないので、もうちょっとあとで調べる感じ。
それではそれぞれ見ていく。

(1)鍵認証のための鍵をSCPでアップロード出来ない問題

例のAWS本の通り、このBlogシステムを構築していくと、VPC上に2つのサブネットを作成する事になる。
1. パブリックサブネット
2. プライベートサブネット

1. は所謂DMZ。
ここにWebサーバを置く。
WebサーバはApacheね。

2. はDBサーバ置いてある。
ここは外には解放せず、クローズドな空間。
インターネットの側からこのクローズドの空間に対してはアクセスが出来ません。
ファイアウォール(AWSの場合はSecurity Group)で守られてますしね。
内側からインターネット側へのアクセスも出来ない設定になっています。
(ただ今回、NATインスタンスを使う事でアクセス出来るようにしますが、必要の無い時はNATインスタンスを落としているので基本的にはクローズドのまま)

ただ、1. から2. に対しての通信(ssh)は通すようにしたいので、そこはSecurity Groupで調整。

さてこの時。
2. に置いてあるDBサーバへのログインは、1. にあるWebサーバからsshログインを行う事になる。
つまり「踏み台サーバ」ってやつですね。

なので、次の手順でログインが必要。
a) 手元のクライアントマシン(実機)から、1.にあるWebサーバへsshでログイン
b) Webサーバからsshで2.にあるDBサーバへログイン

この時、a) では証明書が必要なわけで、それ自体はインスタンス作成した時に作成した鍵をダウンロードしてあると思うのでいいんですよ。
で、b) の手順で実施するときも、少なくともこの本に書かれている内容でいけば、同じ鍵を使ってDBサーバへログインする事になるわけです。

でもWebサーバには鍵が無いっすよね。
なので、Webサーバに対して鍵をアップロードする必要があるわけです。

・・・長い前置きすみません。

で、このアップロードの手順について、この本は scp コマンドで実施するように書かれています。
この scp コマンドで、まぁよくある「Permission Denied」で引っかかった、という話です。
(長かった・・・)

権限周りの話なので、Webサーバの、これからアップロードするフォルダの権限を変更する(chmod)だけなんですけれどね。
ググってみたら「とりあえずわかんないからみんなアクセス出来るように chmod -R 777……」みたいなのがあって、ヲイ!とかw

私はもう面倒なんで、mac用のCyberDuckというアプリ使ってアップロードしちゃったんですけどね。
学習のためには多分もう一回環境作ってもうちょっと踏み込めばいいのですけどね(権限周りいろいろ変えるとか)。

まぁハマったポイントとは言わないですが、多分この手の本はあまり考えずに写経のようにやられる方が多いような気もしてるので、ここはまず一つ初級な方は引っかかるポイントかもなー、と思っています。

(2)Global IPの変更によりWordPressにログイン出来ない問題

これは逆にAWS本関係ないんですけどねw
練習のために作ってたWordPress環境ですけど、なんかBlogとかこのままこれ使った方が面白いかも、と思い立ってみました。
そうなると、一度構築してしまったWordPress環境を見るための、GlobalなIPアドレスを変更する必要が出てきます。

AWSはインスタンス起動時に、AWSが管理するIPアドレスを採番してくれるのですが、選択出来ない上、このままだとインスタンス落として再起動するたびに、違うGlobal IPが振られてしまうのです。
せっかくBlogエンジン作ったんだし、このまま運用しようかな、と画策した私は、Elastic IPという機能を使ってAWSから固定IPを一つ借り受けました。

Elastic IPの説明をちょっとだけしますね。
AWSが管理している多数のIPアドレスのうち一つを「予約」するようなものです。
これでGlobalなIPアドレスが利用者に借り出されるわけです。
ちょっと注意が必要なのは「起動しているインスタンスに対して割付してる分には料金は発生しないが、対応してるインスタンスが停止しているとか、Elastic IPアドレスが割り振られていない状態の場合は費用が発生する」ということです。

一応無償期間ってのがあるAWSですが、いろいろやろうとするとお金は結構へんなところでチマチマとられるので要注意。

今回はもうある程度の出費は覚悟していたので、次の事を考えていました。
・Elastic IPを取得して、それをWebサーバに割り付ける
・借り出されたElastic IPと紐付ける、独自ドメイン(このサイトでいうところの「gijin.net」ですね)を取得する
・独自ドメインとElastic IPを紐付けて、DNSに登録

独自ドメインは「お名前.com」というところから。
とりあえず1年間ということで。
すでに「gijin.com」は取られていて(もう15年くらい前から取られてるんですよこれ)、まぁ残念ながら取得出来ませんでした的な。

ということで、以前からちょっと狙っていた「gijin.net」に狙いを定めて、取得w
年間840円とかそんな感じ。
せっかく取得したし、大事に使っていきたいですね。

あ、話がずれた。

それで、DNSにも登録して、という作業をやってから・・・アレ?と。
WordPressにブラウザから接続出来ないんですよ。

あー、そうか、GlobalなIPアドレスも変わったし、そりゃそうだよなー、と。

念の為にWebサーバの再起動を行って、再びsshでログイン。
ちゃんとElastic IPでログイン出来るね、うんうん(まだこの時は独自ドメイン取得の途中だった)。

でもやっぱりブラウザからは繋がらない。
これで困ったなぁ、と。

ちょっと調べてみると、あぁ、WordPressって自分自身のサイトアドレスをDBに持ってるんだな、という事がわかりました。
変更するにはmysqlにログインして、SQL発行してあげないといけない。

wp_options というテーブルで、Option_name列が siteurl と home の2箇所にURLが書いてあるので、そこを変更します。

作業としては次の手順で行いました。
a) DBサーバへsshでログイン
b) mysqlを起動
c) WordPressで使用しているDBを選択
d) select文で siteurl や home の現在の値を確認
e) update文で siteurl と home の値を更新

a)はまぁ割愛。

以下はDBサーバで実施の事。
(踏み台サーバ使っちゃうとついついWebサーバでやっちゃって、あれ、あがんねーなー、って混乱する事あるので要注意ね)

b) mysqlを起動

sudo mysql -u root -p

このあとパスワード聞かれるので、パスワード入力。

c) WordPressで使用しているDBを選択

use wordpress

AWS本の通りにやれば、DB名は wordpress になってるはずなので、これで。

d) select文で siteurl や home の現在の値を更新

select * from wp_options where option_name = 'site url';

この最後の「;」を忘れるんだよねーw

このコマンドの結果、以下のように表示されるはず。

+———–+————-+——————-+———-+
| option_id | option_name | option_value | autoload |
+———–+————-+——————-+———-+
| 1 | siteurl | http://xxxxxxxxx/ | yes |
+———–+————-+——————-+———-+

このxxxxxxxxxxとかいうのが、今登録されてるサイトのアドレス。
homeについても同じように確認しとく。

select * from wp_options where option_name = 'home';

+———–+————-+——————-+———-+
| option_id | option_name | option_value | autoload |
+———–+————-+——————-+———-+
| 2 | home | http://xxxxxxxxx/ | yes |
+———–+————-+——————-+———-+

e) update文で siteurl と home の値を更新

で、実際にupdateしましょう、と。

update wp_options set option_value = '現在のドメイン・IPアドレス' where option_name = 'site url';

私の場合はここが gijin.net になります。
もちろん home の方も同じようにupdate。

update wp_options set option_value = '現在のドメイン・IPアドレス' where option_name = 'home';

一応 d) でやったselect文で確認。

+———–+————-+——————-+———-+
| option_id | option_name | option_value | autoload |
+———–+————-+——————-+———-+
| 1 | siteurl | http://gijin.net/ | yes |
+———–+————-+——————-+———-+

+———–+————-+——————-+———-+
| option_id | option_name | option_value | autoload |
+———–+————-+——————-+———-+
| 2 | home | http://gijin.net/ | yes |
+———–+————-+——————-+———-+

これで見られるようになります。

ちなみに。
このドメインの部分にIPアドレスを指定したら、どうも動きが怪しくなりました。
http://とかの記述を入れればいいのかもしれません。
困った人がいるかもしれないので、一応。

-Tech
-,

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

サイト不具合続報・・・DoS攻撃受けてたっぽいです(苦笑)

えーと、昨日の記事の続きというか・・・実は今朝また停止したんですよ、このサイト。で、ちゃんと調べてみたら特定のIPアドレスから大量のアクセスが・・・あ、これってもしかして・・・DoS攻撃? 関連

Apacheのチューニング

gijin.netをはじめてから一週間。 最初は遊びで作っていたのですが、なんのかんのでメインBlogになりつつあります。AWSの勉強がてら、という事もあって、あまりWebサーバとかそっちには力を入れ …

no image

作ってみた!

夏休みの宿題にするつもりで積ん読リストに入っちゃってた「Amazon Web Service c基礎からのネットワーク&サーバー構築」に手を出してみた。 関連

no image

独自ドメインとかとってみたw

なんかせっかく作ったんだし、ということで、お名前.comで独自ドメインとか取っちゃいましたw ということで、今後は http://gijin.net というアドレスでやってまいりますwww 以前のBl …

Apacheチューニング、の訂正というか

いやー、昨日の記事、いろいろツッコミを受けましたw 関連

2017/12/14

えびそば一幻って初めてだったけど美味いね

今日は客先直行。 関連

2017/12/13

美味い蕎麦を堪能する

昨日の出張の疲れがなんか微妙に抜けてないような、そんな感じの今日。 オフィスで仕事しつつ、胃腸の調子もあまりよくないというか、全体的にだるい感じだったので、今日は昼に美味い蕎麦を食べたい気分に。 関連

2017/12/12

いつも持ち歩いてるものをまとめてみた

出張ということもあったんですが、考えてみたら出張だろうが帰省だろうが、持ち歩いてるものは大きく変わらないんで、まぁ軽く(備忘録として)まとめておく感じ。2017年12月現在の状況。そのうちまた変わるか …

2017/12/12

飛行機で日帰り出張(ラーメン付き)

今日は日帰り出張。疲れた・・・。 関連

2017/12/11

SNSをまた少しずつ活発に

最近Blogとかのほかに、TwitterとかFacebookとかInstergramとかの活動もちょこちょこ増やしつつある今日このごろ、いかがお過ごしでしょうか。 関連

管理人:ぎじん

岩手県出身のアマボエ(アマチュアオーボエ)奏者 ときどき 棒振りになったりする40代♂
震災後に転職、単身東京へ(妻子は盛岡に残してたり)。IT業界の混沌とした流れに身を任せつつ、仕事と趣味の狭間にあるものを書き留めていくとかそんな感じ。
2014年9月
« 8月   10月 »
 123456
78910111213
14151617181920
21222324252627
282930