https対応した

なんとなくこのブログをhttps対応した。 blogを見る分にはhttpでも問題ないんだけど、記事を書いたりする管理画面へのログインがhttpで気持ち悪かったため対応することにした。 昔wordpressを使ってたときには管理画面だけオレオレ証明書でやっていて、ログインのときにchromeの警告画面が出てちょっとダサかった。最近は、Let's Encryptを使うと暗号化のための証明書が無料で作れるらしいので、ためしに使ってみた。 設定は以下などを参考にした。コマンドラインからやるだけなので、本当に簡単。10分くらいでできる。 光の速さのWEBサーバー(nginx)をlet's encryptでSSL化及びHTTP/2化。ついでにセキュリティ評価をA+にする。 - Qiita 今までのhttpのURLに来た分はリダイレクトされるので問題ない。 弊害として、はてブなどURLに紐づくカウントが引き継げないとか、そういうものはいくつかありそうだけど気にしないことにする。…

terraformを半年ほど使った感想

前回はconsulの感想について書いたけど、今回はterraformについて書いておく。 terraformはインフラ環境を構築するためのツールで、terraformを使うことでインフラ環境の構築を、設定ファイルとしてバージョン管理できるようになる。 自分はAWSで使ってたが、GCPやHerokuなどさまざまなインフラ環境の構築に使える。 AWSならCloudFormationを使うと、似たようなことができるのかな?使ったことないのでよく分からないが、後輩はCloudFormationの方がいいかもと言っていた。 terraformを使ってよかったところ terraformを使うと、たとえばAWSでSecurityGroupを作って、RDSを立ち上げて、EC2を立ち上げるときに、前に設定したSecurityGroupを割り当てて、EC2内の環境変数にRDSのアドレスを設定して・・・みたいなことが比較的カンタンにできる。 設定方法は、日本語の記事だと以下が分かりやすいかな。 AWSでTerraformに入門 | Developers.IO あとは、terraform applyというコマンドで実際に構築するまえに、terraform planというコマンドで何が変わるか確認できるので、安心して実行できる。 依存関係も見てくれるので、EC2の設定の中でRDSのアドレスを参照していれば、その依存関係を考慮して実行してくれる。 terraformの設定ファイルをgitで管理していたので、インフラの構成の変化がバージョン管理できる点が一番よかったと思う。設定を変えたらプルリク出してレビューしたり、terraform planを見てレビューしたり、といったことができた点がよかった。 terraformを使うときに気をつけるところ terraformも万能ではないので、いろいろ気をつけるべきことがある。自分がハマったところを書いておく。 terraformでconfigurationをやらない方がいい terraformでインフラを作るまでは良いのだが、その後EC2サーバ内の、たとえばnginxのconfを設定したり、いろいろサービスを動かすための設定をサーバ内ですることになると思う。terraformにはProvisionerという仕組みがあり、remote-execを使えばいろいろ設定することができるので、…

consulを使って半年運用した感想

毎週書く予定だったのにすっかり間があいてしまった。細かいtipsはQiitaに書いたりしてるので、こっちに書くのはある程度まとまった話にしたいと思う。 ここ最近開発・運用していたサービスが落ち着いたので、一度感想を書いておこうと思う。一人でインフラの設計、開発、運用までやるのは初めてだったのでいろいろ勉強になった。 terraformとconsulを半年くらい使ってるので、感想を書いておく。今回はconsul。 サービスの要件 サービスはAWS上で動かす。 いわゆる普通のWebサービスと違うのは、Websocketサーバのようなコネクションを持つサーバがあり、単純にELBで負荷分散できない部分がいくつかあること。イメージとしては、ニコニコ生放送みたいな、動画のストリームを受けて配信するサーバ(サーバAとする)と、リアルタイムにコメントをブロードキャストするサーバ(サーバBとする)、のようなものに近い。 サーバAは配信するクライアントとコネクションをはるタイプのサーバだけど、サーバ側のCPU負荷が高くサーバ1台で5-10本くらいしか捌けない。 サーバBは、チャットルームのようなものが存在して、部屋に入っている人同士がWebsocketサーバ経由で大量のメッセージを送り合う。そのため、同じ部屋に入ったユーザは同じサーバに割り当てる必要があり、部屋ごとにユーザ数やメッセージ数が異なるので均等に負荷を割り振ることが難しい。 サーバA、Bともに負荷が上がると新たに増やす必要があるし、全てのコネクションが切れるまでサーバを落とすことはできない。 あとは、普通のAPIサーバやWebのフロントサーバがあるけど、それはELBがあれば問題ない感じ。 Consulを使う ユーザが新たに配信を始める際、どのサーバA・Bに接続させたらよいか判断するためには、それぞれのサーバのリストと負荷状況を知る必要がある。また、サーバ台数を増やしたり減らしたりすることがあるので、そのサーバに接続してもいいのかどうかも知る必要がある。 そこで、サーバの管理にconsulを利用することにした。 consulとは…

Mailboxの後継はPolymailにした

以前Mailboxの後継はSparkがよさそうと書いたけど、その後にPolymailのiPhone版が出た。 Mac版もiPhone版もあって、Sparkで気になってた起動直後のメールのロードが遅い問題もないので、MacとiPhoneでPolymailを使うことにした。Mailboxが好きだった人にはおすすめです。…

荒木飛呂彦の漫画術

「ジョジョの奇妙な冒険」は承太郎などのキャラクターや漫画の中のいろいろなセリフが有名で、マンガを読んだことがない人でもなんとなく知っていると思う。そのジョジョの奇妙な冒険の作者である荒木飛呂彦が、漫画術について書いている本を読んだ。 荒木飛呂彦の漫画術 (集英社新書)posted with amazlet at 16.02.12荒木 飛呂彦 集英社 (2015-04-17)売り上げランキング: 2,942Amazon.co.jpで詳細を見る この本は、絵の書き方について書いてるわけではなく、漫画の書き方を書いている。キャラクター、世界観、ストーリー、テーマというマンガの構成要素について、それぞれどのように考えてどのように作るか他のマンガや映画の例を出しながら説明していて、マンガをある程度読んだことがある人なら面白く読めると思う。 たとえば、1ページ目をどうやってめくらせるか、というテーマでいろいろ考えが述べてあったりして、タイトルや絵をどのように工夫して読者を惹きつけているか、というところはサービスやアプリを作る人にも参考になる考え方だと思う。 この本の冒頭にも、"「ジョジョの奇妙な冒険」は王道漫画である"と書いてあり、そこで自分は「え、ジョジョは王道漫画じゃないだろ・・・?」と疑問を持ちながら読み始めているので、これも本を読ませるためのテクニックに見事に引っかかったのかもしれない。 まあそんな感じで今では納得感を持って面白く読めるのだが、一方で自分が子供の頃はジャンプを読んでもジョジョを読んでいなかったことを思い出した。 小学生の頃は周りにもジャンプを読んでいる人がおらずそのような文化がなかった。中学に入ってジャンプを読む人が周りにいて、自分も友達から借りたり自分で買ったりして読んでいた。…