【メモ】Amazon Web Services実践入門 第2章

仮想サーバの作成

 

・EBS(Elastic Block Store)とインスタンスストアの違い

EC2にはEBSとインストタンスストアの2種類のストレージがある。

EBSはタイプの種類があってそれぞれ特徴があるので用途に合わせて使う。

docs.aws.amazon.com

 

インスタンスストアはインスタンスが起動している間のみ利用できる。

なので消えてしまっては困るデータは置いてはいけない。

ただ、インスタンスと直接つながっているため、EBSより高いパフォーマンスが期待できる。計算時の一時ファイルなどを置くのに使うとよい。

インスタンスストアもEBSと同様にタイプの種類がある。

docs.aws.amazon.com

 

・EC2の起動

特にハマらなかった。

 

・アプリケーションのインストール

「Webアプリケーションの配置」でrailsをインストールするときコマンドそのまま実行したらrubyが古いよというエラーが出た。

ちなみに「ruby -v」でバージョンを確認すると2.0.0だった。

複数バージョンのrubyを入れるためにはrbenvというやつを使うらしい。

rbenvで最新のrubyも入れることにした。

この記事を参考にインストールした。

qiita.com

「5. ruby-build を インストール(clone)する」まで行ったらこの記事を参考にrubyの最新版をインストール。

mawatari.jp

 

それでもエラーになってしまった。

エラーメッセージに「Try running `yum install -y readline-devel` to fetch missing dependencies.」と書いてたので「sudo yum install -y readline-devel」した後にrubyをインストールするとちゃんと入った。

ここで「ruby -v」でバージョンを確認してみるとまだ「ruby 2.0.0p648 (2015-12-16)」だったので「ruby global 2.4.3」を実行。

そのあと「ruby -v」するとちゃんと「ruby 2.4.3p205 (2017-12-14 revision 61247)」に切り替わっていた。

そのあとrailsをインストールするとちゃんと入った。

rails -v」すると「5.1.4」だった。本では「4.2.4」だったのでだいぶ積読したんだなーと反省。

 

・EC2の停止/削除/再起動(マネジメントコンソール)

インスタンスを停止するとインスタンスが物理サーバー上からなくなる。再度起動することで停止前とは別のAWS上の物理サーバ上でインスタンスが起動する。

この特性を利用すれば、AWSの物理サーバの障害が発生した際に停止と再起動を行うことでインスタンスが動作するハードウェアが変更され、それにより復旧させることができる。停止と再起動の組みあわせとマネジメントコンソール上での再起動は動作が異なるので注意。

インスタンスに紐づかないEIPを持っていると課金されるので要注意。

 

AWS CLIによる操作

スキップ。本を一周読み終えたらCLIからの操作を試す。

【メモ】Amazon Web Services実践入門 第1章

AWSを支える概念

・リージョン

  AWSの各サービスが提供されている地域のこと。

2015年9月現在、世界に11のリージョンが存在する。

ちなみに2017年12月24日現在だと、14に増えていた。

リージョンによって利用可能なサービスが異なる。新しいサービスはまずアメリカのリージョンで利用可能になる。

 

アベイラビリティゾーン

アベイラビリティーゾーンとは独立したデータセンターのこと。

どのリージョンにも必ず2つ以上存在する。これは耐障害性のため。

アベイラビリティゾーン間は高速回線で接続されているため大幅な遅延がなく同期がとれる。

 

・エッジロケーション

コンテンツ配信サービスのCloudFrontやDNSサーバサービスのRoute53を提供する場所のこと。

2015年9月現在で世界中で53のエッジロケーションが存在する。

ちなみに2017年12月24日現在は多くて数え切れなかった。

リージョン - グローバルインフラストラクチャ | AWS

 

 

 

write code every day 57~62日目

毎日コーディングすること自体はだいぶ習慣化されてきた。

毎日ブログに記録してモチベーション維持させなくても問題ないと判断して今週は日曜日にまとめて書いてます。

今週もちゃんと毎日コーディングしてました。

 

特に土曜日なんかは朝の11時から翌朝の7時までなんと20時間もやっていた。

途中食事や作業場所の移動などもあって実際の時間はもっと少ないけど、いやーやりました。一気にリリースまで持っていきました。この達成感久しぶり。

 

 

いったんJavaは一区切りつけて今後はAWSに関する勉強を進めていこうと思う。

 

私にとってこのwrite code every dayは毎日手を動かして技術の勉強頑張りましょうという取り組みなので、コーディングじゃなくても手を動かしてればOKということにする。例えばAWSのコンソールいじったり。そうじゃない新しいことをインプットする余裕がなくなってしまう。

write code every day 55日目

今日は15:00~27:00までやった。

AWSも触った。

EC2とRDSのインスタンスを作ってRDSはEC2を踏み台にしてアクセスする。

RDSにはmysqlを入れ、EC2のjavaを1.8に上げ、springbootアプリのjarをteratermのscpでアップロード。

まだmysqlにデータをインポートしてないのでアプリは起動できないけどここまで思ったよりハマらず出来て楽しかった。

write code every day 53日目

1つバグを潰そうと思ったが潰せなかった。

明日は会社の忘年会なので飲み会終わった後に忘れずにコード書かなきゃなー。

 

 

来年からプロジェクトの異動があって、そこではAWSを使ったネットワーク設計からやるらしい。AWS使ったことないので勉強しなきゃなー。年末年始はAWS漬けになりそう。