AWSの勉強をはじめたときの参考にしたサイト
AWSの勉強を始めた時に参考にしたサイトを以下の通りメモしておく。
AWSドキュメント
AWS クラウドサービス活用資料集
- URL
- 内容
ホワイトペーパー
- URL
- 内容
- アーキテクチャー、セキュリティ、エコノミクスなどのトピックをカバーする技術的文書
AWSドキュメント
- URL
- 内容
- サービス別、開始方法別にドキュメントやチュートリアルを公開
よくある質問
- URL
- 内容
- AWSのQA内容
AWSパートナープログラム
- 登録すると、E-learningの受講、イベントの参加、パートナートレーニングの参加が可能
無料オンライン動画とラボ
- URL
- 内容
書籍
◎ Amazon Web Services パターン別構築・運用ガイド
- http://www.amazon.co.jp/dp/4797382570/
- 一番評判が良さそう
WebPage(AWSのサイト以外)
AWS知識 + Cloud知識
資格系
- http://blog.serverworks.co.jp/tech/2015/11/04/fy2015-asa-review/
- http://yomon.hatenablog.com/entry/2015/09/24/194728
- http://yomon.hatenablog.com/entry/2015/10/21/080826
試験(資格)
- URL
- 内容
- 各種資格に必要とされる要素などを紹介
- 資格に関連するトレーニング内容などを紹介
本のサマライズTips
技術書や、様々なビジネス本などをサマライズするときに、効率化を行うためのTipsを紹介
利用するものは以下の2つ
- Scannable
- https://itunes.apple.com/jp/app/evernote-scannable/id883338188?mt=8
- evernote製のアプリ
- 現在対応しているのはiOSのみ?
- 撮影した写真の歪みなどを補正してくれる
- 4点の座標を選んでトリミングが可能
- 本などを撮影すると、きれいに白黒で出力できる
- google ドライブのOCR機能
- 画像に対して、OCRをかけ、画像+認識した文字列を含むファイルとして出力可能
本の中から図を抽出する方法
- Scannableを起動し、本の中から必要な図を撮影する
- 切り取りを選択し、切り取る4点を手動で調整する
- 完了を選択すると、指定した4点が矩形になるように補正してくれる
- 送信 > 共有 > Google Drive を選択することで Google Driaveに保存する(保存場所は任意)
本の中から必要な文章を抽出する方法
- Scannableを起動し、本の中から必要な文章を撮影する
- 切り取りを選択し、切り取る4点を手動で調整する
- 完了を選択すると、指定した4点が矩形になるように補正してくれる
- 送信 > 共有 > Google Drive を選択することで Google Driaveに保存する(保存場所は任意)
- PCのWebページで、Googleドライブを開く
- 4で保存した画像を選択 > 右クリック > アプリで開く > Googleドキュメントを選択
- Googldドキュメント形式で画像 + OCRがかかった文字列のファイルが生成される
- 生成されたファイルから必要な文章を抽出する
以前は、本のサマライズをするときは、図や文書を自分で書き写すなどして大変非効率でしたが、この方法で大分効率化を測ることができるようになりました。
もっと良い方法はあるのかもしれませんが思いますが。。。
また、本を自炊してしまえばもっと効率的ではありませすね。
現状の課題としては、Goodleドライブにuploadした時点でGoogleドキュメント形式に自動で変換されると良いのですが、そのような設定方法が見つかっていません。
Postgresqlの設定からRailsアプリケーションをherokuで動かすまで⑥
Railsの新規アプリケーションをherokuにデプロイする手順
今回は自前で作成したRailsアプリケーションをHerokuへデプロイする手順について説明していきます。
1. Railsアプリケーションの生成
まず、myAppという名前でRailsアプリケーションを作成します。 databaseのオプションとして -d postgresqlを指定します。 postgresql
$ rails new myApp -d postgresql // myAppというRails アプリケーションが生成 $ cd myApp
2. ベースとなるモデル、ビュー、コントローラの作成
Railsのscaffoldで、サンプルのモデル、ビュー、コントローラのひな形を作成します。 今回はtitle、authorをもつbookモデルを生成します。
$ rails generate scaffold book title:string author:string
3. Gemfileの修正とgemのインストール
以下のことを実現するためにGemfileの修正を行います。 * WebサーバをPumaで動かすためpumaの追加 * Rails4をHerokuで動かすためにrails_12factorを追加 * RailsでJavaScriptのエンジンであるV8を動かすためtherubyracerを追加
source 'https://rubygems.org' # Bundle edge Rails instead: gem 'rails', github: 'rails/rails' gem 'rails', '4.2.1' # Use postgresql as the database for Active Record gem 'pg' # Use SCSS for stylesheets gem 'sass-rails', '~> 5.0' # Use Uglifier as compressor for JavaScript assets gem 'uglifier', '>= 1.3.0' # Use CoffeeScript for .coffee assets and views gem 'coffee-rails', '~> 4.1.0' # See https://github.com/rails/execjs#readme for more supported runtimes gem 'therubyracer', platforms: :ruby // コメントアウトを削除 gem 'rails_12factor' // 追加 gem 'puma' // 追加 # Use jquery as the JavaScript library
更新したgemファイルをinstallします。
$ bundle install
4. WebサーバのPumaへの変更
Procfileを作成し、以下の記述を追加します。
web: bundle exec puma -C config/puma.rb
config/puma.rbを作成し、以下の通り設定(設定は、herokuサンプルのものを参考)
workers Integer(ENV['WEB_CONCURRENCY'] || 2) threads_count = Integer(ENV['MAX_THREADS'] || 5) threads threads_count, threads_count preload_app! rackup DefaultRackup port ENV['PORT'] || 3000 environment ENV['RACK_ENV'] || 'development' on_worker_boot do # Worker specific setup for Rails 4.1+ # See: https://devcenter.heroku.com/articles/deploying-rails-applications- with-the-puma-web-server#on-worker-boot ActiveRecord::Base.establish_connection end
5. DBの設定変更
PostgresqlでDBが生成できるよう、ユーザ名などの設定を変更します。 config/database.ymlの設定test、develop項目に関して以下の通り設定します。
// PostgresqlのDB作成権限をもつユーザ名とパスワードを指定します。 // ここでは、それぞれuser、fooを指定しています。 development: <<: *default database: myapps_development username: user password: foo test: <<: *default database: myapps_test username: user password: foo
6. ローカルでの動作確認
ローカル環境で、Rails Applicationが動作することを確認します。(※ こちらは前回の記事と同じです) まず、DBの作成
// 事前にpostgresqを起動していることを確認 $ bundel exec rake db:create db:migrate
次に、アプリの起動
foreman start web
ブラウザでhttp://localhost:5000/booksにアクセスし、作成したRailsアプリが起動していることを確認します。
7. railsアプリケーションのgitでの管理設定
まず、作成しているrailsアプリケーションのrootディレクトリでgitの管理を設定します。
git init
次に、.gitignoreを追加し、以下の通り設定します。(herokuのサンプル or herou createで作成される.gitignoreを参考) 必要に応じて、ignoreするファイルを追加します。
# See https://help.github.com/articles/ignoring-files for more about ignoring files. # # If you find yourself ignoring temporary files generated by your text editor # or operating system, you probably want to add a global ignore instead: # git config --global core.excludesfile '~/.gitignore_global' # Ignore bundler config. /.bundle # Ignore all logfiles and tempfiles. /log/* !/log/.keep /tmp
gitで管理するファイルの追加とコミットし
$ git add . //今回は、rootディレクトリ以下のものを管理するようにする $ git commit -m "initial commit"
8. herokuでの動作確認
herokuへのログイン
$ heroku login
作成したrailsのrootディレクトリで以下のコマンドを実行します。(gitのremoteにheroku用の設定が追加される)
$ heroku create
index.htmlをpublic以下に追加 ※ 追加しないと、herokuにrails アプリケーションをpushしたときにerrorとなる
herokuのremoteへアプリをpushします。
$ git push heroku master
デプロイしたアプリを開きます。
$ heroku open
web ブラウザーで、デプロしたアプリが開かれます。
このとき、以下のようなエラーが出た場合、heroku側のDBを再設定します。
2015-06-21T06:40:16.916385+00:00 app[web.1]: Started GET "/app_infos" for 36.12.227.221 at 2015-06-21 06:40:16 +0000 2015-06-21T06:40:16.929108+00:00 app[web.1]: AppInfo Load (8.2ms) SELECT "app_infos".* FROM "app_infos" 2015-06-21T06:40:16.929120+00:00 app[web.1]: PG::UndefinedTable: ERROR: relation "app_infos" does not exist 2015-06-21T06:40:16.929122+00:00 app[web.1]: LINE 1: SELECT "app_infos".* FROM "app_infos" 2015-06-21T06:40:16.929123+00:00 app[web.1]: ^ 2015-06-21T06:40:16.929124+00:00 app[web.1]: : SELECT "app_infos".* FROM "app_infos" 2015-06-21T06:40:16.929932+00:00 app[web.1]: Rendered app_infos/index.html.erb within layouts/application (9.8ms) 2015-06-21T06:40:16.931850+00:00 app[web.1]: 2015-06-21T06:40:16.919048+00:00 app[web.1]: Processing by AppInfosController#index as HTML 2015-06-21T06:40:16.930101+00:00 app[web.1]: Completed 500 Internal Server Error in 11ms (ActiveRecord: 8.2ms) 2015-06-21T06:40:16.931853+00:00 app[web.1]: ActionView::Template::Error (PG::UndefinedTable: ERROR: relation "app_infos" does not exist 2015-06-21T06:40:16.931855+00:00 app[web.1]: LINE 1: SELECT "app_infos".* FROM "app_infos" 2015-06-21T06:40:16.931856+00:00 app[web.1]: ^
再設定は以下の通り
$ heroku rake db:reset $ heroku rake db:migrate
以上が、自前で作成したRailsアプリケーションをherokuにデプロイする手順に関してです。
参考文献
Postgresqlの設定からRailsアプリケーションをherokuで動かすまで⑤
HerokuでRailsアプリの動作チュートリアル
HerokuのGetting Started onHerokuのページのTutorialの手順に沿って、RailsアプリケーションをHerokuにデプロイする流れを説明します。
前提条件
- herokuのアカウントを作成済み
- ruby 2.2.0 インストール済み (2015/06/31現在)
- Bundlerがインストール済み (gem instal bundler)
1. Herokuへのログイン
termainalで以下を入力します。
$ heroku login Enter your Heroku credentials. Email: 登録したe-mailの入力 Password (typing will be hidden): パスワード入力 Authentication successful.
2. Herokuが用意しているサンプルプログラムの準備
gitでサンプルプログラムを取得します。
$ git clone https://github.com/heroku/ruby-getting-started.git $ cd ruby-getting-started
3. サンプルアプリのデプロイ
以下を入力することで、Heroku上にデプロイするためのアプリを作成します。
$ heroku create Creating polar-inlet- .....
上記手順により、gitのremoteにherokuの項目が追加されています。 次に、herokuのremoteにアプリをpushします。
$ git push heroku master Fetching repository, done. .... // master branchをherokuというリモートにpush
上記手順でデプロイは完了です。実際に動作していることを確認するため以下を入力すると、heroku上にデプロイしたアプリがブラウザで開かれます。
$ heroku open // heroku アプリを開く(webブラウザーで、デプロイしたアプリ画面が開かれる)
4. ログを見る
以下のコマンドを入力することで、herokuのログを確認できます。
heroku logs --tail // 稼働しているアプリのログが表示される // Ctrl + C でストップ
5. Procfileの確認
Procfileは、アプリが起動時に実行したいコマンドを記述するファイルです。Procfileは、Railsプロジェクトのトップディレクトリに作成します。サンプルでは以下の通り定義されており、webサーバとしてpumaを利用するように設定されています。
web: bundle exec puma -C config/puma.rb
必要に応じて、コマンドを追加しますが、今回は特に変更はありません。
6. dynoの確認
dynoは、Procfileで指定したコマンドを動作させるlight weightなコンテナです。 psコマンドを利用することで、いくつのdynoを利用しちえるか確認することができます。
$ heroku ps === web (1X): `bundle exec puma -C config/puma.rb` web.1: idle 2015/06/21 16:00:01
必要に応じて、このdynoの数を調整する必要があります。
7. ローカルのGeimfileで指定した関連ファイルをインストール
次に、Heroku上で動かしたRailsアプリをLocal環境でも動作させます。 まず、以下のコマンドにより、Gemfileに記述された必要なモジュールをインストールします。
$ bundle install // 関連するgemのモジュールがインストールされる Using rake 10.4.2 Using i18n 0.7.0 Using json 1.8.2 Using minitest 5.6.1 Using thread_safe 0.3.5 Using tzinfo 1.2.2 Using activesupport 4.2.0 Using builder 3.2.2 Using erubis 2.7.0 Using mini_portile 0.6. ・・・
8. ローカルでサンプルアプリを動かす
次に、Databaseの設定を行います。Herokuでは基本的にPostgresqlを利用しますので、Local環境でもPostgresqlを利用するように設定を行います。この時、バックグラウンドでPostgresqlが動いていないと、DB作成などに失敗するので注意が必要です。postgresqlの起動に関してはこちらの記事を参照してください。
config/database.ymlの設定test、develop項目に関して以下の通り設定します。
// PostgresqlのDB作成権限をもつユーザ名とパスワードを指定します。 // ここでは、それぞれuser、fooを指定しています。 development: <<: *default database: ruby-getting-started_development username: user password: foo test: <<: *default database: ruby-getting-started_test username: user password: foo
以下のコマンドでデータベースの作成を行います。
// 事前にpostgresqlを起動していることを確認 $ bundle exec rake db:create db:migrate
次に、アプリの起動させます。
$ foreman start web
最後に、ブラウザで localhost:5000 にアクセスし、heroku openで開いたものと同様のRails アプリが起動していることを確認します。以下のような画面が開かれるとOKです。
次回の記事に関して
次回は、Postgresqlの設定からRailsアプリケーションをherokuで動かすまでの、最後の記事として、自前で作成したRailsアプリケーションをherokuにデプロイする手順に関して説明します。
Postgresqlの設定からRailsアプリケーションをherokuで動かすまで④
今回は、herokuのアカウント作成から、ツールのインストール手順を説明します。
1. アカウントの作成
Heroku | Cloud Application Platformにアクセスし、Sign up for freeを選択します。
次に、下図のフォームの内容を入力し、Create Free Acountを選択します。
メールアドレスの確認後、アカウントが作成されます。
2. Toolbeltのインストール
次にそれぞれの環境にあった heroku toolbeltをインストールします。今回の実行環境はMacであるため、Mac OSX 選択し、ダウンロード後、実行します。
インストール後、正しくheroku toolbeltがインストールされているかを確認します。 具体的には、terminalを開き、以下のコマンドを入力することで、正しくheroku toolbeltのバージョン情報が表示されることを確認します。
$ heroku version heroku-toolbelt/3.38.3 (x86_64-darwin10.8.0) ruby/1.9.3 // インストールしたtoolbeltの情報 ...
3. Herokuへのssh公開鍵の登録
まず、heroku用のssh 鍵をterminalを開いて以下の通り、id_rsa_herokuという鍵を作成します。
$ ssh-keygen -t rsa Generating public/private rsa key pair. // 以下の通り、鍵の保存先と名前が聞かれるので、id_rsa_herokuと入力 Enter file in which to save the key (/Users/hoge/.ssh/id_rsa):id_rsa_heroku // 次にパスフレーズを2度入力 Enter passphrase (empty for no passphrase): Enter same passphrase again:
次に、herokuアクセス時に、作成したid_ras_herokuが使われるようにsshのconfigの設定を行います。手順は以下の通りです。
1. ~/.ssh へ移動
2. configファイルがなければconfigファイルを作成
3. configファイルに、以下の通りheroku用のconfig情報を記述
Host heroku.com User git port 22 Hostname heroku.com IdentityFile ~/.ssh/id_rsa_heroku TCPKeepAlive yes IdentitiesOnly yes
次に、herokuにログインし、sshの公開鍵を登録します。手順は以下の通りです。
1. terminalからherokuへのログイン
$ heroku login // 登録時に入力したEmailアドレスとパスワードを入力 Enter your Heroku credentials. Email: Password (typing will be hidden): Authentication successful. //Authentication successfulと出れば、ログイン成功
2. herokuへのssh公開鍵の登録 terminalから以下の通り、先ほど作成したid_rsa_herokuを指定して鍵を追加
$heroku keys:add ~/.ssh/id_rsa_heroku
参考URL
次回の記事に関して
次回は、Herokuのチュートリアルの手順に沿って、RailsアプリケーションをHerokuへデプロイするところまで説明をします。
Postgresqlの設定からRailsアプリケーションをherokuで動かすまで③
前回の記事で、PostgresqlのTableの生成まで終わりました。実際にDBへTableを追加して、データをinsertする手順などについて説明します。
PostgresqlのTableの設定
前提条件
fooというユーザがオーナーのbarというデータベースを選択している
1. テーブルの追加
bar=> create table test ( key char(008) primary key, column1 int8, column2 int8, column3 int8 );
2. テーブル一覧の表示
bar=>\d List of relations Schema | Name | Type | Owner --------+------+-------+------- public | test | table | foo
3. データの追加
bar=> insert into test values('id1', 100, 200, 300); bar=> insert into test values('id2', 100, 200, 300);
4. テーブル内のデータの確認
bar=> select * form test; key | colmun1 | colmun2 | column3 ----------+---------+---------+------- id1 | 100 | 200 | 300 id2 | 100 | 200 | 300 (2 rows)
5. テーブルの削除
bar=> drop table test;
次回の記事に関して
これまでの3回で、ローカル環境でのPostgresqlのインストールと初期設定などが終わりましたので、次回の記事では、herokuのインストール手順について説明します。
Postgresqlの設定からRailsアプリケーションをherokuで動かすまで②
前回の記事で、Postgresqlのインストールと初期設定まで終わったので、今回の記事では、ユーザの作成とDBの作成について手順を説明していきます。
Postgresqlでユーザ作成+DB作成
1. ログイン
ターミナルで以下を入力
psql -d postgres
以降の手順は、postgresql内での操作。
2. DB一覧表示
user=> \l Name | Owner | Encoding | Collate | Ctype | Access privileges -----------+--------------------+----------+-------------+-------------+------------------------------------------- postgres | user | UTF8 | ja_JP.UTF-8 | ja_JP.UTF-8 | template0 | user | UTF8 | ja_JP.UTF-8 | ja_JP.UTF-8 | =c/user + | | | | | user=CTc/user template1 | user | UTF8 | ja_JP.UTF-8 | ja_JP.UTF-8 | =c/user + | | | | | user=CTc/user
3. ユーザ作成
user=> create user foo; //fooというユーザを作成 // CREATE ROLEと表示される
4. ユーザのパスワード変更
user=> \password foo //ユーザfooのパスワード変更 //Enter neww passowrd: //Enter it again:
5. ユーザ一覧の表示
user=> \du List of roles Role name | Attributes | Member of --------------------+------------------------------------------------+----------- foo | | {} user | Superuser, Create role, Create DB, Replication | {}
6. データベース作成
user=> create database bar; //barというデータベースを作成 // CREATE DATABASEと表示される
7. データベースのオーナーの変更
user=> alter database bar owner to foo; //barというデータベースのオーナーをfooに変更
8. データベースとユーザの切り替え
user=> \c bar foo //fooがオーナーのデータベースbarに切り替え // You are now connected to database "bar" as user "foo". と表示される // bar=> という表示に切り替わる
次回の記事に関して
次回の記事では、Tableの作成などについて説明します。