IT社員3人組によるリレーブログ

某IT企業に勤める同期3人が、日常で思ったことを記録していきます (twitter: @go_mount_blog)

【AWS入門】例題で実践学習!!

どうも、Keiです。

突然ですが、皆さんはAmazonを使っていますか?

 

f:id:go-mount:20181017211453p:plain

 

使っていますよね?

毎日荷物が届いているって人もいると思います。

 

今日はそんなAmazonのサービスの中でも近年ありえないスピードで成長しているAmazon Web Service(AWS)について学習していきましょう。

 

AWSはご存知の方が多いかと思いますが、Amazonが提供しているクラウドサービスです。

2017年と比較した2018年の売上高は脅威の48%増だそうです。

 

また、少しデータは古いですがAWSで提供しているサービス数も毎年恐ろしい勢いで増加を続けています。

 

f:id:go-mount:20181016212542p:plain

AWS公式ページより引用

 

また、去年のガートナーのクラウドインフラストラクチャーの評価ではMicrosoftのAzureとGoogleGCPを大きく離し、リーダーのポジションを獲得しています。

 

f:id:go-mount:20181016214626p:plain

 AWS公式ページより引用

 

さて、このように快進撃を続けるAWSですが、皆さんの企業でも既に利用しているかと思います。

一方で、まだ利用していないという方も今後社内のITインフラをAWSに移行する機会があるかと思います。そんな時にAWSの知識は是非知っておいて損はない知識かと思います。

操作も、環境構成だけであればブラウザでポチポチ作るだけだし。

 

環境を作ってみよう!

今回は下のような基本的な環境を構築するときに、AWSでどう実現するかについて話をしたいと思います。

やはり、こういう技術的な話は本だけ読んでいても良くわからない部分があるので実際に手を動かしてみるのが非常に大事だと思います。

 

作成インフラ要件

今回は例題みたいな形で下のような環境を作ることを考えましょう。

細かい話はたくさんあるかと思いますが、まずはざっくりで!

 

【サーバ要件】

  • EC2インスタンス x 3(Not dedicated)
  • 各EC2インスタンスはAZ冗長
  • 2台はWebサーバでELBで50:50にローバラ
  • 残りの1台は基盤サーバとし、RDSとしてAmazon Auroraを配置
  • EC2のストレージはEBS(ローバラ時IOPS 10,000未満を想定)

 

【ネットワーク要件】

  • VPC[10.0.0.0/16]配下に/24の3つのサブネットを作成
  • 3つのサブネットの内、2つをウェブサーバに使用し、インターネットからのアクセスOK
  • 基盤サーバはプライベートネットワークとするが、バッチのDL等のために内側からのみインターネットにアクセスOKとする

 

【ストレージ】

  • 各EBSのスナップショットを5分に1回S3ストレージで取得

 

【セキュリティ】

  • S3へのEC2からのアクセスはIAMロールで行う
  • ELBへの外部からのアクセスはHTTP/HTTPSのみとし、セキュリティグループにより実現する

 

AWSのサービスで実現すると

 下記のような構成が考えられるかと思います。

 

f:id:go-mount:20181017205317p:plain

 

簡単に各コンポーネントについて説明したいと思います。

 

EC2

皆さんもよくご存知の仮想サーバです。

今回は AZは3つ用意し、分散冗長させています。AMIやら細かい設定は今回は省略します。

 

EBS

EC2にアタッチできるブロックストレージ(従来からのHDDやSDDのようにディレクトリ構造のストレージ)はEBSとインスタンスストアがありますが、今回は不揮発性のEBSを使います。

 

MySQL

基盤サーバのRDSとしてEC2にアタッチします。

 

ELB

ロードバランシングには各EC2をアタッチします。

 

S3バケット

オブジェクストレージとして、各EBSのスナップショット(バックアップ)を保存します。

 

VPCやルートテーブルについても、ネットワーク要件に合わせて作成できているかと思います。

また、セキュリティグループやIAMユーザ/ロールについても図には起こしていませんが、適切に設定する必要があります。

 

次回はこれらの設定を含めてAWSダッシュボード上でどのように入力していくかについて紹介したいと思います。

今回は、まずAWSのサービスを使ってどのように要件を具体化するかについて説明していきました。

それではまた!