AWS関連のことを調べてみた2020年12月01日

AWS関連のことを調べてみた2020年12月01日
目次

CDKで作成した踏み台サーバにAWS SSM Session Manager と AWS Instance Connect を利用してSSH接続する

## TL;DR
– CDK を利用すると踏み台サーバが超簡単に作成できる
– CDK の踏み台サーバにはkeypair設定ができないが、EC2 Instance Connect を利用することで Session Manager 経由のSSH接続を実行できる
– 上記設定は `.ssh/config` に記載し実行できるのですごく便利

以下、一つずつ要素を説明していきます。

## CDKにはEC2だけではなく、踏み台サーバ専用のConstructがある
CDKをちょっと触る始めようか、というところでとりあえずEC2の踏み台サーバくらいの、簡単なお題から作ってみようかなと思いドキュメントをあさっていたところ、なんと以下のようなConstructがあるのに気づきました

– [@aws-cdk_aws-ec2.BastionHostLinux](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-ec2.BastionHostLinux.html)

BastionHostLinux!! はい、そのものずばりの踏み台

元記事を表示

#データサイエンティスト育成を支える技術

## なんでドコモがアドベントカレンダー?2020

お久しぶりです。@dcm_chidaです。
今年もアドベントカレンダーが始まりましたね。

我々NTTドコモは2018年から毎年Qiitaアドベントカレンダーに取り組んでおります。

昨年のカレンダーではQiita民の皆様からたくさんの反響や応援の声をいただきました。おかげさまで今年もこうしてアドベントカレンダーに参加することが出来ます。圧倒的感謝!

[QiitaZine](https://zine.qiita.com/original/202011-ntt-docomo/)でもピックアップしてもらいました!

![qiitazineスクショ.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/319677/5c637984-a1d1-6a3d-7f7e-a392b55abdd2.png)

特に今年は**NTTドコモのR&D部署全体で**アドベントカレンダーを立ち上げております。ドコモの技術や取り組みを紹介するような記事をたくさん投稿していこうと思

元記事を表示

【知識0からのCloudFormation】LambdaをデプロイするCodePipelineを組む

CloudFormationについて知識ゼロ状態から、`APIGateway`+`Lambda関数`をデプロイするCodePipleineを組めるようになるまでの道筋を書き残します。

以下のステップで進めます。

(0) まず触ってみる : VPC作成を題材に
(1) Lambda作成
(2) IAMロール作成
(3) コードをS3に配置
(4) API Gateway作成
(5) Swaggerへ移行
(6) CICDパイプラインを作成
(7) Lambda関数のデプロイ

なお開始時点の理解状況はこんな感じ

* 登場する種々のリソースはコンソールで作成/利用したことはある。
* CloudFormationが何か自体は知ってるが使ったことが無い。
* Code3兄弟は使ったことがある。

# (0) まず触ってみる。
以下の記事を参考にVPCを作成してみてCloudFormationmの書き方、スタック作成/削除を学ぶ。
[CFnを使ってVPCを作ってみる](https://tech.bitbank.cc/cfn-vpc/)

● わかったこと

* template.ymlに

元記事を表示

AWS Lightsail(BITNAME) でVirtualhostを作成しサブドメインでNginxで公開

# はじめに

AWS Lightsailで初めてBITNAMEを使用した。
クセはないが設定ファイルの場所やsocketファイルの配置先が一般的ものとは違う、気を付けよう。

# 設定方法

Virtualhostにwww.sample.comというサブドメインを紐づけます。
DNSだったりCDNだったりの設定は適宜よろしくです。

### ディレクトリ作成

雑にディレクトリを作成。

“`
mkdir -p /opt/bitnami/nginx/html/www.sample.com
“`

### Nginxの設定ファイルを変更

以下がサンプル。
設定ファイルは“`/etc“`配下にないので注意。
***ここから~ここまで***を参考にしてください。

“`/opt/bitnami/nginx/conf/nginx.conf
# Based on https://www.nginx.com/resources/wiki/start/topics/examples/full/#nginx-conf
user daemon daemon;

元記事を表示

Amazon DynamoDBでphpのセッションを管理する

# はじめに
AWS DynamoDBでphpのセッションを管理します。
マルチAZの場合、複数のEC2でセッション情報を同期する必要があります。

その場合、候補に上がるのが、 DynamoDBかElastiCacheになるはずです。

**1. IAMポリシーの作成**
EC2インスタンスにアタッチしているロールに、このポリシーを割り当てます。

“`json:php-sessions
{
“Version”: “2012-10-17”,
“Statement”: [
{
“Effect”: “Allow”,
“Action”: [
“dynamodb:GetItem”,
“dynamodb:UpdateItem”,
“dynamodb:DeleteItem”,
“dynamodb:Scan”,
“dynamodb:BatchWriteIte

元記事を表示

SessionManagerでPrivateなEC2にアクセスする

SessionManagerを利用してPrivateなEC2にアクセスする方法です。

NATGatewayかVPCエンドポイントを利用するかになりますが
基本的にはセキュリティ面、コスト面からVPCエンドポイントを利用したほうが
良いケースが多いと思います。

## SessionManager用VPCエンドポイントの作成
以下の3つのエンドポイントを作成します。

* com.amazonaws.[region].ssm
* com.amazonaws.[region].ec2messages
* com.amazonaws.[region].ssmmessages

それぞれインバウンドでHTTPS(443)を許可します。
基本はこれでSessionManagerの接続が行えるようになりますがS3へのログ保存等を
行う場合などは以下を追加するなど、あとは追加機能に応じて対応ください。

* com.amazonaws.ap-northeast-1.s3

詳細手順は以下公式ドキュメントに記載があります。

[Systems Manager を使用してインターネットアクセスなしで

元記事を表示

【Rails】ポートフォリオに動画投稿機能を実装してみた【AWS S3 + EC2 + CarrierWave + Fog】

# はじめに
本記事は [駆け出しエンジニアの第一歩!AdventCalendar2020 1日目](https://qiita.com/advent-calendar/2020/programming-beginner)の記事です。

転職活動に向けて個人アプリを開発しました。
マジシャン向けの動画投稿SNSサイトです。

今回は動画投稿機能について自分の理解を深めるためにもまとめてみようと思います!

Railsを学習し始めて3ヶ月ほどの若輩者ゆえ、必死に色々調べながらなんとか実装できたレベルなので、もし間違っているところや、こうした方が良いというところがあればご意見いただけますと幸いです…!

# 動画投稿機能概要

### アップロード画面
アップロード画面の[ファイルを選択]をクリックし、動画をアップロードします。
タイトル、説明、タグを入力して、[アップロード]をクリックすると投稿されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/620431/ccf1967f-b

元記事を表示

AWS日記21 (Amazon ElastiCache)

# はじめに
今回は Amazon ElastiCache を試します。
サポートされているエンジンのMemcached ( Amazon ElastiCache for Memcached ) を試します。
[Lambda関数・SAMテンプレート]
(https://github.com/tanaka-takurou/serverless-elasticache-page-go)

# 準備
[AWS SAM の準備をします](https://qiita.com/tanaka_takurou/items/cae7c19fc3aaf0031abb)

[Amazon ElastiCacheの資料]
[Amazon ElastiCache](https://aws.amazon.com/jp/elasticache/)

# AWS SAM テンプレート作成

AWS SAM テンプレートで API-Gateway , Lambda, Amazon ElastiCache の設定をします。

[参考資料]
[AWS SAM テンプレートを作成する](https://docs.aws

元記事を表示

【初心者】Amazon EKSを使ってみる #2(WordPressのデプロイ)

# 目的
– 以前、[「【初心者】Amazon EKSを使ってみる (環境構築~サンプルアプリ起動まで)」](https://qiita.com/mksamba/items/666c0d666fbb2e052d19)という記事を書いたが、k8sの理解のため、もう少し各種機能を使ってみる。

# やったこと
– kubernetes.io のチュートリアル[「例: Persistent Volumeを使用したWordpressとMySQLをデプロイする」](https://kubernetes.io/ja/docs/tutorials/stateful-application/mysql-wordpress-persistent-volume/)を参考にして、wordpress/mysqlのpodをデプロイし、httpsでインターネットからWordPressサイトにアクセスできるようにする。

– 主な技術要素
– eksctl (eks環境のデプロイ)
– StorageClass (Volumeの作成)
– ACM連携 (https接続)

# 構成図

![

元記事を表示

AWS/EC2 + nginxを使って、Swagger-ui,Swagger-editorの環境構築をする2/2

## 目的
**AWSのEC2上にnginxを経由してSwagger-ui,Swagger-editorを配置、使用できるようにします。**
かなり苦労しながら2日くらいかけて、調査、環境構築を終わらせたので、
同じように悩んでいる人の助けになれれば幸いです。

#####長くなりそうなので、二部構成にします。(今回は後編・nginx/Swagger編です)
#####前編のAWS編は([こちら][1])
[1]:https://qiita.com/wadakatu/items/c1995b392e7900c0ccd7

## 目次
– [環境構築~nginx編~](#環境構築-nginx編)
– [EC2にnginx導入](#1ec2にnginxを導入)
– [nginx起動](#2nginxを起動する)
– [nginx状態確認-terminal-](#3ターミナル上でnginxの状態確認をする)
– [nginx状態確認-web-](#4サイト上でnginxの状態確認をする)
– [環境構築~swagger編~](#環境構築-swagger編)
– [クローン

元記事を表示

AWS/EC2 + nginxを使って、Swagger-ui,Swagger-editorの環境構築をする1/2

## 目的
**AWSのEC2上にnginxを経由してSwagger-ui,Swagger-editorを配置、使用できるようにします。**
かなり苦労しながら2日くらいかけて、調査、環境構築を終わらせたので、
同じように悩んでいる人の助けになれれば幸いです。

#####長くなりそうなので、二部構成にします。(今回は前編/AWS編です)
AWSのEC2インスタンス作成はできているという方は、後編の[nginx,swagger編][7]から読んでください。
[7]:https://qiita.com/wadakatu/items/5f40a7c6f992c82e5fb3

## 対象読者
+ Macユーザー
+ AWSを使ったことがない方
+ nginxを使ったことがない方
+ swaggerを初めて使ってみたい方

## 目次
– [環境構築手順 ~AWS編~](#環境構築手順-aws編)
– **VPC作成**
– [AWSマネジメントコンソールにログイン](#1a-awsマネジメントコンソールにログイン)
– [VPC一覧画面に遷移](

元記事を表示

Bolt for Python が FaaS での実行のために解決した課題

## Bolt とは & 自己紹介

近年、Slack のプラットフォーム機能開発チームは、Slack 連携アプリを作るための公式フレームワークである「[Bolt(ボルト)](https://api.slack.com/tools/bolt)」の開発と普及活動に力を入れています。私はこの Bolt の開発を担当しています(特に Python と Java は大部分を私が手がけたので、思い入れもひとしおです)。

Bolt を使うと Web API を使ってメッセージやファイルを投稿して通知するだけのシンプルな連携ではなく、ボタンやモーダルを活用したインタラクティブなアプリを簡単に作ることができます。また、そのような UI 部品を使わない場合でも、Bolt を使うと Events API の受信とリスナー関数の実装を非常に簡単に実装することができます。

今年のアドベントカレンダーは、まだそこそこ空きがあるようなので、埋まらなかった日については、この Bolt のノウハウを中心に記事を投稿していこうと思っています。

## それでは本題

この記事では、[Bolt for Python]

元記事を表示

AWS Alexa資格に合格しました

# はじめに
今日(11/30)「AWS Certified Alexa Skill Builder – Specialty」資格(以降AXS)に受かりました。
Alexaの開発を業務でやっている人はあまりいないかもしれませんが、試験としてはあまり難しくないので、頭の体操としては良い経験になったと思います。
誰かの役に立てば幸いです。

ちなみにAlexa資格は2021年3月末をもって終了となるようなので、欲しい人はお早めに。

https://aws.amazon.com/certification/coming-soon/?nc1=h_ls

※過去の記事
[AWS SAAに受かった話](https://qiita.com/kkino1985/items/85bcfa50686fcfe69c56)
[AWS SOAに受かった話](https://qiita.com/kkino1985/items/295509d3d94c726ae56a)
[AWS DVA(とCLP)に受かった話](https://qiita.com/kkino1985/items/8f3db5e102876cca

元記事を表示

Go言語で作成した実行ファイルをEC2でデーモンとして実行する

# 概要
Go言語でbuildした実行ファイルをEC2上に配置しdeamon化します。
そうして、EC2の起動時に自動的にGoでビルドしたWebサーバを実行させます。

### 経緯
Go言語+GinでビルドしたWebサーバをEC2上で構築していたのですが、
EC2の起動時に自動実行されなかったのでいろいろと試した結果、デーモン化しinit.dで自動起動させました。

### 1 ビルドした実行ファイルのデーモン化
“`

ディレクトリ
/etc/systemd/system/サービス名.service

[Unit]
Description=説明文

[Service]
User=root
Group=root
WorkingDirectory=ディレクトリ
ExecStart=ディレクトリ/実行ファイル名
Restart=always
KillMode=process

[Install]
WantedBy=multi-user.target
“`

サービスの確認
> systemctl status サービス名.service
> systemctl start サービス名

元記事を表示

node.jsとserverlessを使ってlambdaでアプリを動かす -複数の関数をlambdaにアップする-

## 前回までのあらすじ
[node.jsとserverlessでローカル環境のコードをlambdaにアップできましたとさ](https://qiita.com/udonnamerou/private/734a35bf94af4dcdecbb)

## 目的
ローカル環境で作成した複数の関数をLambdaにアップして動かしたい

## 実践
#### 環境
node.js v12.18.2

#### ディレクトリ構成
“`
ls -a
. .gitignore node_modules package.json
.. handler.js package-lock.json serverless.yml
“`

#### package.jsonの確認
“`
{
“name”: “application-no-namae-desu”,
“version”: “1.0.0”,
“descriptio

元記事を表示

CodeBuildのプロビジョニングフェーズでdocker pullの制限を回避する

こんにちは
株式会社Diverseで働いている@python_spameggsです
[Diverse Advend Calendar 2020](https://qiita.com/advent-calendar/2020/diverse)の初日になります
CodeBuildのプロビジョニングフェーズでdocker pullの制限でエラーになってしまうことが多くなってきたのでSecrets Managerを使用して解決しました

# CodeBuildのプロビジョニングフェーズでのエラー

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/27949/5fab1ed8-b541-7422-8e52-f6de547d9933.png)

* このようにエラーになってしまいます
* プロビジョニングフェーズでのエラーなのでbuildspecにdocker loginを設定しても意味がないので別の方法で回避します

# Secrets Managerを使う
* シークレットの種類は「その他のシーク

元記事を表示

node.jsとserverlessでローカル環境のコードをlambdaにアップする

## はじめに
node.jsで作成したアプリをサーバーレスで動かしたい。

## 環境
node.js v12.18.2

## Lambda関数の作成

#### ディレクトリ作成
“`
mkdir serverless-node-sample
cd serverless-node-sample
“`

#### npmの初期化
“`
npm init
“`

#### Serverlessのインストール
“`
npm install serverless –save
“`

#### Serverlessの動作確認
バージョン確認

“`
sls -v
“`

以下のように表示されればOK

“`
Framework Core: 2.13.0 (local)
Plugin: 4.1.2
SDK: 2.3.2
Components: 3.4.2
“`

#### Serverlessのテンプレート生成
今回はnode.jsを使うので `aws-nodejs`を使用、他にも[pythonやruby用のテンプレート](https://www.serverless

元記事を表示

AWS CodeBuild のビルド環境に利用するコンテナイメージについて

[AWS Containers Advent Calendar 2020](https://qiita.com/advent-calendar/2020/aws-containers) の 1 日目の記事です。

突然ですが、AWS CodeBuild というサービスをご存知でしょうか。

AWS CodeBuild は、完全マネージド型のビルドサービスです。
AWS でコンテナワークロードのための CI/CD パイプラインを構築する際、コンテナイメージのビルドに AWS CodeBuild を利用している方も多いのではないかと思います。
(つまり、AWS CodeBuild もコンテナファミリー?の一員ですね!)

本記事では、この AWS CodeBuild について Tips を紹介したいと思います。

### ビルド環境に利用する Docker イメージ

AWS CodeBuild では、ビルドプロジェクトに設定された Docker イメージを利用してビルド環境が作成されます。

ビルド環境の Docker イメージには、ユーザーによるカスタムイメージか、もしくは [AWS

元記事を表示

【PostgreSQL】『対向(peer)認証に失敗しました』―psqlログインできない際の対応

#### 背景
以下の環境でWEBシステムを構築し、EC2上のPstgreSQLへマイグレーションを試みた際に、『対向(peer)認証に失敗しました』というエラーが発生。
その対処を以下に記します。

先人たちの知恵をお借りするなどして解決できたことを、この場をお借りして感謝するとともに、大変恐縮ですが自分のメモとしても、こちらへまとめておきます。

#### 環境
– AWS EC2 (Amazon Linux 2)
– Python 3.7.9    ※2020/11/29時点のAmazon Linux2でのデフォルト
– Django 3.1.3
– PostgreSQL 11.5  ※同上
– Nginx 1.12     ※同上
– Gunicorn
– Putty 0.74

### 1.現象
EC2上のPostgreSQLへ、pythonの仮想環境(venv)より`python manage.py migrate`を試みた際に下記エラーが発生。
この時点までに、PostgreSQLでちゃんとユーザーにログイン権限とパスワードを設定しています。

“`:ターミナル
(ve

元記事を表示

【AWS】Redmineの環境構築

AWSでRedmineの環境構築をしたときのメモ:writing_hand:

##失敗
最初はAWS上にDBを作成し、新規DBとRedmineを接続しようとしていました。

試行1
③のブログの記載どおりにPowershellのコマンドから接続しようとしましたが、
“command not found”が表示されたので、いったん諦めました。
後で調べてみるとRubyの必要なファイルをインストールしていなかったことが原因だったようです。
→[Windows10にRubyGemsをインストールする方法](https://qiita.com/ponsuke0531/items/b9036afd4a28f99e89c5)

※AWSのコンソールに表示されているエンドポイントを正しく指定していても接続できない場合
→セキュリティグループでポート番号”3306”(DBで使用しているポート)を追加すると接続できるようになります。

▼その時参考にしたサイトたち
(MySQLのインストール方法)
①[Windows10にインストーラーでMySQLをインストールする方法](https://qiita.

元記事を表示

OTHERカテゴリの最新記事