ニクニクドットミー

カッコいいおっさんを目指すエンジニアの厳かなブログ

【AWS】ElastiCache Redisのパラメータグループの変更で再起動が掛かるのか不安だったので、検証してみた。

Redis ElastiCache Redisを使用していて、AOFを後から追加したい!ってなった場合、パラメータグループを操作する必要があります。 この時に、Redisに再起動が掛かるのか不安になりましたので、検証しました。

もし仮に再起動が掛かると、AOFファイルからデータ復旧しようとするので、いま格納されているデータが消えてしまいます。 なので、検証方法を以下の手順で試してみます。

  1. AOF無しのElasitCacheRedisを作成
  2. 幾つかデータを格納する
  3. AOF有りのパラメータグループを作成
  4. AOF有りのパラメータグループを設定
  5. データが入っているか確認

結論

先に結論から行くと再起動しません。よかったね。 バックアップウィンドを追加しても再起動しませんでした。 EC2上にRedisを構築したときは、AOFを途中から有りにする場合は、手順を間違うとAOFからデータ吸いだしてしまい、 データが消えてしまいます。 この辺りはAWSが良しなにしてくれているみたいです。

AOF無しのElasitCacheRedisを作成

m1.smallでRedis 2.8で構築。 パラメータグループはdefault.redis2.8を設定。

幾つかデータを格納する

まずEC2にRedisをインストールする。 こちらの記事を参考にしてサクっと入れました。あざす! AWS EC2にredisをインストールする

データを格納 $ redis-cli -h .apne1.cache.amazonaws.com .apne1.cache.amazonaws.com:6379> set mykey myvalue OK .apne1.cache.amazonaws.com:6379> get mykey "myvalue" .apne1.cache.amazonaws.com:6379> set myhoge myhoge OK ***********.apne1.cache.amazonaws.com:6379> get myhoge "myhoge" ※当たり前ですがこの状態でリブートかけると、↑で入れたデータはきれいさっぱり消えました。

AOF有りのパラメータグループを作成

Create Cache Parameter Groupから新しいグループを作成。 appendonlyの項目をyesに変更。これでおkです。

AOF有りのパラメータグループを設定

さきほど作成したパラメータグループをmodifyして、設定。 この時にstatusがmodifyになり、チェックボックスがグルグルになります。

データが入っているか確認

$ redis-cli -h .apne1.cache.amazonaws.com .apne1.cache.amazonaws.com:6379> get mykey "myvalue" ***********.apne1.cache.amazonaws.com:6379> get myhoge "myhoge" おk!ちゃんとデータが入ってますね。 この状態で再起動しても、ちゃんとデータは残っていますので、安心。 ちなみにCache EventにはUpdated to use a CacheParameterGroup 【パラメータグループ名】となっていました。

こう思った

途中でパラメータグループを変更することが無かったので、気になって検証しました。 これで再起動して、AOFから復旧されたらたまったもんじゃないので^^; 最近では、Multi-AZ対応も入ったようなので、ますます便利になってきました。以前はスレーブも無かったので、EC2にRedisを入れて、それをスレーブとしてました。ちょっと懐かしいです。

土佐弁「いっちきちもんちきち」をGoogle翻訳すると腹抱えて笑った

Google translate 昨日上司の知り合いの方のSkypeアカウントが乗っ取られ、流行りのiTunesカードを買ってほしい詐欺がありました。

そこで、関西弁をつかってやりとりをしていたのですが、土佐弁も使ってみようという話になり、「いっちきちもんちきちしてもらってかまん?」と返事してみました。

おそらく乗っ取った人は翻訳して自分の国の言葉にしていると思うのですが、「いっちきちもんちきちしてもらってかまん?」を翻訳するとどうなるんだろという話になり、一度英語にしてみました。

まずは英語

英語 Match Kichi Kichi family origin and ask them Kaman?

Match Kichi Kichi familyってなんでしょう。どこかの愉快な家族を想像します。

で、この英語にした文を日本語に戻してみます。

英語->日本語

Google翻訳 かまんがカタカナになりました。あと吉きちファミリーは試合があるみたいです。

他の言語にも試してみました。

韓国語->日本語

韓国語 吉きちファミリーが増えそうですね。

中国語->日本語

中国語 吉きちファミリーの家族背景を尋ねるみたいです。家でも買うのでしょうか。

ロシア語->日本語

ロシア語 どうしても吉きち親子に尋ねたいみたいです。

フランス語->日本語

ロシア語オリジン弁当が食べたくなってきました。

昨日はほんとに腹を抱えて笑いました。どうしたら吉きちファミリーになるのでしょうか笑 ちなみに土佐弁の意味としては、「行ってきて戻ってきてもらっていいですか?」という意味です。 この返信をした後、乗っ取った人から返事はありませんでした。もし同じことがあったら「いっちきちもんちきしてもらってかまん?」と聞いてみましょう。

僕がミーティング時に気をつけていること

Watching tv on phone僕は無駄なミーティングが嫌いです。

無駄なミーティングの特徴をちょっと考えてみました。

  1. ゴールがない
  2. 次にどうするか?アクションが無い
  3. 予定した時間を超えることが事前にわかるにも関わらず、短い時間で設定されている
  4. なにについてのミーティングか事前に説明が無い
  5. ホワイトボードになにも書かない
  6. 話が脱線して、元に戻らない

このようなミーティングは時間が無駄だと思いますし、出来る限り減らした方がいいです。 あとこういうミーティングにも関わらず毎回のようにセッティングしてしまう人はミーティングがやりたいだけだと思います。

自分なりにですが、こういったミーティングをしない・ならないように気をつけていることを書いてみたいと思います。

◆ゴールを決める・決めておく

ゴールがないままミーティングを行っても、誰かが「そろそろ。。。」と言うまでは永遠と続いてしまいます。 ミーティング参加者にメールなりで連絡するときに「どんなミーティング」「なにをしたら終わりか」を記載しておいた方がいいです。 なにかアサインを決めるミーティングであれば、「すべてのアサインが決まる」がミーティングのゴールだと思います。 もし決まらなければ、次の項目である「だれが」「なにを」「いつまでに」を決めるを決めるべきです。 でないと、決まってないアサインに関して中に浮いてしまいますし、あれってどうなったんだっけ?となります。 自分が決めたゴールがあやしい場合もあると思いますので、その時はミーティング開始時に参加者に相談した方がいいです。 参加者もダラダラとミーティングをしたい訳ではないはずなので、協力してくれると思いますし、全員のゴールの認識が揃うと思います。 DSC4064

◆「だれが」「なにを」「いつまでに」を決める

ミーティングで一番大事なポイントだと思っています。ミーティングしていて、新たに作業が発生した時、「あ。これやる必要がありますね。」となり、次にそれを「だれが」「なにを」「いつまでに」を決めずに終わると、中に浮きます。で、肝心な時に思い出して、「だれがやるんでしたっけ?」となります。 追加の作業が発覚した時は、ホワイトボードに書くなどしておき、ミーティング中に担当者を決めてしまいましょう。 僕個人としては、そういう「誰やる?」はチャンスの一つかと思っていて、こういうぱっと出る作業は誰も率先しないものなので、「僕やりますよ」というと積極的に仕事していると評価されると思います。 ただ、やりすぎると自分のタスクがオーバーしてしまうので、注意です。

DSC6293

◆ファシリテートする

ミーティングではよく喋る人が場を仕切ってしまいます。そういう人はよく話が脱線してしまうので、注意が必要です。1hのミーティングが終わってみると2h経っているとかは、だいたいこういう人が脱線させるのが原因だと思います。 話が脱線してるなと思った時は思い切って「いまなんの話をしていますか?」と確認しましょう。喋っている人も脱線させようと思って脱線しているわけではないので、確認すると話を切ってくれたりします。そこで改めて、本題の話に戻しましょう。 ミーティング中にはあまり喋らないまま意見を言わない人もいると思います。意外とそういう人は的を得る意見を持っていたりするので、話を振ってみます。せっかく参加しているので、意見を聞いてみましょう。 ミーティングが途中で止まってしまった場合、見当違いでもいいので、自分の意見を言ってみるのもいいです。その見当違いな意見がきっかけで話が広がるときもあります。 Computer tower and a smiling face

◆時間を守る

ミーティング開始時間に遅れるのはダメです。これは当たり前ですね。 ミーティング時間も同じくきっちり守りましょう。もし伸びそうな場合は、一度切り上げ、続きを別日で設けましょう。参加している人の次の予定も考慮しましょう。 ミーティング内容にもよりますが、時間が掛かりそうなものはしっかり時間を取りましょう。短い時間設定で、時間の掛かる内容だと、なぜこの短い時間なの?と疑問に思われてしまいますし、延長が必須になります。 Clock fleur de lis

ファシリテートについてですが、僕は一旦ミーティング中は周りを見るようにしています。誰がよく喋って誰がよく喋らないのか。あと今どういう話をしているのか、ズレていないのかを常に意識しています。 ズレ始めたなと思ったら「いまなんの話ししてますか?」と問いかけるようにしてます。

他にもいい方法などあったら教えてください!

Vagrantにロリポップで運用しているWordPressを構築した話

Vagrant このブログはロリポップで運用しているのですが、いままでバックアップを意識したことがありませんでした。

そこで、VagrantWordPress入れて、本番と同じブログをローカルに構築してみようと思い立ったので、やってみたという話です。 特にバックアップがどうのこうのという話ではありません。

やったこと

ローカルにVagrant建てて、WordPressをインストール。 ロリポップで運用しているブログの画像、ブログ記事を落としてきて、Vagrantへアップ。 ローカル環境のVagrantに本番同様のブログを構築。

でてこない話

  1. Vagrantのインストール
  2. WordPressのインストール

前提として、Vagrant上にWordPressが動作していることとします。

流れ

  1. phpMyAdminからdumpファイルをダウンロード
  2. ロリポップにアップした画像をダウンロード
  3. Vagrant上のMySQLにdumpファイルをインポート
  4. Vagrantに画像をアップロード(アップロードというか設置)
  5. 本番で使っているテーマをVagrant上のWordpressにインストール

ざっくりとこんな感じ。

では1から進めていきます。

phpMyAdminからdumpファイルをダウンロード

ロリポップphpMyAdminへログイン。 エクスポート->データベースの項目でinformation_schemaを外す->エクスポート方法 詳細を選択し実行。 これでMySQLdumpが取れます。

ロリポップにアップした画像をダウンロード

FTPツールなどを使って、画像をダウンロードします。 自分はツールCyberduckを使いました。 画像はwp-content/uploadsに入っていますので、ゴソっと落としましょう。

ここまでで、本番からダウンロードしてくるものはありません。 Vagrant側の作業にいきます。

Vagrant上のMySQLにdumpファイルをインポート

ローカルのVagrantのディレクトリに先ほど落としたdumpファイルを置きましょう。 ここに置くとVagrant上の/vagrant/以下に設置されることとなります。

vagrant up vagrant ssh vagrantへ入ります。ちなみに自分はCentOSを使っています。

追記 10/22 dumpしたsqlを書き換えることをすっかり忘れてました! sqlを開いて、自分のドメインVagrantで使っているIPに書き換えましょう。 でないと画像とかのURLが本番のURLになっているので、本番を見に行ってしまいます。

service mysqld status mysql -u root < /vagrant/lolipop.sql 特に問題なければDBが作成されるはずです。 自分はdumpファイルにinformation_schemaの作成も入ってしまっていて、インポートに失敗しました。

確認

mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | [データベース名] | | mysql | | performance_schema | | test | +--------------------+ 5 rows in set (0.01 sec)

mysql> use [データベース名]; Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A

Database changed mysql> show tables; +--------------------------------+ | Tables_in_[データベース名] | +--------------------------------+ | wp1_commentmeta | | wp1_comments | | wp1_links | | wp1_nxs_log | | wp1_options | | wp1_postmeta | | wp1_posts | | wp1_statpress | | wp1_term_relationships | | wp1_term_taxonomy | | wp1_terms | | wp1_usermeta | | wp1_users | | wp1_wordbooker_errorlogs | | wp1_wordbooker_fb_friend_lists | | wp1_wordbooker_fb_friends | | wp1_wordbooker_postcomments | | wp1_wordbooker_postlogs | | wp1_wordbooker_process_queue | | wp1_wordbooker_userdata | | wp1_wordbooker_userstatus | +--------------------------------+ 21 rows in set (0.00 sec)

おそらく自分が入れているWordpressプラグインによって作られたテーブルもありそう。 ちゃんとテーブルが表示されているのでインポート完了。

Vagrantに画像をアップロード(アップロードというか設置)

FTPツールでダウンロードしたuploadsの画像を先ほどのMySQLdumpと同様にvagrantディレクトリに設置します。 Vagrant上のWordpressからこちらを参照して欲しいので、シンボリックリンクを張ります。 cd wp-content rm -rf uploads ln -s /vagrant/uploads/ uploads

ここまででダウンロードしたファイルたちの設置・インポートは完了です。

次にテーマのインストールと行きたいのですが、ちょっとWordpressのファイルをいじります。

vim wp-config.php

/* WordPress のためのデータベース名 / define('DB_NAME', '[データベース名]'); データベースの名前をインポートしたデータベース名へ変更。

/* * WordPress データベーステーブルの接頭辞 * * それぞれにユニーク (一意) な接頭辞を与えることで一つのデータベースに複数の WordPress を * インストールすることができます。半角英数字と下線のみを使用してください。 / //$table_prefix = 'wp'; $table_prefix = 'wp1'; ロリポップのテーブルはwp1_となっているので、そちらに合わせます。

define('FS_METHOD', 'direct'); ↑追記 これはWordpressのテーマのインストール時にftpの設定画面が表示されるのを防ぐ為に追記します。

これでVagrantWordpressロリポップと同じブログが構築されたと思います。 もし本番側のfunction.phpなどいじっている場合は、その辺りもダウンロードしておく必要があります。

では次にテーマのインストールします。

本番で使っているテーマをVagrant上のWordpressにインストール

Wordpressの外観->テーマ->新規追加->テーマのアップロード 自分は最近STINGER5というとても便利なテーマに変えたので、それをアップロードしました。 で、アップロードするときにftpの設定画面になってしまったので、先ほどのdefine('FS_METHOD', 'direct');を追加した次第です。 これに関してはこちらが参考になりました! WordpressでFTP接続情報を求められたときのメモ

アップロード完了して、テーマを有効化すればすべての作業が完了です!

ちなみにロリポップで生成されたDB名には-(ハイフン)が付いているので、ちょっとだけめんどうです。 自分が書いた記事を張っておきます。 MySQLで-(ハイフン)付きのデータベース名を使うとめんどい

ローカルで手軽に構築ができるので、Vagrantはとても便利だと思います。 これでテーマとかプラグインの検証が捗るぞ!

料理男子への道 オクラともずくのスープを作りました!

IMG 1526 最近寒くなってきたのでスープを作りました。 先週に沖縄へ行ってきたというのもあって、もずくを使ったスープです。 今回も調味料は適当なので、味付けはおまかせします笑

■材料 もずく・・・好きなだけ 豚肉・・・好きなだけ オクラ・・・一袋(スーパーで袋に入って売っていると思うので、それくらい) 水・・・2l(大量に作りたかったので) 昆布・・・40g(昆布出汁を取るので、使います。1lに20gなので、40g)

■調味料 白だし・・・適量 醤油・・・適量 塩・・・適量

調味料は適量(笑)昆布出汁に白だしってどうなんだろう。。。白だしを多め(大さじ8くらい入れた)に入れて、醤油と塩で味を整えるのが良いかと思います。

1.水2lに対して40gの昆布を入れて、火に掛けます。 IMG 1521

2.沸騰する直前に昆布を取り出します。

3.オクラを一口サイズに切ります。 IMG 1522

4.鍋にオクラと豚肉を入れて、火に掛けます。 IMG 1524

5.アクがかなり浮いてくるので、アクを取ります。豚肉に火が通ったら、調味料を加えて味付けします。自分が作ったのはかなりやさしい味(ただの薄味)になりました。。。 ただ、薄味であれば、調整は効くので、白だしと醤油で整えました。

6.味が整ったら、火を止めて、もずくを投入。もずくは火がすぐに通るので、火は止めておきます。 IMG 1525

7.お皿に盛りつけて完成!

奥さんの評価は高く自信のある料理だったのですが、味付けをやさしい味にしまくったので、あとで調整しました^^; うまい昆布出汁の取り方を身につけたいと思います。

MySQLで-(ハイフン)付きのデータベース名を使うとめんどい

-(ハイフン)付きでデータベースを作るとめんどいです。 というのはデータベース名を指定する際にバッククォート(`)で囲む必要が出てくるからです。 参考 MySQLで-(ハイフン)つきのデータベースを扱う場合の注意

このブログはロリポップで運営していて、MySQLのdumpを取ったときに気づきました。 ローカルのMySQLにdump.sqlを流し込んで、useしようとしたらエラーになっておぉ。。。 管理の都合上ハイフンありでデータベース生成したんだと思いますが、ハイフンは極力付けないほうがいいですね。

料理男子への道 『とろみ豚もやし』を作りました!

IMG_1350.JPG 豚肉ともやしで比較的簡単な料理を作ってみました。 電子レンジを使って、手軽さと洗い物をできるだけ増やさない工夫をしてみました。

■材料 豚肉・・・370g(豚バラとかそんな感じ。量は適当です) もやし・・・適量(スーパーで売っている一袋ぐらいでおk) たまねぎ・・・一玉半 刻みねぎ・・・適量 水・・・300ml

■調味料 鶏ガラスープの素・・・大さじ1(味を見ながら調整します) 片栗粉・・・適量(とろみをつけるに必要) 塩・・・適量1.もやしをざるにあけて、軽く水洗いします。 2.もやしの水はしっかり切るのではなく、水気が残るくらいにします。 3.玉ねぎをスライスし、深いお皿にもやし、玉ねぎ、豚肉の順に重ねます。 4.お皿にラップを掛け(この時にふわっと掛けます。しっかりかけるとレンジに掛けた時に爆発するかも。。。笑)、500Wで8分ほどレンジに掛けます。お肉に赤い部分が多少残っても大丈夫です。 ※ラップを外す時は熱気がすごいので、火傷に注意します。 5.次にとろみ鶏ガラスープを作ります。底が深いフライパンに鶏ガラスープを作ります。鶏ガラスープの素にスープの作り方が載っている場合が多いと思いますので、その通りで大丈夫です。今回は水300mlに鶏ガラスープの素を大さじ1入れました。 6.5でスープが出来たらレンジに掛けた材料を投入します。この時にお肉に赤い部分がある場合は、しっかり火を通しましょう。 7.水溶き片栗粉を作り、フライパンに回すように入れます。直接片栗粉を入れると玉になってしまうと思うので、水で溶いたほうがよいと思います。自分好みのとろみ具合にします。 8.最後に刻みねぎを入れて味見をします。少し足りないようであれば塩または鶏ガラスープの素を入れて調整します。

最初はもやしと豚肉をレンジでチンして、ポン酢で食べようかと思ったのですが、ちょっと調理方法を変えてみました。 あっさり系で食べやすいです。ご飯の上にそのまま掛けてお弁当にしました。 片栗粉の量が難しく、なかなかとろみがつかなったので、4回くらい水溶き片栗粉を投入しました笑

家では洗い物は僕が基本担当しているので、洗い物をすくなるするように努力しました。が、スプーンとか菜箸とか無駄にいろいろ使ってしまい、洗い物は増えてしまいました。。。 この辺は慣れですかね。