【読了】さわって学ぶクラウドインフラ Amazon Web Services 基礎からのネットワーク&サーバー構築 改訂版
SBJソリューション部のserinaです。
AWSを業務でさわり始めてもうすぐ4ヶ月になります。
同じ部署の人が、この本をお勧めしてくれて、そして、貸してくれました!!
インフラ周りの知識が無さすぎるんですが、そんな私でも理解しやすい内容でとても良かったです。感想と本とは違うコマンド使用した箇所をまとめておきたいと思います。
書籍
タイトル:さわって学ぶクラウドインフラ Amazon Web Services 基礎からのネットワーク&サーバー構築 改訂版
著者:大澤 文孝, 玉川 憲, 片山 暁雄, 今井 雄太
版数:第二版
(執筆時点での最新版は、第4版です。)
対象読者
インフラの知識もほとんどなく、AWSも勉強したい初心者の方向け。(のように感じました)
感想
もっと早く読めば良かったです。
基本情報や応用情報の資格勉強したときにIPアドレスのことも学習したのですが、あまりよくわからず、ふわっとした理解になっていました。
この書籍では、わかりやすくIPアドレスについて説明されていて全然インフラわからない状態でもスムーズに読み進められました。
何より、実践形式なのがとても良いです。
最初にざっくり説明してすぐにハンズオン形式に入り詳細に解説していくスタイルなので、
読むのが億劫になる暇なく自分でAWSをさわって進められました。
理解できるようになったこと
- IPアドレス
- サブネットなどの用語
- 踏み台サーバーの使い方
- プライベートサブネットとパブリックサブネット、それぞれの構築の方法と違い
実際に使用したコマンド
この改訂版が出たのは、2017年だったのでもう7年も経過していることもあり、コマンドが違う箇所がありました。
最新版ではなく古い版の書籍で勉強している人もいますよね。(いるはずだ)
なので、私の環境で動かなかった箇所を記載します。
-
PC環境
- PC:MacBook Pro
- チップ:Apple M3
- メモリ:16 GB
-
AWS環境
- EC2
- AMI: Amazon Linux 2023 AMI
- EC2
p.168 yumコマンドでインストールできない
Before
$ sudo yum -y install mysql-server
Amazon Linux 2023 repository 46 MB/s | 27 MB 00:00
Amazon Linux 2023 Kernel Livepatch repository 65 kB/s | 11 kB 00:00
No match for argument: mysql-server
After
dnfコマンドを使用する方法にしました。
- 2023年のMySQLのGPGキーをインポート
$ sudo rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2023
- インポートしたキーを確認
$ rpm -q gpg-pubkey --qf '%{NAME}-%{VERSION}-%{RELEASE}\t%{SUMMARY}\n'
gpg-pubkey-d8XXXXXXX Amazon Linux <amazon-linux@amazon.com> public key
gpg-pubkey-3aXXXXXXX MySQL Release Engineering <mysql-build@oss.oracle.com> public key
gpg-pubkey-a8XXXX-XXXXX MySQL Release Engineering <mysql-build@oss.oracle.com> public key
- dnfをアップデート
$ sudo dnf update
- MySQLをインストール
$ sudo dnf install -y https://dev.mysql.com/get/mysql80-community-release-el9-1.noarch.rpm
$ sudo dnf install -y mysql-community-server
- MySQLを起動
$ sudo systemctl start mysqld
- ステータスを確認
$ sudo systemctl status mysqld
p.169 ユーザー作成と権限付与が同時にできない(MySQL8.x)
Before
書籍通りにやったら構文エラーになってしまいました。
mysql> grant all on wordpress.* to wordpress@"%" identified by 'XXXXX';
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'identified by 'XXXXX'' at line 1
After
MySQL 8.0以降では、IDENTIFIED BY
句を使用した GRANT
ステートメントの構文が使えなくなったらしいです。
通常、データベース管理者は最初に CREATE USER を使用してアカウントを作成し、その非権限特性 (パスワード、セキュアな接続を使用するかどうか、サーバーリソースへのアクセス制限など) を定義してから、GRANT を使用してその権限を定義します。 ALTER USER を使用して、既存のアカウントの非権限特性を変更できます。
- ユーザーを作成する
mysql> CREATE USER 'wordpress'@'%' IDENTIFIED BY 'XXXXX';
- 権限付与する
mysql> GRANT ALL ON wordpress.* TO 'wordpress'@'%';
- 権限を反映する
mysql> flush privileges;
sudo yum -y install php php-mysql php-mbstring
が使えない
p.171 Before
このコマンドは、エラーになってインストールできなかったです。
$ sudo yum -y install php php-mysql php-mbstring
Last metadata expiration check: 1 day, 10:11:57 ago on Sun Sep 15 06:09:01 2024.
No match for argument: php-mysql
Error: Unable to find a match: php-mysql
After
php-mysqlnd
でいけました。
sudo yum -y install php php-mysqlnd php-mbstring
最新のAmazon Linux 2やCentOS 8以降では、php-mysqlの代わりにphp-mysqlndを使用します。
参考:PHP 用 MySQL ネイティブ ドライバー - mysqlnd
最後に
薄めの本なので、サクッと読み終えられて技術本を読むモチベーションが上がりました!
1日くらいで終えられるボリュームだったので、まだ読んでない方は是非読んでみてください。