見出し画像

AWSインフラの基本と実践:初心者でもできるクラウド構築 第4回

コンピューティングリソースの活用

AWSを使ってインフラを構築する際、サーバーや計算処理を行うためのリソースが必要です。これを「コンピューティングリソース」と呼びます。AWSには、さまざまな種類のコンピューティングサービスが用意されており、必要に応じて適切なサービスを選ぶことで、効率的で柔軟なインフラを作ることができます。

ここでは、AWSで使える主要なコンピューティングサービスについて説明し、それぞれの利点と使い方を紹介します。

コンピューティングリソースの代表的なサービス

1. Elastic Compute Cloud (EC2)

  • EC2は、AWSで最も基本的なコンピューティングサービスで、簡単に言うと「仮想サーバー」を提供するサービスです。

  • 仮想サーバーとは、物理的なサーバーを使わずに、インターネット上で動かすことができるサーバーです。EC2を使えば、サーバーの設定や性能を自分でカスタマイズでき、必要な時にだけサーバーを動かすことができます。

  • 例えば、ウェブサイトをホスティングしたり、大量のデータを処理するためにサーバーが必要な時、EC2を使って必要な台数だけの仮想サーバーを簡単に作成し、利用が終わったら停止することができます。これにより、サーバーの無駄な運用コストを抑えられます。

EC2の利用

使いどころの例

  • ウェブサイトやアプリのホスティング

  • バックエンド処理やデータベースの運用

  • 開発・テスト環境の構築

2. Lambda

  • Lambdaは、EC2とは少し異なり、「サーバーレスコンピューティング」と呼ばれるサービスです。これの大きな特徴は、サーバーを意識せずにプログラムを動かすことができる点です。

  • 通常、プログラムを実行するにはサーバーが必要ですが、Lambdaではプログラムが必要なときだけ自動でサーバーが用意され、プログラムの処理が終わるとサーバーも自動的に止まります。この仕組みを使うと、サーバーの管理が不要になり、使った分だけ課金されるので非常にコスト効率が良いです。

  • 例えば、ユーザーがアプリで何かアクションをした時に、そのアクションに合わせて必要な処理をLambdaで実行することができます。

  • また、動かした結果(標準出力)をログとして、CloudWatch Logsへ自動的に送られます。

EC2(サーバー)とLambda(サーバーレス)

使いどころの例

  • イベント駆動の処理(ユーザーの入力やデータの変化に応じてプログラムを実行)

  • シンプルなバックエンドサービスの作成

  • 短期間で完結する処理(画像のリサイズやデータの変換)

3. Elastic Container Service (ECS)

  • ECSは、「コンテナ」と呼ばれる技術を使ってアプリケーションを動かすためのサービスです。コンテナとは、アプリケーションを簡単に移動したり、他の環境でも同じように動かすことができる小さな仮想マシンのようなものです。

  • ECSを使うと、コンテナにアプリケーションを詰め込み、それをAWS上で管理・実行できます。これにより、開発したアプリケーションを簡単に他の場所に移動させたり、どんな環境でも同じように動かすことができます。

ECS(コンテナサービス)を利用する利点、欠点

使いどころの例

  • マイクロサービスアーキテクチャ(アプリを小さなサービスに分割して管理する方法)

  • 開発と本番環境の統一(同じコンテナをどちらでも使える)

  • アプリケーションのスケーリング(必要なコンテナ数を自動で調整)

4. Elastic Kubernetes Service (EKS)

  • EKSは、ECSの進化版とも言える「Kubernetes」というコンテナ管理の仕組みをAWS上で使えるサービスです。Kubernetesは、世界中で使われている強力なコンテナオーケストレーションツールで、複雑なアプリケーションをたくさんのコンテナで管理するのに適しています。

  • EKSを使うことで、AWS上で簡単にKubernetesをセットアップし、コンテナの自動管理やスケーリング、障害時の復旧などを効率的に行うことができます。

ECSとEKSの比較

使いどころの例

  • 大規模なコンテナアプリケーションの管理

  • 自動化されたアプリケーションのデプロイと管理

  • 既存のKubernetes環境のクラウド移行

5. 実際にAWSを使ってみる:EC2の立ち上げとLambdaの作成
では実際にコンピューティングリソースを構築してみましょう。ここでは、前章で作成したVPCやサブネットを利用して、EC2を起動したり、Lambda関数を作成してプログラムを動かす手順を説明します。

今回のEC2(パブリック)構成
AWS管理コンソールよりEC2を開く
管理コンソールでEC2を表示
左メニューでインスタンスを選択し、右側のインスタンスを起動を押下
インスタンスを起動するための必要項目を入力、選択
新しいキーペアを作成(既存でも可)
キーペアを作成
ネットワーク設定を編集
ネットワーク設定の必要項目を入力、設定
ストレージの設定はデフォルト
全て入力、設定したらインスタンスを起動
起動後の状態、すべてのインスタンスを表示
インスタンスのステータスを確認
パブリックIPを確認
ダウンロードしたキーペアファイルの権限を変更(MacやLinux)
EC2へsshアクセス(キーペアファイルを利用)
EC2への接続を確認したらログアウト
AWS管理コンソールよりLambda表示
次はLambda関数を作成
必要項目を入力、ランタイムは得意な言語を指定
作成後、関数コード(lambda_function.py)の編集
編集後、Deployを押下
Testを押下、新しいテストイベントを作成
テストイベントは名前を設定後はデフォルト設定でSave押下
Testを押下後、作成したテストイベントを選択
標準出力でテスト結果の表示
Lambdaの出力結果を確認するため、AWS管理コンソールよりCloudWatchを表示
CloudWatchでは左メニューからロググループを選択
今回のLambda関数と同じ名前のロググループ名が作成
ログの内容は作成したLambda関数の実行時の標準出力

まとめ

AWSには、さまざまなコンピューティングリソースが揃っており、用途に応じて適切なサービスを選ぶことで、効率的かつ柔軟にシステムを構築できます。
EC2での仮想サーバーを使った従来型の構成から、Lambdaでのサーバーレスアーキテクチャ、ECSやEKSでのコンテナ化アプリケーションまで、AWSはあらゆるニーズに対応するコンピューティングリソースを提供しています。

コンピューティングサービスのまとめ

次に、AWSのストレージサービスについて見ていきます。アプリやサービスで使うデータを安全に保存し、効率的に利用するためには、AWSの強力なストレージサービスが欠かせません。

いいなと思ったら応援しよう!