Open stshf opened 3 weeks ago
AWSアカウントを作成
EC2インスタンスを起動
SSH接続
mv key.pem ~/.ssh
chmod 400 key.pem
ssh -i key.pem ec2-user@publicIPv4address
The authenticity of host '54.12.3.45 (54.12.3.45)' can't be established.
ECDSA key fingerprint is SHA256:WyV3fw1iEiBKslM0/m95UCq75kDBULrKi8W71+Ay9Tk.
Are you sure you want to continue connecting (yes/no)?
exit
Elastic IP
通常はinstanceの停止、再起動ごとにPublic IPv4 address が変更されてしまう
Elastic IPという固定されたPublic IPv4 Addressを設定する
dashboardから"Elastic IP"を選択
割り当てを行う
EC2 Serverとの関連付けを行う
SSHログインの簡略化
cd ~/.ssh
vim config
下記を追記
Host 接続先名
HostName Elastic IPv4 address
User ec2-user
IdentityFile ~/.ssh/key.pem
ssh 接続先名
保存先のDirectory作成
sudo mkdir /var/www/
sudo chown ec2-user /var/www/
Nginx
インスタンスアップデートsudo yum update
install
sudo yum -y install nginx
check
nginx -v
自動起動設定: OS起動時にnginxを自動起動させる
sudo systemctl enable nginx
nginxの起動
sudo systemctl start nginx.service
nginxの状態確認
sudo systemctl start nginx.service
log...
Loaded: loaded (/usr/lib/systemd/system/nginx.service; di>
Active: active (running) since Thu 2024-11-14 04:55:20 UT>
Process: 29356 ExecStartPre=/usr/bin/rm -f /run/nginx.pid >
Process: 29357 ExecStartPre=/usr/sbin/nginx -t (code=exite>
Process: 29358 ExecStart=/usr/sbin/nginx (code=exited, sta>
Main PID: 29359 (nginx)
Tasks: 2 (limit: 1113)
Memory: 2.4M
CPU: 59ms
CGroup: /system.slice/nginx.service
├─29359 "nginx: master process /usr/sbin/nginx"
└─29360 "nginx: worker process"
この時点で、Public IPv4 addressにアクセスするとNginxのデフォルト画面が表示される
Welcome to nginx!
If you see this page, the nginx web server is successfully installed and working. Further configuration is required.
For online documentation and support please refer to [nginx.org](http://nginx.org/).
Commercial support is available at [nginx.com](http://nginx.com/).
Thank you for using nginx.
install git
sudo yum install -y git-all
(EC2) gen ssh key
cd ~/.ssh
ssh-keygen
github_key
, github_key.pub
という名称で作成
SSH public keyのGithubへの登録
githubへのアクセス確認
ssh -T git@github.com
sshキーをsshキーエージェントに追加
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/github_key
~/.ssh/configファイルを作成または編集
vim ~/.ssh/config
以下の内容を追加
Host github.com
HostName github.com
User git
IdentityFile ~/.ssh/github_key
StrictHostKeyChecking no
sudoで権限を変更
sudo chown -R $USER:$USER /var/www/
その後でクローン
git clone git@github.com:Recursion-teamdev-go-lang-teamc/space-app.git
cd /etc/nginx/
ファイル編集: vim nginx.conf
server {
listen 80;
listen [::]:80;
server_name _; # 必要に応じてドメイン名を設定
root /var/www/space-app/public;
index index.html;
location / {
try_files $uri $uri/ =404;
}
}
sudo nginx -t
ls -la /var/www/space-app/public
sudo chmod 755 /var/www/space-app/public
sudo chown -R nginx:nginx /var/www/space-app/public
Nginxを再起動 sudo systemctl restart nginx
ステータスの確認 sudo systemctl status nginx
このタイミングで、Public IPv4 Addressにアクセスすると、index.htmlが表示された!
backendはデプロイできていないので、APOD表示はエラーになる
# 設定ファイルをDL
wget https://go.dev/dl/go1.23.3.linux-amd64.tar.gz
# 過去のGoのInsallationを削除し、DLしたGoを展開
sudo rm -rf /usr/local/go && sudo tar -C /usr/local -xzf go1.23.3.linux-
amd64.tar.gz
# 環境変数へPATHを通す
# .bashrcファイルを編集
vim ~/.bashrc
# ファイルの末尾に以下の行を追加
export PATH=$PATH:/usr/local/go/bin
# 変更を即座に反映
source ~/.bashrc
# インストール確認
go version
http://localhost:8000
-> http://public IPv4 address:8000
touch .env .env内にNasa API keyを記述
ここまで来てやっと、Web Appが動くようになった!
今の状況だと、EC2へのsshセッションが切れてもgo serverが動いている。 go serverを停止する方法
ps aux | grep go
ec2-user 43392 0.0 1.8 1238552 18012 pts/2 Sl+ 09:58 0:00 go run cmd/server/main.go
ec2-user 43414 0.0 1.1 1231264 11276 pts/2 Sl+ 09:58 0:00 /tmp/go-build2409831707/b001/exe/main
ec2-user 43773 0.0 0.2 222312 2020 pts/3 S+ 10:09 0:00 grep --color=auto go
プロセスを停止
kill 43392 43414
📋 説明
AWSでdeployする
受け入れ条件(完了の定義)
🔗 関連リソース
📝 注記