プロジェクト

全般

プロフィール

2回目 アジェンダ

9/8(金) 16:10~17:40

1.前回の復習(軽く)

1回目

2.AWSとIaaS,PaaS,SaaSについて

「Infrastructure」「Platform」「Software」+ " as a Service"

(参考)図解でわかる!SaaS、PaaS、IaaSの違いとクラウドサービスとの関係性について

各サービス毎に守備範囲が異なり、AWS側で公式に「このサービスは◯aaS」などと分類はしていない。
あえて分類するなら、個人的には殆どのサービスがSaaSよりのPaaSという分類をしている。
わかりやすくIaaSなサービスはAmazon EC2
わかりやすくPaaSなサービスはAWS Lambdaや、Amazon ECS(on Fargate)
わかりやすくSaaSなサービスはAmazon QuickSight(TableauやLookerなどと同カテゴリのBIツールのサービス)。
その他、Amazon CognitoはIDaaSとして、AWS GlueのETL機能はiPaaSとしてカテゴライズできると思われる。

有名どころのSaaSの裏側がAWS(やAzure,GCPなど)で構築されていることは普通にある。

Software-as-a-Service (SaaS) on AWS

3.VPCについて

AWS Hands-on for Beginners Network編#1 AWS上にセキュアなプライベートネットワーク空間を作成する

(本日覚えて欲しいポイント)

  • パブリックサブネット、プライベートサブネット
  • セキュリティグループ
  • (NATゲートウェイ、VPCエンドポイント)

4.EC2について

Amazon EC2(Elastic Compute Cloud)
数あるAWSサービスの中で最も基本的なIaaSサービスといえる。
いわゆるLinuxやWindowsのサーバーそのものなので基本的に何でもできるが、セキュリティパッチ適用などユーザー側が負担しなければならない責務も広い。
管理コンソール上でポチポチするだけで数分でサーバーを立てられてしまい、料金は秒単位の従量課金(必用なときに必用な分だけリソースを迅速に調達できる、というクラウドの良さをわかりやすく体現している)。

t2.microあるいはt3.microインスタンス利用なら12ヶ月限定で十分な無料枠あり。

(個人的にはEC2を利用しないサーバーレスな構成が好み)

5.RDSについて

Amazon RDS(Amazon Relational Database Service)
RDBMSのサービスでEC2と並んで最も基本的なサービスの一つ。
管理コンソール上でポチポチするだけで簡単にデータベースサーバーを立てられてしまい、料金は秒単位の従量課金。
冗長化構成やバックアップなど、オンプレだと非常に面倒なことをAWSがやってくれるありがたさ。

db.t3.microインスタンス利用なら12ヶ月限定で十分な無料枠あり(ただしauroraは無料枠なし)。

6.本日のハンズオン

デフォルトのVPCの中に、EC2とRDSのインスタンスを作成してEC2からDBアクセスしてみます。
また、EC2にWebサーバー(nginx)をインストールしてブラウザからデフォルトのwebページ(index.html)にアクセスしてみます。

  • 今回はVPCはデフォルトのものを使用(デフォルトのVPC、デフォルトのパブリックサブネット)
  • EC2用のIAMロールを作成
    • 「AmazonSSMManagedInstanceCore」のポリシーをアタッチ(ユースケースで「EC2 Role for AWS Systems Manager」を選択)
  • セキュリティグループ(SG)を作成
    • EC2用(インバウンド許可で 0.0.0.0/0の80ポートのアクセス許可を追加)
    • RDS用(インバウンド許可で EC2のSGに3306ポートのアクセス許可を追加)
  • AmazonLinux2のAMI(Amazon マシンイメージ)で、t2.microのEC2インスタンスを作成(今回は"AmazonLinux2023"ではなく"AmazonLinux2"を選択してください)
    • EC2用のSGをアタッチ
    • (インスタンス作成後に)IAMロールをアタッチ
  • EC2インスタンスにElasticIPをアタッチ
  • SystemsManager SessionManagerからEC2インスタンスのshellコンソールにログイン
    • nginxをインストール
    • Webブラウザからnginxでホスティングしているwebページにアクセス
sudo amazon-linux-extras install -y nginx1
sudo systemctl start nginx
  • RDSのデータベースを作成
    • サブネットグループを作成
    • 標準作成、MySQL、無料利用枠 を選択
    • マスターユーザー名は"admin"のまま、パスワードは今回は自動生成とします
    • インスタンスクラスに「db.t3.micro」を選択(選択を変えると課金が発生するので注意)
    • 追加設定>「自動バックアップを有効にします」を今回はOFFにします
    • しばらく待ってDBが作成されたら「接続の詳細の表示」から自動生成されたパスワードなどを確認できるのでテキストエディタなどに控えておきます
  • SystemsManager SessionManagerからEC2インスタンスのshellコンソールにログイン
    • MySQLクライアントをインストール
    • コマンドラインでMySQLのデータベースに接続してSQLを実行してみる
sudo yum localinstall -y https://dev.mysql.com/get/mysql80-community-release-el7-7.noarch.rpm
sudo yum-config-manager --disable mysql57-community
sudo yum-config-manager --enable mysql80-community
sudo yum install -y mysql-community-client
mysql -u admin -p -h [host名]

※パスワードを訊かれるので控えておいた値を貼り付けます、host名の部分はDBクラスターのエンドポイントを設定します

7.後片付け

  • ElasticIPのデタッチと削除
  • EC2インスタンスの削除(終了)
  • RDSデータベースの削除
    • DBサブネットグループの削除
  • SecurityGroupの削除
  • IAMロールの削除

初心者向けハンズオンなど

AWS ハンズオン資料