tezu memo blog

日々行った作業をメモしていきます

図解 Amazon Web Servicesの仕組みとサービスがたった1日でよくわかる を読んだ

購入した理由

50%OFF and AWS全然知らない人とのコミュニケーションを円滑にする

自身のAWS経験

  1. 3年程度。それまではオンブレミス

  2. 主なロールはBackendのSWE。オンプレミス時代はインフラ未経験

  3. 触ったことのあるサービス

    • Elastic Beanstalk / EC2 / ECS / App Runner / Lambda
    • CloudFront / RDS / Aurora / ElastiCache / S3 / CloudWatch Logs / Athena / SES
    • CodeDeploy / SAM / CDK

良かった点

  1. プロビジョンド方式 という単語。「サーバレスじゃなくて通常の奴って何て言うんだっけ」とよく忘れるので

  2. 物理サーバ・仮想サーバ・コンテナの違い。一軒家・マンション・シェアハウスの例は分かりやすい

  3. 割引(RIとSP)に触れている。長期間の利用が確実な場合は使った方が良い
    高価なRDSは劇的に安くなりますよ!

  4. コンテナのメリット コンテナイメージはどの環境でも起動出来る点
    EC2を直接使用の場合はAMIを生成するツール(Packerなど)、Elastic Beanstalkの場合は設定ファイル(.ebextensions)にDockerfileと同じような記述をすることになるので2重メンテナンスが面倒だった

  5. ネットワーク。VPCやサブネットを単体で理解するのは難しいですが、Webアプリケーションの一般的な構成例が図解されてるので理解が比較的容易になっている

  6. データベース RDSとAuroraの違い。Auroraは書き込みと読み込みのエンドポイントが異なる点など
    LaravelはWrite/Read毎にエンドポイント指定出来ますね

  7. IAM ユーザとロールの違い。ユーザは人、ロールはAWSのサービスが使う
    Backendのプログラムで環境変数にIDとシークレットを登録して、AWS SDKを使用しているのをたまに見かけます

  8. 複数AWSアカウントの利用
    後からマルチアカウントにするのは結構大変なので、最初から本番とテストは別のアカウントの方が良いです

  9. CloudWatch Logs アプリケーションログを転送することでAWSの管理コンソールでログを確認出来る
    オンプレミスだとサーバにSSHして、tailgrep してログ見てますけど、これは不要

追加するとすれば

  1. JSONを説明するなら、jq も一緒に
    AWSの利用頻度が少ない人はJSONに不慣れな可能性があるので jq の存在を知らないかも

  2. (DynamoDBの利用シーンの記載はあったので)DocumentDBの利用シーン
    JSON形式で保存出来るので、Google Formsみたいなフォームビルダーで活躍するのかも(使用した事が無いので想像です・・)

まとめ

主要なサービスの概要が纏まっているので、薄く広く理解出来る良書でした
深堀したい場合は公式を見る。内容が難しいと感じたら、AWSの管理コンソールを操作すれば理解が深まるでしょう

VPC関連が完全な初心者だと結構難しいはず
一旦スキップして、ELB・Route53・CloudFrontだけの理解でも良いかも