🌊
[AWS] サイトを公開するまで
はじめに
AWSを使って外部にサイトを公開するまでの備忘録です。
グローバルIPアドレスを取得するのに手こずりました。
動作環境
- macOS 14.4 (23E214)
使用したAWSのサービス
- VPC: 仮想ネットワークのプラットフォーム (Amazon Virtual Private Cloud)
- サブネット: VPC内でさらに分割されたネットワーク
- インターネットゲートウェイ: VPCとインターネットを繋げる門番。サブネットに設定
- ルートテーブル: パケットの宛先(IPアドレス)をどこに送るのかを決定する表
- EC2: 仮想サーバー (Amazon Elacstilc Computed Cloud)
手順
VPCの作成
設定
- 作成するリソースを、
VPCのみ
に設定する - VPC名を入力
- IPv4 CIDRを、
10.0.0.0/16
に設定する
サブネットの作成
サブネットを作成をクリック
- サブネット名を入力
- IPV4 CIDRを
10.0.10.0/24
に設定する
インターネットゲートウェイの作成
- インターネットゲートウェイ名を入力
- 作成したVPCをデタッチする
ルートテーブルの作成
- ルートテーブル名を入力
- 作成したVPCを選択
- 下モーダルの
サブネットの関連付け
タブから、作成したサブネットを選択する
- 下モーダルの
ルート
タブのルートを編集をクリックし、画像のように入力する
EC2の作成
変更箇所を赤枠で囲みました
- EC2名を入力する
-
新しいキーペアを作成
をクリックして、入力する
- 一番下の赤枠のように、
パブリックIPアドレスの自動割り当て
が有効化されているか確認する
無効化されていたらパブリックIPアドレスが割り当てられなくなるので注意
sshでEC2にログイン
- パブリックIPv4アドレスをコピー
2.ダウンロードしたpemファイルの権限を変更
% chmod 600 Downloads/[your pem file]
- sshでログインする
% ssh -i Downloads/[your pem file] ec2-user@[public IP]
Apacheのインストール
ssh接続して実行する
Amazon Linux はRedHat系
なので、パッケージ管理にyum
を使う
% sudo yum update -y
# Apacheのインストール
$ sudo yum -y install httpd
# Apachの起動
% sudo systemctl start httpd.service
# 自動的に起動させる
% sudo systemctl enable httpd.service
起動しているか確認
Active: active
になっていたらOK
% sudo systemctl status httpd
Active: active (running) since Thu 2024-09-12 07:57:33 UTC; 7h ago
Docs: man:httpd.service(8)
Main PID: 25860 (httpd)
サーバーを公開
HTTP通信用に、80番ポートを開放する
- インスタンスから
セキュリティ
→セキュリティグループ
→インバウンドルールの編集
-
ルールを追加
から、http
を追加する
実際にアクセスしてみる
ブラウザで、パブリックIPアドレスを入力すると、以下のような画面が出て成功!
client_loop: send disconnect: Broken pipe のエラーが出たら
% [ec2-user@~]$ client_loop: send disconnect: Broken pipe
hostとクライアントの/.ssh/config/
に以下を追加する
おわりに
lambda
API gateway
S3
なんかも使っていくぞ
参考
Discussion