サーバサイド

ウエディングパーク完全HTTPSプロジェクトを通じた、完全HTTPS化(常時SSL/TLS化)のススメ

こんにちは。エンジニアの西脇です。今年4月ウエディングパークはサイトを一部HTTPSから完全HTTPSに移行致しました。移行したことによって、より安心してユーザにもサイトをご利用頂けるようになっております。

完全HTTPS化(常時SSL/TLS化)プロジェクトを実施した4月よりもますます常時SSL化はwebサービスには必須になってきておりますゆえ、その必要性と必要作業について書きたいと思います。

完全HTTPS化(常時SSL/TLS化)が必要な理由

完全HTTPS化(常時SSL/TLS化)はなぜ必要なのでしょうか、弊社では主に以下のように考えました。

続きを読む

PHPerが学ぶgo tour #2 ~制御構文~

こんにちは、エンジニアの東です。

PHPerが学ぶgo tour #1 ~基本~に引き続き、

PHPerがTour of Goで学んでいくときのためにPHPとGoでの書き方の比較をしていきたいと思います。

制御構文

今回はTour of Goの制御構文から(https://go-tour-jp.appspot.com/flowcontrol/1)紹介していきます。

制御構文は制御文に括弧がいらなくて戸惑うかと思いいますが、それくらいであとは基本的にシンプルです。

続きを読む

Goのフレームワーク”Revel”を触ってみた

はじめまして、システムエンジニア新卒1年目の若宮です。

今回はGoのフレームワークであるRevelを触ってみたので紹介します。

Revelとは

revel

Revelは機能が豊富なフルスタックフレームワークです。
フルスタックなのでgoの基本的な部分を学ぶのにとても役に立ちます。
webアプリケーションに必要な機能が揃っていてコードを編集すると
自動的にコンパイルを実行できたり、devモードの実行で簡単にデバックができます。
そしてハイパフォーマンスな言語です。

ちなみにGoのフレームワークにはGinやMartiniなどお酒の名前が多いことで有名ですが
Revelは酒盛りという意味があるそうです。酔いしれる。

引用元:https://revel.github.io/

続きを読む

PHPerが学ぶgo tour #1 ~基本~

こんにちは、エンジニアの東です。

今回は「PHPerが学ぶGo Tour」という題目通り、
Tour of GoをPHP使いが学ぶ上での言語の違いを書いていきたいと思います。

なぜこの記事を書くに至ったか。それは弊社では言語にGoを採用しておりますが、
慣れ親しんだ言語とは別に新しい言語を扱うのは、非常に戸惑うことが多いと思います。

筆者自身もよく、GoとPHPを行き来するため、PHPでセミコロン忘れやGoで変数定義で$piyoと書いてしまい、
「動かない…なんでー…」っと、小恥ずかしいミスをしまったこともあります。

なかなか新しい言語を使うのにはその言語をなれるまで結構大変です。

また、Tour of Go は他言語を学んでいる前提でのサイトです。
しかし、Go言語は他言語と勝手が違うことが多く、導入に戸惑う点も多々あると思います。

まず、言語に触れてみるのが大事だと思いますのでざっくり大雑把にTour of GoのソースをPHPで書いたらこんな感じですって紹介していきたいと思います。

続きを読む

DRESPIC開発の裏側 ~技術選定~

はじめまして!システムエンジニアの谷渕です。

今日は、DRESPIC( https://drespic.net )についてお話ししようと思います。

DRESPICとは…?

top

DRESPICは、2017年1月11日にオープンした、ウエディングドレスのクチコミサイトです。私はこのサイトの立ち上げエンジニアとして、昨年からDRESPICに関わっています。サイトを0から立ち上げるという、わくわくと不安といろいろな気持ちを抱えて、事業責任者の、「ドレス業界に革命を起こしたい!」という夢に乗っかって、一緒に叶えよう!と決意し、DRESPICをつくってきました。
続きを読む

コンビニレシートから学ぶ!データモデリング手法

はじめに

こんにちは、岩橋です。
今回は私が実務で行っているデータモデリング手法(実際手法とは名ばかりですが…)を紹介いたします。

データモデリングは、ご存知の通り、その後のシステム開発や拡張スピード、またシステム自身のパフォーマンスにも深く関わってきます。ここをどのように設計するかが開発プロジェクトを進める上で大きなカギになります。

なぜレシートなのか

モデリングする上で、その対象となるサービス・システムのビジネスロジックや仕様を深く理解する必要があります。レシートの背景にある「物を買う」という行為は至極身近なものであり、誰しもがそのレシートが発行されるまでの流れを経験で知っています。またレシートは、その小さな紙の中に「店舗」や「商品」など、WEBサービスで馴染みがある概念も多く含まれており、訓練をする上で非常に手頃なものです(「コンビニ」なるフレーズは掴みに使わせていただきましたw)。

今回の話のエリア

スクリーンショット-2017-03-20-12.02.47 (1)

今回は概念設計〜論理設計の前半までの内容を対象としています。具体的には「ある特定日のレシート一覧を出力できるシステム」のデータモデリングを行っていきます。

続きを読む

【MySQL】肥大化したInnoDBテーブルを圧縮機能で縮小する方法!

こんにちは。インフラエンジニアの綿引です。

早速ですが、今回はMySQLのテーブル圧縮について記載したいと思います。
但し、MySQL 5.7から実装された透過性ページ圧縮でなく、
MySQL 5.1のInnoDB Plugin時代からある圧縮です!

個人で運用しているMySQLが5.6なのですが、
ストレージが逼迫して来たので、旧来の圧縮を試してみました。

MySQL 5.6以前で「ディスク容量が足りない!」という方がいらっしゃれば、
参考にして頂ければと思います。

圧縮の仕組み

続きを読む

やってみよう!AWSでWEBサーバー環境構築(シリーズ第2回)

こんにちは、岩橋です。

やってみよう!AWSでWEBサーバー環境構築、好評の第一回に続きまして、待望の第二回をやっていきたいと思います。今回は前回作成したVPCとEC2を拡張し、少しづつ耐障害性を意識した実用的な構成を作っていきます。まずはAMIを使って前回作ったEC2のコピーを作るところから始めましょう!

AMIを設定する

これから複数の各種サーバーを設定するに先立って、AMI (Amazon Machine Image) の設定を行いましょう。EC2インスタンスをローンチする度に同じような設定を毎回行うのは煩雑ですが、
これを使ってEC2インスタンスの設定状態をスナップショットとして保存しておくことができます。後で同じEC2が必要になった時にすぐに複製が手に入ります。それでは前回作ったEC2のAMIを作成します。

続きを読む

やってみよう!AWSでWEBサーバー環境構築(シリーズ第1回)

こんにちは、岩橋です。最近のAWSは、次から次に新たなサービスを展開し、その勢いは留まることを知リません。今やITと切っても切れない関係と言っても過言ではないでしょう。

そこでこの度、複数回に渡ってAWS上でのWebアプリ向けのサーバー環境構築について記事にしてみたいと思います。

今回構築するサーバー環境は、
◉VPC(Virtual Private Cloud:土地全体)の構築
◉AZ(Availability Zone:建造物エリア)、サブネット(:建造物を設置するための基礎)の構築
◉WEBサーバーの設置(EC2)
◉ロードバランサー(ELB:玄関)の設置
◉ステップサーバー(EC2:裏口玄関)の設置
◉DNSの設定(Route53:住所登録)
◉データベースの設置(RDS)
◉KVSの設置(ElastiCache)
 …etc を想定しており、最終的には以下のようなイメージになります。

続きを読む

初めてRedisを使うための環境構築

初めまして、システムエンジニア新卒1年目の菅原です。

今回は初めてredisを触ってみたので紹介します。

Redisに触れてみた背景

今年の9月半ばに職場の先輩たちとisucon6に参加しました。

残念ながら敗退してしまいましたが、これまでパフォーマンスをここまで意識したことはなく、参加チームの通過者や本戦出場者の中でもMysqlのデータをRedisに移行してパフォーマンスを速くしているチームが多い印象でした。

少し調べてみるとRDBMSのような複雑な処理にはRedisのキーバリューストア(KVS)型は向かないが、すべてのデータセットをメモリ内に読み込むため、とても高速で高いパフォーマンスをすることができることが分かりました。

パフォーマンスに問題があった場合Redisを使えることがパフォーマンスチューニングにおいては大切なことなのでそんなRedisを触らないわけにはいかないということで初めて触ってみました。

続きを読む