MySQL8.0から、Descending Indexがサポートされる。 これによりMySQL5.7と比較して、大きなテーブルでの降順(DESC)のデータ参照処理を、高速に実行する事が出来るようになる。小さいテーブルに関しては、既存のMySQL5.7でもインデックスが利用出来るので、それ程差は出ないかと思います。 MySQL8.0.1で、Sakila Sampleデータベースのrentalテーブルを参照した場合 (INDEXはASCで作成されている) mysql> select @@version; +-----------+ | @@version | +-----------+ | 8.0.1-dmr | +-----------+ 1 row in set (0.00 sec) mysql> show create table rental\G *******************
version: '3' services: ... job: &job image: ... build: . volumes: - ./:/app - gems:/bundle ... depends_on: - postgres - redis - fluentd command: bundle exec rails jobs:work environment: ... api: <<: *job command: bundle exec rails s -p 3333 -b 0.0.0.0 ports: - "3333:3333" volumes: gems: ... macOS 上で動かしたときと比べ、とある単純な Web API の応答時間が10倍くらいになりました(25ms/req → 250ms/req)。 対策 最近追加されたマウントオプション(consistency オ
はじめに この記事の対象者 主にこんな感じの人をターゲットにしています。 Jenkinsでジョブを管理している AWSをcliで触るのは実は大変…。GUIでやりたい Dockerはインストールはしているけれど、あんまり触ったことが無い また、本記事執筆時点では、us-east(virginia)でのみ利用可能なので、VPCでの利用はあまり想定していません。 (VPNを繋げば出来ると思いますが…) 本来はAuto ScalingやSPOTインスタンスと組み合わせたりといろいろあるのですが、私的事情により、志は低く、過疎っているJenkinsサーバを廃止(サーバレス化)することを目標にしています。 対象のJenkinsジョブ 今回ターゲットにするのは、Jenkinsだと一般的と思われる以下の処理とします。 JDKがバージョン指定で入っている バッチ処理の入ったリポジトリをgit cloneして
SSLのサイトを作ってみたくなった ちょっとした無償サービスを作るにあたって、Let's Encrypt を使った SSL を試しに使ってみたくてやってみました。 環境は、Amazon Linux。 手順 $ ./certbot-auto (中略) FATAL: Amazon Linux support is very experimental at present... if you would like to work on improving it, please ensure you have backups and then run this script again with the --debug flag! Alternatively, you can install OS dependencies yourself and run this script again wi
「Mastodon」(マストドン)というWebサービスがここ数日、日本のネットユーザーの間で急速に注目を集めている。ユーザーの間では「Twitter黎明期に近い雰囲気だ」という声もある。 Mastodonは、ドイツに住むEugen Rochkoさん(24)が作ったTwitterライクなSNS。Twitterとの大きな違いは、サイトが1つではなく複数に分散していることだ。 Mastodonを構築するためのソフトがオープンソースで公開されており、誰でも独自のMastodonインスタンス(サーバ)を作ることができ、インスタンス同士は「連邦」としてゆるくつながる。既に多数のインスタンスが立ち上がっており、4月13日時点で500以上もあるようだ。 Rochkoさんは「Mastodonは分散化したプラットフォームであり、コミュニケーションが単一の企業に独占されるリスクを避けられる」と説明。Twitte
こちらの記事をアップデートしたものを、Zennで公開しています。こちらの記事は古くなってきているのでこちらを参照ください。 はじめに まず,本記事では次の図のような構成で nginx + unicorn + MySQL な環境を構築します.リバースプロキシを異なるコンテナ間でやるのがはじめてだったので,とりあえず記事書いて覚え書きにでもしようかなと言うモチベーションです. また,本記事におけるワークディレクトリの構成は以下のようになっています.ファイル名などはこちらを参考にしてください.いくつかのメインではない設定ファイルに関しては,記事が冗長になることを避けて掲載していませんので適宜 Github のリポジトリを参照してください. . ├── Gemfile ├── Gemfile.lock ├── docker │ ├── gitignore │ ├── mysql │ │
はじめに タイトルの通り、社内Proxyがあるために、yumとかgit cloneができない人のためのTipsです。 Proxyに関する前提条件は以下の通りです。 社内Proxyがある。 ProxyはID/Passの認証がある FQDNによって制限されているページがある。(Blacklist方式) Proxyに直接アクセスできないネットワークにある。(間接的にはアクセスできる) またOSは主にLinux(CentOS,Ubuntu)ですが、Windows+Cygwinの話もたまにします。 ProxyのServerとPortは、proxysrv:port。ProxyのIDはid、Passはpassと表現します。 適宜読み替えてください。 注意事項 全て自己責任でお願いします。 理由(だいたいの場合がセキュリティ)があって、会社はこのような制限を設けています。 またこれの手っ取り早い解決方法は
本連載では、Docker に興味はありつつも、まだ触ったことのない方向けに、実際に触って Docker について理解していただくための記事を提供します。第2回では、Dockerfileからイメージをビルドする方法を紹介しました。ローカルでビルドしたイメージは、Docker Engine にキャッシュされているだけで、他の人には利用できません。イメージを他の人に使ってもらうには、利用者がアクセスできる場所にイメージを公開する必要があります。Docker 社や AWS を始めとする各種クラウドベンダーは、Docker イメージを管理・共有する仕組みとして、「レジストリ」というサービスを提供しています。今回は、Docker イメージのレジストリとして、Docker Hub および AWS ECR(EC2 Container Registry)の概要、簡単なイメージ登録・取得の方法、およびチーム内
2017年2月17日、人事とITをキーワードに、エンジニアリングやテクノロジーに関する理解を深めるためのイベント「人事 to IT カイギ」が行われました。第1回目のテーマは「エンジニアのキャリアパスとしての人事」。本パートでは、クックパッド技術部長の庄司氏が人事部長を兼務することになった経緯について紹介しました。 クックパッドで技術部長と人事部長を兼任 庄司嘉織氏(以下、庄司):藤本(真樹)さんのありがたいお話のあとで恐縮ですが、自己紹介から。庄司嘉織といいます。だいたいGitHubやTwitterやFacebookで「yoshiori」で検索すると出てくるので、よろしくお願いします。 技術部長と人事部長を兼任しています。今日は人事部長の立場として来ました。藤本さんがやらなかったのでこれをやるのは恐縮なんですけれども。(挙手をしながら)クックパッドを知っている人? (会場挙手) 良かった
golangで p := new(Type) と p := &Type{} の使い分けってどうするべきだろう? — MURAOKA Taro (@kaoriya) 2017年4月12日 こちらのツイートに対して、以下のベンチ結果が紹介されていました。 Go言語のヒープに確保するデータの初期化コストについて調べてみた しかしhnakamur2さんも言及しているように、 これはGo1.2.2時の結果。 その後、GoのコンパイラがGo実装になったり、SSAが導入されたりと、 今のコンパイラの実装は当時とは全く違うものになっています。 というわけで、現時点での最新のバージョン(Go1.8.1)で、同様の検証をおこなってみました。 検証コード 検証に使用したコードはGo1.2.2のときと全く同じものです。 // alloc_overhead.go package main type containe
プロダクトが成長してテストコードの規模が大きくなってくるとテスト実行時間も延びてきます。成長は嬉しいけど、ビルド時間が延びるのは嬉しくないです。そこでテストを並列で実行できるようにdrone.ioを設定してみます。 なお、CircleCI2.0での並列テストの方法は同僚が試してくれました。以下の記事を参考にしてください。 CircleCI 2.0 で並列テストするサンプル(Rails) マトリックスビルド drone.ioにはマトリックスビルドという機能があります。これを使うことで複数のworker(Dockerコンテナ)を並列で実行させられます。設定は簡単です。 .drone.yml pipeline: build: image: hoge/piyo commands: - RAILS_ENV=test bundle exec rspec ${TESTFOLDER} matrix: TE
DockerコンテナでRailsとかを運用していると気になるのがログの管理。何らかの理由でコンテナが正常に起動しなかったり、障害時に原因を探るためにログを見たい…という時にいちいちDockerコンテナに入ってログを確認するの面倒です。なので、papertrailというサービスを利用しています。 papertrail これは複数のサーバやコンテナのログを一つに集約して tail コマンドのようにログファイルを閲覧できるいい感じのサービスです。似たようなものとして最近出た logDNA というのもあります。ほぼ同じような機能です。 AWS ECSの設定 papertrailのタスク定義 ログには /var/run/docker.sock を利用するので、最初にボリュームを作成しておきます。 項目 内容
あくまでも個人的な解釈です。 ご指摘などあればお願いします。 疑問 docker imagesを叩くとDockerイメージの一覧が表示されるけど、なぜイメージの列名がREPOSITORYなのか? イメージとリポジトリは違うのか? 個人的な解釈 1. リポジトリとレジストリ AWS ECRのRをリポジトリだと思い込んでいたので混乱。 レジストリは、コンテナイメージやリポジトリを格納・管理するところ(Docker Hub、AWS ECRなど)。 2. リポジトリとは リポジトリは、名前は同じだがタグが異なるイメージの集合。 Gihubのリポジトリとタグをイメージするとわかりやすい。 3. イメージ名とは イメージ名いうものがそもそもないのかもしれないが、あえて言うならばリポジトリ名 + タグ名がそれにあたりそう。 参考記事を見ると以下のようにあるので、タグの全表記がイメージ名ということになるの
やりたいこと: 手元のPCからGPUが刺さっているPC上で動くnvidia-dockerを起動する(sshは表向き使わない). 記事を書いた動機: 言語を問わず,これ!という情報がなかったのでまとめてみました. 事前準備 nvidia-dockerのインストール:https://github.com/NVIDIA/nvidia-docker 設定ファイルの書き換え 注意として,nvidia-dockerにリモート接続する場合には,dockerにも接続する必要があります. - docker用のポートは2375 - nvidia-docker用のポートは3476 それぞれで,上記のポートをtcpでlistenさせるための設定が必要です. dockerにremoteから接続するための書き換え GPUが刺さっているPC(以下,ホスト)上で /lib/systemd/system/docker.se
ネットワークのトラブルシュートなどをする時にtcpdumpやwiresharkといったツールを使ってキャプチャデータを取得し、正常ではない通信を特定するなど分析します。その時にIPアドレスやポート番号といったことは当然確認すると思いますが、本記事ではそれ以外に分析に利用できそうな小技をいくつか紹介したいと思います。お題は以下のとおりです。 MACアドレスからNICのベンダーが分かる IPヘッダからおおよそのホップ数が推測できる TCP/IPヘッダからOSを推定できる TCPの3-way-handshakeからネットワークの遅延を測れる TCPの再送状況からネットワーク品質の変化を見れる DHCP/mDNS/NBNS/LLMNR から同一ネットワーク内のホスト名がわかる TLSのclient helloから接続先のホスト名がわかる 【注意事項】 本職のネットワークエンジニアの方にとっては当た
Docker Compose使ってRailsのプロジェクトをしています。 ある時から突然bundle exec rspecが遅くなってしまって、テスト自体は10秒程度なのにコマンドとしては2分くらい待たされるという現象になってしまいました。rspecに限らずbundle execが何やっても遅いという状態でした。 それもプロジェクトの一人が最初にその現象に当たって、数日後に私もなって、また数日後にもう一人が同様になって、という、感染しているんじゃないかという不思議な現象でした。でも、その3人目の人が解決策を見つけてくれました。 rails.hatenadiary.jp 細かいところは違いますが、Docker側とホスト側(Mac)の共有フォルダにvender/bundleがあるとこうなるようです。上記の3人目の感染者はグローバルにインストールしたらなおったと教えてくれました。 でも2番目の感
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く