#技術書典 7で購入した『コンテナ時代のWebサービスの作り方』を読んだ

f:id:kidani_a:20191218235605j:plain

この記事は【推し祭り】技術書典で出会った良書 Advent Calendar 2019の19日目の記事です。

adventar.org

 

前日の記事はこちらです。

scrapbox.io

 

 

[何で読もうと思ったか]

コンテナについて、3〜4年前から割とよく聞くようになった、Dockerfileも数行の簡単なものなら書いたことはなくはない。でも、コンテナでWebサービスを作るって、例えばAWSでEC2インスタンスを立てる場合とどう違うんだろう?という程度の知識レベル。

簡単にいえば、なんとなく触りはしたことがあるレベルだったので、一度コンテナで動かすWebサービス作りきる経験をしてみようと思い、購入した。

 

ページ数は136ページ。

物理本つきで1500円、ダウンロードのみで1000円。

tomato360.booth.pm

 

目次は以下の通り。

第 1 章「めざすゴール」
第 2 章「Terraform と ECS について」
第 3 章「Web アプリケーションの作成および CI でのコンテナビルド」
第 4 章「AWS のリソース作成」
第 5 章「ドメイン取得と SSL 化」
第 6 章「デプロイ」
第 7 章「RDS の接続」
付録A CircleCIの設定と解説
付録B GitHub Actionsでのデプロイ

 

[読んで何が分かったか]

本書は基本的に写経することでインフラからアプリまでの実装を一から進めることができるので、コンテナを利用したWebアプリの構築経験を積むという意味ではとても役に立った。

 

写経がメインなので、普段使いではない言語やツールが利用されていたが、それほど苦労することなく進めることができた。

アプリ本体についていえば、普段はJavaJavaScriptがメインで、多少GoとPythonを触る程度なので、本書で利用されているRubyについてはほとんど利用経験がなかった*1。アプリ本体ではないクラウドインフラ部分を管理するツールとしては、これまでServerless FrameworkやAWS CDK、CloudFormationなどに多少触れてた経験はあったものの、本書で利用されているTerraformは全く未経験だった。

 

未経験といえば、写経の過程でドメインを取得する場面があった。

これも、やったことがなかったのでいい勉強になった。おかげでブログ記事も1つ書くことができた。

kdnakt.hatenablog.com

 

[今後どう活かすか]

本書の写経を進めていく中で、アプリに利用されていたRubyについてもう少し理解を深めたいと感じた。

そのため、SoloLearnというプログラミング学習サイトでRuby Tutorial Courseを受講した。写経と平行して進めていたので、だいたい2ヶ月くらいでこのTutorial Courseを完了できたと思う。

www.sololearn.com

f:id:kidani_a:20191219002558p:plain

 

インフラ部分については、AWS自体についてはある程度理解しているつもりなのでそれほど困らなかったが*2、Terraform自体の基本的な文法や構成については、本書ではあまり触れられていなかった。

写経によって、なんとなく新しいリソースを追加したり、既存のリソースを修正したり、といったことはできるようになったものの、基礎がかけているとやはり不安が残る。

 

Terraformの公式サイトを見ると、学習コンテンツへのリンクがあった。

learn.hashicorp.com

数分の動画と短いテキストから成る章がいくつかあるだけなので、年末年始の休みのどこかで時間を見つけてチェックして、Terraformの基礎を身につけたい*3

 

[まとめ]

  • 『コンテナ時代のWebサービスの作り方』は写経でコンテナWebアプリ構築経験が積める良書だった
  • RubyやTerraformといった普段使わない技術に触れることで、勉強のきっかけができた

 

*1:AWS Elastic Beanstalkのインフラ管理コードを読み解く際に、文法を軽く理解した程度。

*2:一応、AWS認定DevOpsエンジニア – プロフェッショナルなので。

*3:チームで開発している製品の一部でTerraformが利用されているので。