AWSのチュートリアルの実践方法と、GCPとの比較、AWSの主要サービス紹介についてまとめています。
AWSとは、アマゾンのクラウドサービス
Amazon.comが提供するクラウドコンピューティングサービスです。
ストレージサービスであるAmazon S3を2006年にリリースし、2020年現在では60以上のAWS製品が利用可能。世界中の21のリージョンに、月間100万人のカスタマーが利用しています。
【関連記事】
▶AWS(Amazon Web Service)とは?AWSの基本・料金・はじめ方まで詳しく解説!
AWS入門 Hello Worldチュートリアルを実践
awsは1年間無料で利用可能です。アカウント作成して24時間以内に利用が可能となっています。
すぐに試せる10分間チュートリアルが用意されていますので、試してみると良いでしょう。ただし、チュートリアルは英語表示を前提としているためか、日本語表示だと内容が異なる箇所があります。多少の読み替えは必要ですが、混乱するほどではないでしょう。
最初は操作に慣れるために、Hello,Worldなどシンプルなチュートリアルを試すことをおすすめします。
参考)アマゾン ウェブ サービス (AWS) 使用の 10 分間チュートリアル
- Hello, World!をサーバレスで実行
- Linux仮想マシンを起動
- Dockerコンテナをデプロイ
- MySQLデータベースを作成して接続
- 仮想マシンにコードをデプロイ
- WordPressウェブサイトを起動
実際に、「Hello, World!をサーバレスで実行」チュートリアルを試してみます。このチュートリアルは、PythonベースのサンプルコードをAWSのLambdaコンソール上で実行します。
参考)サーバレスコードを実行する方法 – アマゾン ウェブ サービス (AWS)
AWS マネジメントコンソールを新しいウインドウで開き、チュートリアル(ステップバイステップガイド)を参照しながら操作をおこなっていきましょう。「ソリューションの構築」の「さらに表示」をクリックします。
この部分は、ガイドでは「 [Compute] の下にある [Lambda ] をクリックし、AWS Lambda コンソールを起動します。」と記載されています。一部、解説と実際の画面とで違いがあるようです。
隠れていたメニューが表示されます。「サーバレスマイクロサービスをデプロイする」をクリックします。
関数の作成画面が表示されるので、「設計図の使用」(ガイドではBlueprints)、設計図にhello-world-pythonを選択し、設定をクリックします。設計図の「フィルターの追加」に「hello」と入力すると、簡単に見つけられます。
基本的な信頼(ガイドでは、Basic Information)画面が開くので、関数名にhello-world-pythonと入力し、実行ロールに「AWSポリシーテンプレートから新しいロールを作成」を選択します。
ページをスクロールさせ、「関数の作成」(ガイドでは、Create Function)をクリックします。
「関数hello-world-pythonを正常に作成しました」と表示されます。そのまま設定を変えずに、「テストイベントの選択」プルダウンから、テストイベントの設定を選択します。
この画面では、Runtime(Java、Node.js、C#、Go、Python)とコードの実行場所のハンドラーなどを指定できますが、チュートリアルではデフォルト設定のまま進みます。
テストイベントの設定画面が開くので、イベント名に「HelloWorldEvent」と入力します。
画面をスクロールさせ、作成をクリックします。
テストボタンをクリックします。
しばらく待つと、実行結果が表示されます。何度かテストをクリックします。2回以上処理を実行すると、以下のモニタリング画面にて実行状況がグラフで確認できるようになります。
画面を少しスクロールさせ、「モニタリング」をクリックすると、CloudWatch メトリックスという実行状況モニタを確認することができます。
デプロイしたコードを削除しましょう。「アクション」プルダウンから「関数の削除」を選択します。
「関数 hello-world-python の削除 この Lambda 関数を永久に削除すると、関連付けられたコードも削除されます。ログとロールは削除されません。この Lambda 関数を削除してよろしいですか?」と表示されるので、削除をクリックします。
これでコードは削除されました。
AWSのメリット 導入企業が挙げるのはスケールの簡単さと、コスト抑制
パブリッククラウドと言えば、AWSというぐらい、法人向けのパブリッククラウドサービスとして利用されているAWS。導入した企業には、どのようなメリットがあるのでしょうか?導入事例から抜粋してみました。
- ユニクロのファーストリテイリング社は、コンシューマ向けのモバイルアプリのインフラとしてAWSを採用。アクセス増加時のスケーラビリティと将来的なコスト削減を期待。
- 毎日新聞は、ニュースコンテンツのCMS(コンテンツ管理)インフラにAWSを採用。オンプレミスでの運用に比べ、ランニングコストを5割程度まで削減。モジュール間が疎結合なため、機能追加が容易で、アクセス量10倍程度の負荷上昇にも対応することが可能に。
- 富士ゼロックスは、様々なサービス基盤にAWSを採用し、30%以上のコスト削減を実現。収容システムが2倍、3倍と増えても総支払額の抑制に成功しています。新規サービスはクラウドファーストにするなど、社内でも変革を遂げています。
導入企業が挙げるメリットとしては、アクセスが増えた場合に、簡単にスケールできる点をあげていました。また、長期的な目線ではAWSのサービスを利用して自動化をおこなうことで、運用やメンテナンスに関するコストを抑制できる点も注目されています。
awsとGCPの比較 後進のGCPは料金が安いが、AWSはシェアがダントツ
awsと良く比較されるサービスとして、googleが提供するGCP(Google Cloud Platform)があります。awsもGCPもクラウドサービスですが、どう違うのでしょうか?
参考)GCPとAWSを比較!それぞれのメリット・デメリットは?|NTT東日本
まず価格面では、GCPの方が料金が安いです。正確には、低価格帯から使えるため、小規模システムや検証用などに利用しやすいんですね。一方AWSでは、定期的に利用料金の値下げや還元をするなど値段を下げる努力を続けているようです。
AWSでは、サービスの数がとても多いのですが、サービス名から機能が連想しにくいものも多く(EC2→仮想サーバ、Route53→DNSなど)、初見ではとっつきにくい印象があります。GCPは後発だけあって、サービスの取捨選択がされていて、初見でもある程度はフィーリングで操作できそうです。
上記のNTT東日本のレポートでは、GCPは日本語訳がなく、英語が苦手だと使いづらい旨が書かれているのですが2020年2月現在のGCPは、ほぼ日本語化されていて不便は感じませんでした。
また、GCPの導入実績としても、ソニー、キユーピー、サイバーエージェント、メルカリなど有名企業で導入されています。
しかし、2019年第3四半期のレポートによると、パブリッククラウドのシェアではAWSが40%弱、GCPが10%弱と4倍以上の開きがあります。ちなみにMicrosoftのAzureのシェアは20%弱で、GCPはパブリッククラウド4強のうち3位でした。
今後しばらくは、圧倒的シェアをもつAWSが選択され続けるのかも知れません。
awsのサービスは データベース、ストレージ、仮想サーバなど多彩
データーベースは、メジャーな製品を選択可能
Amazon RDSサービスによって、メジャーなリレーショナルデータベースをクラウド上で扱うことが可能です。
Amazon Aurora、MySQL、MariaDB、PostgreSQL、Oracle、Microsoft SQL Serverが利用可能です。Amazon Auroraは、AWS用にMySQLまたは、PostgreSQLをカスタマイズ・チューニングしたデータベース。AWSと親和性を高めることで、データベース接続を増やし、スケーラビリティ、応答時間、CPU使用率を大幅に改善します。
エンジンのオプションにて、MySQLベースから、PostgreSQLベースを選択可能です。
AWSで扱えるデータベースには、リレーショナルタイプのほかにキー値(Amazon DynamoDB)、インメモリ(Amazon ElastiCache for Memcached、Amazon ElastiCashe for Redis)、ドキュメント(Amazon DocumentDB)、ワイドカラム(Amazon Managed Apache Cassandra)、グラフ(Amazon Neptune)、時系列(Amazon Timestream)、台帳(Amazon OLDB)があります。
クラウドストレージ は大手動画配信サービスにも採用されている
AWSの代表的なサービスが、Amazon S3(Amazon Simple Strage Service)です。インターネット経由でデータの保存やアクセスができるオブジェクトストレージです。
99.999999999%の耐久性と、数十兆を超えるオブジェクト格納レベルまでスケール可能。契約者1億2500万人の動画配信サービスNETFLIXの数十億時間分のコンテンツは、Amazon S3を使って配信されています。
【関連記事】
▶AWSの機能Amazon S3の気になる料金は?S3の従量課金制について解説!
S3の他にも、データベースなどのブロックデバイス用ストレージを提供するAmazon Elastic Block Store(Amazon EBS)、Linux向けのファイルシステムAmazon Elastic File System、Windows向けのAmazon FSx for Windows ファイルサーバ、機械学習やメディアデータ処理用に毎秒最大数百ギガバイトのスループットで大量データを処理できるAmazon FSx for Lustre、データバックアップサービスAWS Backupなどがあります。
仮想サーバは、コンテナ技術使ったクラスタリングが可能
Amazon EC2では、クラウド環境に仮想サーバを構築することができます。
仮想サーバには用途に応じて、vCPU(仮想CPU数)、メモリ、ストレージ、ネットワークパフォーマンスを割り当てることができます。最小のt3.nanoインスタンス(vCPU2、メモリ500MB、ネットワークパフォーマンス最大5Gbps)から、深層学習での推論パフォーマンスを向上させるハイスペックなm5n.24xlarge(vCPU96、メモリ384GB、ネットワークパフォーマンス最大100Gbps)を設定可能です。
EC2で選べるオペレーティングシステムは、Amazon Linux、Microsoft Windows Server 2012、CentOS6.5、Debian 7.4の4種類。
実際の運用では、上記のOSで直接アプリケーションを動作させるのではなく、Dockerコンテナを用いて各種OSのコンテナを実行します。
参考)Amazon ECS
Amazon ECS(Amazon Elastic Container Service)では、Docker Hubなどに公開されているコンテナを実行可能です。具体的には、Amazon ECR(Amazon Elastic Container Registry)を使ってイメージリポジトリを作成し、仮想サーバ上にデプロイします。Kubernetesのようにコンテナ化されたアプリケーションをクラスタ化することも可能です。
まとめ
- AWSはAmazonによるクラウドサービス。月間100万人のカスタマーに利用され、2019年のクラウドのシェアは40%弱で一位。
- AWSには1年間無料の枠があり、チュートリアルなどを自由に試すことができる。サインアップ24時間以内に利用可能になる。
- AWSには、データベース、ストレージ、仮想サーバほか多彩なサービスが用意されている。
- GCPと比較すると値段は高いが、定期的に値下げや料金の還元をおこなっている。