DjangoをTencent Cloudで動かす

# DjangoをTencent Cloudで動かしてみる
最近、Tencent Cloudを触る機会ができましたので
ためしにDjangoを動かしてました。

この記事は、インスタンスの起動からDjangoの簡易サーバを起動するところまでです。

## cvm
Cloud Virtual Machine（CVM）は安全及び信頼背の高いElasticコンピューティングサービスのことです。
awsでいうEC2という認識で大丈夫らしいです。

今回は、このcvmを使用しDjangoを動かしてみます。

## 1.SSHキーの作成、取得
cvmの作成を始める前にインスタンスに接続するためのSSHキーの作成を行います。
ナビゲーションから、
products>Compute and Container>Cloud Virtual Machine
に移動後、"今すぐ購入"をクリックしcvmのメニュー画面に移動します。
メニュー画面>SSH keyからNEWボタンをクリックしSSHキーの作成とダウンロードを行ってください。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479842/3520cca2-302c-b3cb-f692-ba248ad30269.png)

作成を行うとこんな感じになります。
![スクリーンショット 2022-05-31 125452.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479842/b8e019d4-1e4e-aba9-d3e9-8a72fd5133a1.png)



## 2.cvmの作成
メニュー画面>Instancesからcvmの作成を行います。
RegionやCVMのタイプ、セキュリティグループなどの設定を行ってください。


ここでは、
Regionは東京
osは、ubuntsを選択しました。
全体として以下のようになりました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479842/8bfcdab8-63f2-6dd3-3c41-2be407064baa.png)


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479842/7dc464ee-20e5-d1b6-9f86-385528dc2c9f.png)


次へのボタンを押すとセキュリティグループなどの設定画面へ移行します。

今回は、とりあえず作って公開するだけですので、
"Security groups"の設定は"Create security group"を選択後、使いそうなポートだけ選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479842/0fb05aa8-3bff-c042-b8f6-7543681f255c.png)



"Login methods"の所では、"SSH key  pair"を選択後、
作成したキーの選択を行ってください。

あとは、すべてデフォルトで設定します。
最後に、確認画面で作成ボタンを押すと無事インスタンスが作成されます。

### インスタスの操作
作成したインスタンスは、コンソール画面の"Instances"から確認が可能です。　
ここでは、作成したインスタンスのインバウンドルールを変更し8000番ポートを開けてみます。

インスタンスの確認画面から作成したインスタンスのIDをクリックしてください。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479842/76fc86f7-72f0-6095-a702-5ab8282f236a.png)

すると、選択したインスタンスの編集画面に移行します。
"security Groups"から"Rule preview"の所でインバウンドルールの編集を行います。
editをクリックしてください。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479842/80224068-b9b8-864d-ba4f-4d2438bf5ff1.png)


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479842/4026da57-6b11-8d45-6db6-1d47aa314391.png)


8000番をあけてみます。
以下のように設定を行ってください。



![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479842/c315abe3-842e-7c8d-50c8-aec8c087810b.png)


## 3.sshでインスタンス接続

インスタンスへの接続方法ですが、インスタンスの選択画面から接続が可能です
"log in"の所をクリックするだけでインスタンスへの接続を行うことができます。

![スクリーンショット 2022-05-30 134740.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479842/1b167c99-8c88-4513-b5d3-50aace4682a3.png)



ログイン後、以下のような画面が出てきますので、"select Key"の所で、ダウンロードしたSSHキーを選択しインスタンへ接続します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479842/97fd82e8-f9cd-3b81-4d58-fa48526424b6.png)


ターミナルの画面が出てきますので
Djangoの設定などを行っていきます。

## インスタンス内での作業

まずは、古いかもしれませんので、apt-getのアップデートを行います。

```
$sudo apt-get update
```

次に、pythonが入っている確認してみます。
調べてみると、初めからpython 3.8が入っていましたので、そのまま使用します。

```
$ python --version
Python 3.8.10 
```

必要なパッケージをインストールします。

```
 $sudo apt-get install python3-pip python3-dev 
```
'Do you want to continue?'
がでてくるのでyを入力してください。

djagnoのインストールを行います。
```
 $sudo pip install django  
```

## プロジェクトの作成と移動
Djangoのプロジェクトを作成します。
tensentの所は
```
$ django-admin startproject tensent
$ cd tensent/
```

Djangoの設定を変更します。
インスタンスの確認画面でインスタンスに紐づけられているIPアドレスの確認ができます。
Primary IPv4の欄に列にある 
(public)の左に書いてある値をコピーしALLOWED_HOSTSの所に入力してください。

※ 一応、vimはa押して編集を開始します。
esc :wqで保存です。（なぜか、こちらの環境ではespキーが反応せず、ctl +c が対応しました）

```
$ vim project1/settings.py
ALLOWED_HOSTS =['インスタンスのIPアドレス']
```

とりあえず、動かすだけでしたら下のような
ワイルドカードを使用しても大丈夫です。

```
$ vim project1/settings.py
ALLOWED_HOSTS = ["*"]
```
migrateを実行します
```
$ python3 manage.py migrate
````

Djangoを動かしてみましょう。
以下のコマンドからサーバーを動かしてみます。

```
$ python3 manage.py runserver 0.0.0.0:8000
```

ブラウザのアドレスバーから
インスタンのIPアドレス:8000
を張り付けてください。



![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479842/b8f4e617-940d-2ec2-9184-16ccfa6f35be.png)



無事動きました。


## 返し方
使わなくなったインスタンスの返却は簡単です。
破棄したいインスタンスを選択後
インスタンスの確認画面にあるTerminate/Returnをクッリクすると
返却画面い移行します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479842/7927f0cc-53d0-51aa-039b-01726fe10f69.png)

後は流れで、入力してください。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479842/fcaa97e4-c9da-a76c-23b5-a5f364d6b456.png)