2回目 アジェンダ¶
9/8(金) 16:10~17:40
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ロールの削除