Postfixでメール送信サーバを立てる #3 ~AWS版~

はじめに 以前こちら(オンプレ)とこちら(Docker)でメール送信サーバを立てましたが、今回はAWSのEC2インスタン上で構築します。ところでメール送受信ポートと言えば25か465か587を使用するかと思いますが、自分はこの辺の違いを把握していなかったのでまずは簡単にまとめたいと思います。 25465587概要主に受信用ポートとして使用。認証無しでの送信用ポートしても使用可能。認証に成功した場合のみ送信許可。... 御覧になる | 御シェアする

Node.jsでWebアプリを作りCloudFormationで自動化する

はじめに Node.jsはサーバサイドで動作するJavaScriptですが、ちょっとしたWebアプリを作るのに便利です。今回は麻雀点数計算アプリを作りたいと思います。CloudFormationはAWSのサービスの一つで、いつもGUIで行っているAWSのリソースプロビジョニングを自動化出来る機能です。これを使ってサーバを立て、Gitクローン、アプリのデプロイまでを自動化する事が目標です。 ※ネイティブアプリも作成してみました。無料ですのでインストールしてみて下さい。リンク アプリ制作 GitHubで公開するのが手っ取り早いのですが、精神衛生上ユーザ名を公開したくないのでソースを解説しながら貼っていきたいと思います。お手数ですがコピペでお願いします。 ファイル構成 まずファイル構成と概要は次の通りです。 $... 御覧になる | 御シェアする

readlinkコマンドでフルパスを表示出来るらしい

はじめに ファイルの絶対パスが知りたい時どう取得していますか。pwdとlsを組み合わせておいででしょうか。何を隠そう自分が正にその一人でしたが、調べてみると良い方法がありましたのでまとめておきます。 readlinkコマンド 方法から先に載せます。 $... 御覧になる | 御シェアする

hostsショートカット~Win10~

hostsファイルの場所 C:\Windows\System32\drivers\etc\hosts hostsファイルのショートカット作成 1.メモ帳の場所からショートカットを作成 2.リンク先の引数にhostsパスを追加 ショートカットのプロパティからリンク先に先程のhostsのパスを追加する。 3.管理者として実行 「詳細設定」をクリックして「管理者として実行」にチェックを入れて「OK」をクリックする。 ... 御覧になる | 御シェアする

スマホでもターミナルは使える

ふとiPhoneにはターミナルアプリってあるのかと気になって調べてみたところ、案の定「Terminus」というアプリがありました。使用感も普通のターミナルと遜色がなく便利でした。 スマホからターミナルを使ってPCにあるプログラムを実行したい瞬間って意外とありますよね。VPNを繋いだりすれば外でも接続出来ますので今後使っていきたいと思います。 ... 御覧になる | 御シェアする

SSHのポート番号を変える

はじめに 何かしらのサーバを外部に公開したことがある方であれば分かると思うのですが、一度公開したサーバは一斉に攻撃の対象にされるという事をご存じでしょうか。その証拠に次のログを見てください。 #... 御覧になる | 御シェアする

RabbitMQでワークキューを使う #2

はじめに 前回はRabbitMQでメッセージキューイングシステムを構築し非同期処理を実装しました。今回は前回のプログラムを少し改修して並列処理を実装します。 並列処理用にプログラム改修 差し当たっては結果を見やすくするために送信プログラムのメッセージを「Hello... 御覧になる | 御シェアする

ご注文はRabbitMQで並列処理ですか? #1

目標 今回の目標はRabbitMQを使い並列処理クラスタを構築する事です。昨今のスパコンは一つのCPUの性能を高めるよりも、汎用的なCPUを大量に並べて処理能力を上げる方が一般的です。 例えば10秒掛かる処理が10個あるとして、1台の計算機で全てやろうとすると100秒掛かりますが、2台の計算機なら50秒で終わりますし、10台の計算機なら10秒で終わります。つまり並列処理をさせることで全体の計算に掛かる時間を短くするということを実現したいと思います。 まずメッセージングミドルウェアとは RabbitMQはメッセージングミドルウェアと呼ばれていますが、メッセージングミドルウェアというのは異なるアプリ同士が双方向に情報をやり取りするためのソフトウェアのことです。MOM(Message-oriented-middleware)を使うと次のような良い事があります。※日本語だとメッセージ指向ミドルウェアといいます。 メッセージキューイングを利用した非同期処理 仮にMOMを使わないECサイトのようなWebアプリを作ったとします。その場合ざっくりとですが次の様な流れになるかと思います。 エンドユーザは商品をカートに入れ、フォームを入力して購入ボタンをクリックします。購入情報が管理サーバに送信され、ユーザ認証やデータ書き込みなどのDBとやり取りをしたり、在庫チェックや発送準備を行います。2.の処理が完了したことを確認しエンドユーザにレスポンスを返して購入が完了する。 これの何処に問題があるのかと言いますと、2.の処理中エンドユーザはひたすら待ち続けなければならないという点です。 そこでキューというデータ領域に購入情報をストアさせておき、順次管理サーバが処理していくというのが非同期処理の良い所です。 保守性の高い開発 又、MOMを利用するとサービス毎に開発が可能になります。ここでもECサイトを例にしますが、1.と2.の処理部分を順番に作っていくよりも、「1.部分は私達が作ります。最終的に~の様なメッセージを送りますので」「承知しました。ではそのメッセージに合うように2.部分は私達が作ります」と言う方が効率が良いですし、汎用性もあります。 他にもリスクを一元管理しないことによる耐障害性向上など様々なメリットがあります。 構築 RabbitMQインストール #... 御覧になる | 御シェアする

複数のGitHubアカウントでプッシュする

はじめに 勉強熱心なエンジニアの中には複数のGitHubアカウントをお持ちの方も多いと思います。仕事用、プライベート用で切り分けている等……それを一つの端末から使い分けるための設定に少しだけ躓いたので、未来の自分のために手順を残しておきたいと思います。 手順 ※既にアカウントを一つ持っているという前提で、今後新しくリポジトリを追加するという体で話していきます。 まずはリポジトリを普通にクローンします。 $... 御覧になる | 御シェアする