タグ

ブックマーク / www.1x1.jp (38)

  • AWS で請求金額にビックリしないようにやっておくべきこと - Shin x blog

    AWS は、従量課金なので、他者からの不正利用(来無いことですが)や想定外の利用で、翌月の請求が来て、ビックリということがあります。 私自身も関わっているプロジェクトで、ある月に平時の数倍の請求が来て、原因調査を行ったという経験がありました。 転ばぬ先の杖ということで、先にやっておくべきことについてまとめておきます。 1. AWSアカウントの不正利用を防ぐ まず、考えられるのが、アカウントを乗っ取られての不正利用です。もちろん、不正利用は、請求だけでなく、システムやリソースを守るという点でも防ぐべきことです。 そこで、AWS アカウントは、2要素認証(2段階認証 / 2 Factor authentication / 2FA)を設定しておきます。 手順は、下記のエントリがまとまっています。 AWSアカウント作ったらこれだけはやっとけ!IAMユーザーとAuthyを使ったMFA2段階認証

  • 「Azure Websites で作るスケーラブルな PHP アプリケーション」を GoAzure 2015 で発表してきました

    Home > Azure | Laravel | PHP > 「Azure Websites で作るスケーラブルな PHP アプリケーション」を GoAzure 2015 で発表してきました Azure コミュニティの一大イベント GoAzure 2015 にて、「Azure Websites で作るスケーラブルな PHP アプリケーション」という発表を行ってきました。 セッションでもお話したのですが、テーマは、もう一つあり、それは「LAMP(LAPP) ユーザが使う Azure Websites」でした。 Azure は、マイクロソフトのサービスなので、どうしても Windows に最適化されているイメージがあったのですが、普段 Mac で開発して、Linux にデプロイして、運用している人間でも、興味深いサービスであることを伝えようと考えました。 発表資料 発表資料は、こちらです。 発

  • Docker Hub 公式 PHP イメージで、複数バージョンの PHP コンテナを起動する

    Home > Docker | PHP > Docker Hub 公式 PHP イメージで、複数バージョンの PHP コンテナを起動する Docker Hub の 公式 PHP イメージで、PHP 5.4, 5.5, 5.6 のコンテナを起動します。 PHP Advent Calendar 2014 の 12 日目です。昨日は、PHPで簡単に華麗にDIとAOPをキメる でした。 Docker Hub には、公式でミドルウェアや言語のイメージがで公開されています。PHP もその一つで、現在は、5.4, 5.5, 5.6 が公開されています。また、バージョン毎に複数のタグが存在し、cli / fpm / apache(mod_php) といた構成違いのものが存在します。 https://registry.hub.docker.com/_/php/ ここでは、5.x-apache タグのイメージ

  • Composer を倍速にした、たった 1 行のコード

    まだ 12 月早々ですが、PHP ユーザに素敵なクリスマスプレゼントが届きました。 いまや使うのが当たり前となった Composer ですが、複雑な依存解決に実行時間がかかるのがネックでした。 これは日国内だけでなく、海外のユーザも同じで、皆がしょうがないと思いつつも、小さな不満を持ちながら使っていました。 そんな、ある�日、わずか 1 行のコードが追加されたことで、実行時間が、わずか半分になるという現象が起こりました。 Composer を倍速にするには? composer self-update を実行して、最新版にするだけです。 $ composer self-update 実際の効果 このコードの効果を見てみましょう。composer コマンドの --profile オプションを使って、実行時間と使用メモリ量を出力します。 $ composer update --dry-run

  • 「PHPコードではなくPHPコードの「書き方」を知る」を発表してきました

    PHPカンファレンス関西2014で「PHPコードではなくPHPコードの「書き方」を知る」を発表してきました。 写真提供:久岡写真事務所 別トラックに人気セッションがひしめく中、多くの方に聴いて頂き、ありがとうございましたm(_ _)m 発表内容 PHP 中級者(中級がどこかというのはありますが)を目指す初心者の方を対象に、FizzBuzz のコードを、関数にまとめて、クラス化するというのをライブコーディングで行いました。 また、関数にまとめた段階で、自動テストを書いて、実行結果を目で確認するのではなく、テストを実行して確認するというスタイルを取りました。 発表資料は以下です。 コードを書きながら進めていく形なので、資料だけでは少し伝わらない部分があるかもしれません。 デモで書いた PHP コードは、GitHub で公開しています。Sample1, Sample2 とディレクトリが分かれてい

  • Heroku で作るスケーラブルな PHP アプリケーション

    第16回関西PHP勉強会で、「Heroku で作るスケーラブルな PHP アプリケーション」という発表をしてきました。 発表資料 Heroku でちゃんと動く PHP アプリケーションを作ると、自然とスケーラブルな構成になりますよ、という内容です。 会場でも、Heroku 自体は知っているが、まだ使ってはいないという人が多かったので、細かな Tips は省いて、こういった構成でやりますよというイメージをお話しました。 実際に構築する上での Tips などは、また別の機会に話してみたいです。 サンプルアプリケーション サンプルアプリケーションとして、簡単な画像アップロードサイトを Laravel 4.2 で作りました。 https://github.com/shin1x1/laravel-on-heroku アプリケーションデータは、以下のアドオンへ保存するようにしています。画像ファイルは、

  • composer install をどこで実行するか

    最近の PHPer が集まれば、一度は話題に上がるのが、この composer install をどこで実行するのか問題。 これまで聞いた話をまとめると、大きく分けて、以下の2パターンになります。どちらの方法を取っているか教えて下さい 😀 0. 前提 前提ですが、以下のような方法で、Composer 関連のファイルは管理しているとします。おそらく多くはこのような形になっていると思います。 PHP コードは、Git などの VCS で管理する。 composer.json, composer.lock は、VCS で管理する。 composer.phar, vendor/ は、VCS で管理しない。 また、今回対象としているのはアプリケーションで、Packagist に登録して、配布するようなフレームワークやライブラリは対象外です。 1. 番サーバで実行 PHPサーバ上で compo

  • Laravel IoC コンテナの使い方

    最近は Laravel + AngularJS で Web アプリケーションを開発する毎日です。 少し時間が取れたので Laravel フレームワークのソースを読んでいます。その中から Laravel の肝でもある IoC コンテナの使い方をまとめてみました。 Laravel の IoC コンテナ Laravel で使われている IoC コンテナは、Illiminate\Foundation\Applicationクラスです。これはIlliminate\Container\Containerクラスを継承したもので、コンテナとしての基機能はIlliminate\Container\Containerクラスが担っています。 Laravel アプリケーションで、この IoC コンテナを利用する際は、AppクラスというIlliminate\Foundation\Applicationのファサード

  • vagrant-serverspec で TDD ライクにサーバ構築を行う

    Shin x blog Advent Calendar 2013 の 24 日目です。 先日リリースされた vagrant-serverspec を使って、テストドリブンなサーバ構築を行ってみました。 vagrant-serverspec は、サーバ、インフラの状態をテストするツール serverspec を Vagrant のプロビジョナとして実行できるプラグインです。これを使うことで、vagrant コマンドから、serverspec のテストを実行することができます。 詳しくは、@ryuzee さんの下記エントリを参照して下さい。 vagrant-serverspecを使ってプロビジョニング結果をテストする | Ryuzee.com 仕様 今回構築するサーバの仕様は下記です。PHP 5.5.x をインストールして、ビルトインサーバを起動するというものです。(※ちなみにビルトインサーバ

  • Mac で Vagrant を GUI で操作できる「VagrantX」をリリースしました

    Shin x blog Advent Calendar 2013 の最終日です。 12/1 から毎日書いてきた Shin x blog Advent Calendar 2013 ですが、いよいよ今日が最終日です。 今日は、クリスマスということで、ささやかながらちょっとしたプレゼントを用意してみました:D VagrantX GUI で Vagrant が利用できる VagrantX というツールをリリースしました。 http://shin1x1.github.io/vagrantx/ Vagrant は、とても良いツールなのですが、いかんせんターミナル(黒い画面)で操作するものなので、それに慣れていない人にとっては、少し敬遠されている面があります。Vagrantfile を自分で書くような人はターミナルでどんどん使うべきなのですが、用意された Vagrantfile をただ使うだけであれば、

  • PHP 5.6 に採用されるデバッガ phpdbg を使ってみた

    Shin x blog Advent Calendar 2013 の 21 日目です。 第 12 回関西 PHP 勉強会 にて、PHP 5.6 に採用予定の phpdbg をひと足先に PHP 5.5.7 で触ってみました。 phpdbg phpdbg は、gdb ライクな PHP 用のデバッガです。ブレークポイントを設定して、その時点のコンテキストを確認したり、ステップ実行などができます。 phpdbg | php debugger インストール PHP 5.6 から同梱される予定の phpdbg ですが、これ自体はすでにリリースされており、PHP 5.4 から利用することが可能です。インストールには、PHP のソースコードが必要になるので、PHP も ソースからインストールします。 $ sudo yum -y groupinstall "Development Tools" $ sud

  • 開発現場で Docker をどこで使うか考えてみた

    Shin x blog Advent Calendar 2013 の 16 日目です。 最近話題の Docker 色々と触っています。 触ってみる中で、普段の開発現場でどのような用途に使えそうなのかを考えています。こうだ!という結論が出ているわけではないのですが、一度書き出してみます。 前提 Webシステムの開発現場を想定しています。 言語は普段使っている PHP ですが、内容にはあまり関係無いです。 開発機には Mac OSX を使っています。 検証環境(サンドボックス) まず一番に思いつくのが、検証環境としての利用です。Docker を使えば、OS のみがインストールされている状態のコンテナを手軽に作成できるので、そこでミドルウェアのインストール、設定などを自由に行い、検証が済んだら、破棄します。 OSX 環境では Docker は動かないので、Vagrant + VirtualBox

  • CentOS 5, 6 / Amazon Linux で PHP をパッケージインストールする方法まとめ

    Home > Advent Calendar 2013 | AWS | PHP | 開発環境 > CentOS 5, 6 / Amazon LinuxPHP をパッケージインストールする方法まとめ Shin x blog Advent Calendar 2013 の 15 日目です。 Cent OS 5, 6 / Amazon Linux にて、PHP の各バージョンを yum でインストールする方法をまとめてみました。 CentOS 6 CentOS 5 Amazon Linux CentOS 6 PHP 5.3 CentOS 6 では、公式パッケージが PHP 5.3.3 なので、公式のリポジトリからインストールできます。 $ sudo yum -y install php (snip) $ php -v PHP 5.3.3 (cli) (built: Dec 11 2013 0

  • Travis CI を使って PHP コードを HHVM 環境でテストする

    Shin x blog Advent Calendar 2013 の 14 日目です。 PHP の高速な実行環境として知られる HHVM の新しいバージョン 2.3.0 がリリースされました。 今回のリリースでは、オープンソースプロジェクトの CI サービスとして人気の Travis CI へのサポートが発表されました。以前から Travis CI では、PHP 5.2 から PHP 5.5 の実行環境がサポートされていたのですが、ここに HHVM 環境が新たに加わることになります。 さっそく、Travis CI の HHVM 環境を試してみました。 Travis CI の設定 Travis CI 上で HHVM 環境でのテストを行う設定は簡単です。.travis.yml の php: に hhvm を追加するだけです。 php: - hhvm これで、次回のテストから hhvm 環境で実

  • 技術の種を蒔こう

    Shin x blog Advent Calendar 2013 の 11 日目です。 日常が忙しく、新しい技術なんか追ってられない。わかります。 そんなの使うかどうかも分からないのに今やる必要無いよね。困った時に探せば良いでしょ。それもわかります。 そんな忙しい毎日だからこそ、技術の「種」くらいは蒔いておきましょうという話です。 技術の種 「技術の種」とは何でしょう。 私がイメージしているのは、その技術のイメージをざっくりと朧気ながらで良いので掴んでおくということです。(ユースケースもあるとより良いです。) きちんと土を掘って、一つ一つ植えられれば良いのですが、じっくりと植える時間はなかなか無いと思うので、とりあえずバサッとで良いので、撒き散らしておきます。 そうしておいた種は、何かのきっかけで芽を出すことがあります。 多くは解決すべき問題に直面した時です。この問題は手元の技術では解決で

  • ざっくり分かる Vagrant 1.4 / Docker Provisioner

    Shin x blog Advent Calendar 2013 の 10 日目です。 Vagrant 1.4 がリリースされました。Docker Provisioner を中心に新機能をざっくりと見てみました。 ダウンロードページの変更 さあ、1.4 をダウンロードしよう、と今までのダウンロードページに行くと 1.4 のリンクがありません>< 新しいダウンロードページからダウンロードしましょう。 Download Vagrant – Vagrant Docker Provisioner Docker 対応として Docker Provisioner が追加されました。 このプロビジョナを使うと Docker 自体のインストールが自動で行われ(!)、その後、docker pull や docker run を実行することができます。 下記の Vagrantfile では Docker Pr

  • WordPress を Docker で動かす( OSX / Vagrant )

    Shin x blog Advent Calendar 2013 の 9 日目です。 DockerPHP アプリケーションを動かしてみようということで、WordPress でやってみます。 WordPressDocker コンテナを作る Docker は現状 Linux 上でしか動かないので、OSX 上では直接動きません。Vagrant で Linux(CentOS)の仮想マシンを作り、その上で Docker を動かします。 さっそく Linux 環境から WordPress が動く Docker コンテナまで、一気に構築できる Vagrantfile を作りました。これを使うだけで環境構築は終わりです。 shin1x1/vagrant-docker-wpdev まず、GitHub から git clone します。 $ git clone https://github.com

  • Docker ストレージドライバによる RHEL/CentOS 対応について

    Shin x blog Advent Calendar 2013 の 8 日目です。 これまで Docker を RHEL/CentOS で動かす際に懸案だったのは、AUFS への対応でした。RHEL/CentOS 6.x のカーネルは AUFS へ対応していないので、Docker を動かすには、AUFS 対応のカーネルを入れる必要がありました。 Docker 0.7 では、この対応としてストレージドライバという機構が採用されました。 ここでは、ストレージドライバによる RHEL/CentOS 対応について見てみます。 CentOS 6.5 で利用されているストレージドライバ Docker 0.7 で採用されたストレージドライバは、Docker コンテナが利用するファイルシステムを選択する機構です。これにより、AUFS 以外のファイルシステムを利用ことが可能になっています。0.7 では、a

  • CentOS 6.5 に Docker をインストールしてみた

    Shin x blog Advent Calendar 2013 の 7 日目です。 いよいよ CentOS 6.5 から Docker がサポートされたということで、実際にインストールしてみました。 Vagrant で CentOS 6.5 環境 Vagrant で CentOS 6.5 環境を作ります。( CentOS 6.5 環境がある場合は不要です。) CentOS 6.5 の Box ファイルには、Opscode が提供している Bento プロジェクトのものを利用しました。 $ vagrant init opscode-centos65 http://opscode-vm-bento.s3.amazonaws.com/vagrant/virtualbox/opscode_centos-6.5_chef-provisionerless.box $ vagrant up $ vag

  • とある CMS を使ったサイトに Varnish を導入した話

    Shin x blog Advent Calendar 2013 の 6 日目です。 とあるサイトに、Varnish をリバースプロキシとして導入して、半年が経過しました。 導入した経緯やその効果など書いてみたいと思います。 Varnish とは Varnish は、HTTP アクセラレータです。Web サーバのリバースプロキシとして動作し、キャッシュを生かして高いパフォーマンスを発揮するのが特徴です。また、VCL という独自の設定言語を持ち、これにより状況に応じた設定を柔軟に行うことができます。 導入の経緯 このサイトでは LAMP 構成の CMS を利用しており、インフラには AWS を利用しています。基、閲覧が中心なのですが、イベント時に多数のアクセスがあります。S3 や CloudFront も検討したのですが、コンテンツを数分おきに更新する必要があるので今回は採用しませんでした