Amazon EC2 - Amazon Polly for WordPress

テキスト読み上げ機能を WordPress のウェブサイトに追加します。
Amazon Polly for WordPress プラグインを使います。
今回は EC2 上で WordPress サイトをホストします。
AWS で WordPress サイトを立ち上げるには、[【Amazon EC2 - WordPress ハンズオン】](https://qiita.com/leomaro7/items/3cfca54a55d7e0a12687)を参照してください。


---
###1.IAM ポリシーの作成
WordPress 用の AWS アクセス権限を作成します。

IAMから「ポリシー」 の「ポリシーの作成」を選択します。
![スクリーンショット 2018-08-18 21.41.26.png](https://qiita-image-store.s3.amazonaws.com/0/280929/18f5b046-3f25-5c12-08a4-a1909b31acc3.png)

ポリシーの作成ページ表中で 「JSON」 タブのエディター中に下のコードを貼り付け、「Review Policy」 ボタンを選択します。

`{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "Permissions1",
            "Effect": "Allow",
            "Action": [
                "polly:SynthesizeSpeech",
                "s3:HeadBucket",
                "polly:DescribeVoices"
            ],
            "Resource": "*"
        },
        {
            "Sid": "Permissions2",
            "Effect": "Allow",
            "Action": [
                "s3:ListBucket",
                "s3:GetBucketAcl",
                "s3:GetBucketPolicy",
                "s3:PutObject",
                "s3:DeleteObject",
                "s3:CreateBucket",
                "s3:PutObjectAcl"
            ],
            "Resource": "arn:aws:s3:::audio_for_wordpress*"
        }
    ]
}`

![スクリーンショット 2018-08-18 21.44.31.png](https://qiita-image-store.s3.amazonaws.com/0/280929/1aa8f015-846f-abb7-c9a5-a7f21c66ddf6.png)

ポリシーの確認ページの [名前] で「PollyForWordPressPolicy」と入力し、 「Create Policy」ボタンを選択します。
![スクリーンショット 2018-08-18 21.47.54.png](https://qiita-image-store.s3.amazonaws.com/0/280929/bcd7954a-712c-5398-c1fb-e9de5886798f.png)

「ロール」 から 「ロールの作成」を選択します。
![スクリーンショット 2018-08-18 21.48.46.png](https://qiita-image-store.s3.amazonaws.com/0/280929/d4209daf-e5eb-0e84-e249-185f8a2a1608.png)

「AWS サービス」 サービスのリストで、「EC2」を選択し 「次のステップ:アクセス権限」と進みます。![スクリーンショット 2018-08-18 21.50.53.png](https://qiita-image-store.s3.amazonaws.com/0/280929/27598e88-3371-aac3-cceb-5ca17b943f08.png)

アクセス権限ポリシーをアタッチするページの検索ボックスで PollyForWordPressPolicy と入力し、 [チェックボックス] を選択し、「次のステップ：確認」 へと進みます。![スクリーンショット 2018-08-18 21.52.42.png](https://qiita-image-store.s3.amazonaws.com/0/280929/d0c856aa-6582-af2d-36be-c07ec1a3733c.png)

[ロール名] に PollyForWordPressRole と入力し、「ロールの作成」に進みます。
![スクリーンショット 2018-08-18 21.54.43.png](https://qiita-image-store.s3.amazonaws.com/0/280929/65d208d7-fed2-75c6-a5b5-d3dd3efbbf89.png)

PollyForWordPressRole ロールを WordPress EC2 インスタンスに割り当てます。EC2 WordPress インスタンスを選択し、[アクション] メニューから、「インスタンスの設定 > IAM ロールの割り当て/置換」 を選択します。
![スクリーンショット 2018-08-18 21.59.08.png](https://qiita-image-store.s3.amazonaws.com/0/280929/b0ccbb6c-95d2-ee25-72d6-0551914abe7f.png)

[IAM ロール] で、先に作成した「PollyForWordPressRole」 を選択し、[適用] をクリックします。
![スクリーンショット 2018-08-18 21.59.57.png](https://qiita-image-store.s3.amazonaws.com/0/280929/da3af54f-6259-15fe-8e2e-5d2fd3395191.png)

###2.Amazon Polly for WordPress プラグインのインストール

WordPress 管理者ページを開いてログインしてください。
*ログイン方法は【WordPress ハンズオン】を参考にしてください。

「Plugins」 を選択し、「Add New」 を選択します。
![スクリーンショット 2018-08-18 22.47.25.png](https://qiita-image-store.s3.amazonaws.com/0/280929/4420441c-24cc-bc8f-e552-49e10a27a106.png)

「Upload Plugin」、[Keyword]から Amazon Polly for WordPress を検索し、「Install Now」をクリック、インストール後は「Activate」をクリックします。
![スクリーンショット 2018-08-19 19.16.48.png](https://qiita-image-store.s3.amazonaws.com/0/280929/c94c441f-a000-469f-dfef-3237f97715ec.png)

###3.Amazon Polly for WordPress プラグインの設定（とばしても可）

今回は音声を変更してみます。 「Settings」を選択し、[Voice name]を適当なものに変えてみましょう。 
![スクリーンショット 2018-08-19 19.21.49.png](https://qiita-image-store.s3.amazonaws.com/0/280929/ea00be70-986c-936d-06d0-c29b4271af26.png)


###4.テスト

「Posts」 から「New」 を選択し、新規ポスト作成のウィザードで、タイトルやコンテンツを書きます。同じ画面で、「Enable Amazon Polly」 にチェックし 「Publish」 を選択して新規ポストを保存します。
![スクリーンショット 2018-08-19 19.24.55.png](https://qiita-image-store.s3.amazonaws.com/0/280929/06a3293c-691d-1ada-b417-456681662a1e.png)

WordPress サイトを開き、プレイヤーの組み込まれた新規ポストが見えるはずです。「再生」 ボタンをクリックして音声になった記事を聞いてみましょう。
![スクリーンショット 2018-08-19 19.29.30.png](https://qiita-image-store.s3.amazonaws.com/0/280929/69bf9938-a47e-55b3-ba94-348698a8bf83.png)