2016年12月25日日曜日

Itamaeセットアップ on CentOS7

Rubyなどをインストール。Rubyはrbenvで入れた方がいろいろできるが、今回は手軽なyumで。
# yum install ruby-devel gcc-c++
gemでItamaeなどをインストール。
# gem install itamae io-console --no-document
パスワードも生成するならこれも必要
# gem install unix-crypt --no-document
参考 floatingdays: Itamaeセットアップメモ Itamae自分メモ[1] userとかsshとかportの初期設定

PDFの一部のページを別の PDFとして保存する方法

PDFファイルの一部のページだけ保存する。 - Yahoo!知恵袋
Google Chromeの印刷機能で出力をプリンターでなくPDFにできることを利用する。
なるほど。

2016年12月20日火曜日

クラウドN (cloudn)でのサーバ構築


クラウドといえばAWSしか使ったことがないので、主にAWSと比較しながら備忘録的にメモ。
FLATタイプでCentOS 7の場合。


AWSと同じようなところ

  • セキュリティグループの受信規則は、記述されていないものはDENYなので(デフォルトは設定なし=全て拒否)、許可するものを設定する。
  • セキュリティグループの送信規則は逆にデフォルトALLOWなので、禁止したい場合のみ設定する。
  • サーバ(Compute)を起動すると、サーバに対してグローバルIPが与えられる。
  • サーバにはデフォルトでPython 2.7が入っていた。


AWSと違うところ
(良いところ)

  • データ転送量についての課金が無い。
  • サービスが少ないので管理コンソールがシンプル。
  • 接続元IPアドレスによる管理コンソールのアクセス制限が簡単。
  • サーバ起動時に指定したhost名がサーバ内にも適用される。
  • 一番小さいインスタンスでもデフォルトでswapがある。
(悪いところ)
  • サーバ停止中でも課金される。(稼働中よりは安いが。)
  • サーバ削除のプロテクト設定が無いのがちょっと怖い。
  • 管理コンソール等のタイムゾーンがUTC。
  • 管理コンソールで意味不明な部分がある。(OpenStackの仕様をしらべればいいのか...?)
  • サーバ起動後にセキュリティグループを変更できない。
  • サーバはデフォルトでrootのSSHログインが可能。鍵ファイルではなくパスワード認証。
    ※パスワードはサーバ登録時に生成され、管理コンソール上で1度だけ表示される。管理コンソールからリセットもできる。リセットするとsshdの設定(SSHのrootログイン禁止、パスワード認証禁止、鍵ファイルによる認証の許可など)も初期化される。
  • サーバのテンプレート(AWSでいうところのAMI)を作る前に、手動でサーバを停止しないといけない。
(その他)
  • サーバのSELinuxはデフォルトで有効。
  • SMTPはpostfixが入っている。



本番用テンプレートを作る時にまずやることのメモ
CentOS 7のコマンドがCentOS 6から色々変わってるので慣れないと...。

  • タイムゾーンの設定(/root/tzconfigurator.shという対話形式の設定ツールが用意されているが、itamaeと相性が悪い?)
  • yum update
  • Linuxユーザーの追加(SSH用公開鍵のセットも)
  • rootのSSHログイン禁止
  • SSHのパスワード認証の禁止と、鍵認証の許可
  • メール送信先の変更(/etc/aliasesの編集)

以下は必要に応じて




参考



2016年12月3日土曜日

CentOS 7に NginXをインストール


ダウンロード・インストール
CentOS7.1でnginxを用いたウェブサーバの構築 - Qiita

Webのルートのディレクトリは下記になる
(SELinuxが有効な場合は変更しない方が面倒が無い?)

/usr/share/nginx/html/


設定
/etc/nginx/nginx.conf

worker_processesはautoで良さそう。
参考 nginx の worker_processes を auto にしたときの挙動 - やまぶろぐ


サービス開始
systemctl start nginx.service

起動時にサービス開始するようにする
systemctl enable nginx.service


HTTPS(TLS)対応
既存の/etc/nginx/conf.d/default.confのserver{}内に下記を追加したらできた。
(公開サーバの場合はセキュリティ設定をもっと絞り上げたほうが良い。)
listen 443 ssl;
ssl_certificate     /path/to/server.crt;
ssl_certificate_key /path/to/server.key;
参考 はてなブックマーク - Bマイナー志向 - 2016年1月30日


リバースプロキシ
同じく/etc/nginx/conf.d/default.confのserver{}内に下記を追加。
location /foo/ {
    proxy_pass https://example.jp/test/;
}


参考
nginx.confが読めるようになる - 魔法使いの卵
Nginx設定のまとめ - Qiita

2016年11月19日土曜日

chalice お試しメモ

chalice (Python Serverless Microframework for AWS)をAmazon Linuxに入れてHello Worldしたのでメモ。


1. aws configure

Amazon Linuxならaws(AWS CLI)は最初からインストールされている。
configureで認証情報を登録する。

参考 【AWS】CLIの初期設定について(認証情報とコマンド補完) - TASK NOTES


2. chalice

参考 GitHub - awslabs/chalice: Python Serverless Microframework for AWS

必要に応じてrootで作業する。


マネジメントコンソールから確認したところ、下記が登録されていた。

  • API Gateway
  • CloudWatch(のメトリックス)
  • IAM(のロール)
  • Lambda(大きすぎてマネジメントコンソール上では参照・編集できない)

また、実行後にCloudWatchにログが登録された。


アクセス制限はAPI GatewayはAPIキー認証しかできないので、前にCloudFront+AWS WAFを置くか、アプリケーション側でやるか。(ちょっとめんどくさい。EC2くらい手軽にできるとよいのだが。)

不明点

  • API Gatewayのステージを指定してデプロイする方法(設定ファイルを書き換えるしか無い?deployコマンドの引数で指定したいが…)
  • LambdaのVersionかAliasを指定する方法。これができないと、API Gatewayでステージを分けても、みんなLATESTのLambdaに行ってしまってステージを分けた意味がない…


ブログ アーカイブ

tags