- 1. terraform – 最新のタスクが実行されない
- 2. AWS Well-Architected 5本の柱を要約する(運用の優秀性)
- 3. AWSで近くの避難場所を通知してくれるLinebotを作ってみた
- 4. cloud-initに日本語が含まれるとインスタンスが正常に起動しない
- 5. [RDSへのデータ移行]1.SCT(AWS Schema Conversion Tool)の設定
- 6. [RDSへのデータ移行]2.SCT(AWS Schema Conversion Tool)でスキーマ変換
- 7. awscli をインストールする時に pipenv 使ってみた
- 8. 【その6〜http→httpsへSSL化編〜】AWS(EC2)にRailsアプリをイチから上げる方法【画像付きで丁寧に解説】
- 9. 【その5〜ドメイン設定編〜】AWS(EC2)にRailsアプリをイチから上げる方法【画像付きで丁寧に解説】
- 10. 【その4〜Railsアプリの公開編〜】AWS(EC2)にRailsアプリをイチから上げる方法【画像付きで丁寧に解説】
- 11. 【その3〜サーバー設定とRailsアプリの配置編〜】AWS(EC2)にRailsアプリをイチから上げる方法【画像付きで丁寧に解説】
- 12. 【その2〜EC2設定編〜】AWS(EC2)にRailsアプリをイチから上げる方法【画像付きで丁寧に解説】
- 13. 【その1〜ネットワーク,RDS環境設定編〜】AWS(EC2)にRailsアプリをイチから上げる方法【画像付きで丁寧に解説】
- 14. AWS CodeBuildでUnity ML-Agentsを動作させる(v0.9.1対応)
- 15. OpenVPNでキャリアNAT超えで自宅LANに接続できるようにする
- 16. AWS SAM CLI を使って、ローカルでLambda環境を構築する
- 17. AWSに登録したら一番最初にやること
- 18. aws cliの煩わしいけどよく使うコマンド
- 19. TerraformでMFAを利用しながらAWSリソースへアクセスする方法
- 20. Serverless FlameworkでAPI Gatewayのバイナリメディアタイプを設定する方法
terraform – 最新のタスクが実行されない
# はじめに
**自己紹介**
Golangをメインにサーバーサイドエンジニアをやってます。
[Twitter](https://twitter.com/kskumgk63)## (Error)terraformで作成したECSが古いタスクを実行している
“`text
service XXXXX was unable to place a task because no container instance met all of its requirements. The closest matching container-instance XXXXXX is already using a port required by your task. For more information, see the Troubleshooting section.
“`### 原因
– 古いリビジョンのタスクが実行されていてポートを専有している。
– `terraform apply` するタスクが最新のリビジョンになっていない。### 解決策
– tfファイルの `t
AWS Well-Architected 5本の柱を要約する(運用の優秀性)
不明点もまだありますが、5本の柱ごとに自分なりの解釈を書いていきたいと思います。
今回は運用の優秀性についてです。~~~は原文引用
# 運用の優秀性とは
~~~ビジネス価値を実現するためのシステムを実行してモニタリングし、それらをサポートするプロセスと手順を継続的に改善する機能が含まれています。~~~運用とは完成したシステムやサービスを稼働させるために必要な日々の業務のこと。
次の2つの作業に大別される。
定期業務:バックアップ、監視、バッチ処理など
非定期業務:システムの増強、プログラムリリース、障害対応など運用の優秀性の柱は運用を効率的にする(非定期業務も含め自動化する)ことと
運用手順などを継続的に改善する旨が記載されている。## 設計の原則
~~~クラウドにおける運用上の優秀性には、6 つの設計の原則があります。~~~・運用をコード化する
⇒手作業ではミスをする可能性がある。スクリプト化などを行うことで手動作業を無くしていく。・ドキュメントに注釈を付ける
⇒自動的に注釈が付くという運用が可能なのか。具体的な方法が不明。・頻繁に、小さく、可
AWSで近くの避難場所を通知してくれるLinebotを作ってみた
#はじめに
本記事は[「あなたを死なせないためのプログラミング」](https://qiita.com/yossymura/items/b19d08235bdb44f06ae8
)に感化され,自分もほぼ同じシステムをバックエンドとしてAWSを使って構築することを目的にしました.システムの詳細な内容は元記事も参考にしてください.また私も災害対策や避難誘導の一助になるようなシステムを作りたいと思い,「ドローンを活用した災害避難勧告システム」や「スマートスピーカーを利用した避難勧告システム」についての記事も公開を予定していますのでそれも合わせて見ていただければと思います.
# 対象読者
– 実際に動くシステムを作ることを目的にしていて,作って学びたい方
– LINE botの開発がしたい方
– バックエンドとしてAWSを使いたいAWS†初学者†の方# 製作物
cloud-initに日本語が含まれるとインスタンスが正常に起動しない# 概要
AWSが提供するECSのAMIバージョン`ami-06c98c6fe6f20c437` (2.0.20191031 x86_64 ECS HVM GP2)、`ami-0064e711cbc7a825e` (2.0.20191024.3 x86_64 HVM gp2) において、cloud-initスクリプト内に日本語が含まれるとインスタンスが正常に起動しない不具合が見つかってます。
再現の検証は行ってませんが、最新の`Amazon Linux 2 AMI`イメージでも同様の現象が発生するとAWSより回答が得られました。# 現象
AWSのリソースはTerraformで管理しており、スケールアウト時は常に最新のイメージを取得する仕組みを作ってました。
“`
data “aws_ami” “this” {
most_recent = truefilter {
name = “architecture”
values = [“x86_64”]
}filter {
name = “name”
values =
[RDSへのデータ移行]1.SCT(AWS Schema Conversion Tool)の設定
# 検証前提
– RDS for OracleからAurora PostgresSQLへのデータ移行を検証する
– 今回は検証のため、同一VPC上にRDSとAuroraを構築
– 検証ステップ
– 1.SCTでスキーマ変換
– 2.DMSでデータ移行– RDS/AuroraとSCT用のEC2は作成済み
|項目|ソースDB|ターゲットDB|
|:–|:–|:–|
|エンジン|RDS for Oracle|Aurora PostgreSQL|
|バージョン|11.2.0.4|10.7|
|DBインスタンス名|sourcedb|targetdb|
|VPC|foals1-vpc|foals1-vpc|
|サブネット|プライベートサブネット|プライベートサブネット|
[RDSへのデータ移行]2.SCT(AWS Schema Conversion Tool)でスキーマ変換
前回→[[RDSへのデータ移行]1.SCT(AWS Schema Conversion Tool)の設定](https://qiita.com/ghogho-seki/items/cd3b712cc6c4ccb75603)
# 1.スキーマ変換
[スキーマの変換](https://docs.aws.amazon.com/ja_jp/SchemaConversionTool/latest/userguide/CHAP_UserInterface.html#CHAP_UserInterface.Overview.ProjectWindow)– 変換対象スキーマを右クリックし**Convert schema**をクリック
– **Yes**をクリック
awscli をインストールする時に pipenv 使ってみた# やりたいこと
awscli をアップグレードしたい。
これをやれと書いてる。
https://docs.aws.amazon.com/ja_jp/cli/latest/userguide/cli-chap-install.html#post-install-upgrade“`
$ pip3 install awscli –upgrade –user
“`でも、 pip で入れてなくて、バンドルされたインストーラでインストールしてた。
# macOS の場合
バンドルされたインストーラでのインストールが推奨されてる。>macOS に AWS Command Line Interface (AWS CLI) をインストールする方法としては、バンドルされたインストーラを使用することが推奨されます。バンドルされたインストーラにはすべての依存関係が含まれており、オフラインで使用できます。
https://docs.aws.amazon.com/ja_jp/cli/latest/userguide/install-macos.htmlただ、どちらにせよ Python
【その6〜http→httpsへSSL化編〜】AWS(EC2)にRailsアプリをイチから上げる方法【画像付きで丁寧に解説】
#AWSにRailsアプリをイチから上げるシリーズ 項目表
|No|タイトル|
|:—|:—|
|その1|[ネットワーク、データベース設定編](https://qiita.com/Yuki_Nagaoka/items/975b7598806d6ae0c0b2)|
|その2|[EC2設定編](https://qiita.com/Yuki_Nagaoka/items/5be084c6efe1f797fd94)|
|その3|[サーバー設定、Railsアプリ配置編](https://qiita.com/Yuki_Nagaoka/items/dbb185feb6d4f051c2f2)|
|その4|[Railsアプリの公開編](https://qiita.com/Yuki_Nagaoka/items/1f0b814e52e603613556)|
|その5|[ドメイン設定編](https://qiita.com/Yuki_Nagaoka/items/3020f02d3fd74c8572a0)|
|その6|[http→httpsへSSL化編](https://qiita.com/Yuki_Na
【その5〜ドメイン設定編〜】AWS(EC2)にRailsアプリをイチから上げる方法【画像付きで丁寧に解説】
#AWSにRailsアプリをイチから上げるシリーズ 項目表
|No|タイトル|
|:—|:—|
|その1|[ネットワーク、データベース設定編](https://qiita.com/Yuki_Nagaoka/items/975b7598806d6ae0c0b2)|
|その2|[EC2設定編](https://qiita.com/Yuki_Nagaoka/items/5be084c6efe1f797fd94)|
|その3|[サーバー設定、Railsアプリ配置編](https://qiita.com/Yuki_Nagaoka/items/dbb185feb6d4f051c2f2)|
|その4|[Railsアプリの公開編](https://qiita.com/Yuki_Nagaoka/items/1f0b814e52e603613556)|
|その5|[ドメイン設定編](https://qiita.com/Yuki_Nagaoka/items/3020f02d3fd74c8572a0)|
|その6|[http→httpsへSSL化編](https://qiita.com/Yuki_Na
【その4〜Railsアプリの公開編〜】AWS(EC2)にRailsアプリをイチから上げる方法【画像付きで丁寧に解説】
#AWSにRailsアプリをイチから上げるシリーズ 項目表
|No|タイトル|
|:—|:—|
|その1|[ネットワーク、データベース設定編](https://qiita.com/Yuki_Nagaoka/items/975b7598806d6ae0c0b2)|
|その2|[EC2設定編](https://qiita.com/Yuki_Nagaoka/items/5be084c6efe1f797fd94)|
|その3|[サーバー設定、Railsアプリ配置編](https://qiita.com/Yuki_Nagaoka/items/dbb185feb6d4f051c2f2)|
|その4|[Railsアプリの公開編](https://qiita.com/Yuki_Nagaoka/items/1f0b814e52e603613556)|
|その5|[ドメイン設定編](https://qiita.com/Yuki_Nagaoka/items/3020f02d3fd74c8572a0)|
|その6|[http→httpsへSSL化編](https://qiita.com/Yuki_Na
【その3〜サーバー設定とRailsアプリの配置編〜】AWS(EC2)にRailsアプリをイチから上げる方法【画像付きで丁寧に解説】
#AWSにRailsアプリをイチから上げるシリーズ 項目表
|No|タイトル|
|:—|:—|
|その1|[ネットワーク、データベース設定編](https://qiita.com/Yuki_Nagaoka/items/975b7598806d6ae0c0b2)|
|その2|[EC2設定編](https://qiita.com/Yuki_Nagaoka/items/5be084c6efe1f797fd94)|
|その3|[サーバー設定、Railsアプリ配置編](https://qiita.com/Yuki_Nagaoka/items/dbb185feb6d4f051c2f2)|
|その4|[Railsアプリの公開編](https://qiita.com/Yuki_Nagaoka/items/1f0b814e52e603613556)|
|その5|[ドメイン設定編](https://qiita.com/Yuki_Nagaoka/items/3020f02d3fd74c8572a0)|
|その6|[http→httpsへSSL化編](https://qiita.com/Yuki_Na
【その2〜EC2設定編〜】AWS(EC2)にRailsアプリをイチから上げる方法【画像付きで丁寧に解説】
#AWSにRailsアプリをイチから上げるシリーズ 項目表
|No|タイトル|
|:—|:—|
|その1|[ネットワーク、データベース設定編](https://qiita.com/Yuki_Nagaoka/items/975b7598806d6ae0c0b2)|
|その2|[EC2設定編](https://qiita.com/Yuki_Nagaoka/items/5be084c6efe1f797fd94)|
|その3|[サーバー設定、Railsアプリ配置編](https://qiita.com/Yuki_Nagaoka/items/dbb185feb6d4f051c2f2)|
|その4|[Railsアプリの公開編](https://qiita.com/Yuki_Nagaoka/items/1f0b814e52e603613556)|
|その5|[ドメイン設定編](https://qiita.com/Yuki_Nagaoka/items/3020f02d3fd74c8572a0)|
|その6|[http→httpsへSSL化編](https://qiita.com/Yuki_Na
【その1〜ネットワーク,RDS環境設定編〜】AWS(EC2)にRailsアプリをイチから上げる方法【画像付きで丁寧に解説】
#まえがき
先日、Railsで制作したWebアプリケーションを、AWSのEC2にデプロイしました。
最初はHerokuにデプロイして運用していたのですが、表示されるまで時間がかかる事から、AWSへ移行する事を決意しました。
先輩エンジニアの方々が残してくれた記事を参考に作業をしたのですが、バージョン更新に伴う仕様の変更等があり、様々なエラーと格闘し大変苦労しました。
AWSは本当にサービスが豊富です。豊富故に、初学者のエンジニアが手を出すと、何から手をつけて良いのか分からないという側面もあります。
同じ様に大変な思いをされている方がいると思いますので、RailsアプリをAWSへ上げる方法を極力画像付きで分かりやすく紹介致します。
この記事では、「Hello World」と表示されるだけの簡単なアプリ「greeting」をアップロードするまでの過程を
解説していきます。本記事を制作時点では、AWSは1年間の使用料が無料となっておりますので、是非この無料期間を活用して、AWSへのデプロイに挑戦されてはいかがでしょうか。
AWSへアプリをデプロイした後、ドメインと紐付け、更
AWS CodeBuildでUnity ML-Agentsを動作させる(v0.9.1対応)
Unity ML-Agents(v0.9.1)の学習をAWS CodeBuildを利用して実行してみました。
UnityやUnity ML-Agentsの環境構築、Dockerを用いた学習方法などは下記をご参考ください。
Macでhomebrewを使ってUnityをインストールする(Unity Hub、日本語化対応)
https://qiita.com/kai_kou/items/445e614fb71f2204e033MacでUnity ML-Agentsの環境を構築する(v0.9.1対応) – Qiita
https://qiita.com/kai_kou/items/268ccf6f961f8ca8cba8DockerでUnity ML-Agentsを動作させる(v0.9.1対応) – Qiita
https://qiita.com/kai_kou/items/0c2f3c7d22363fd91e4e## 前提
下記記事を参考にUnity ML-Agents(v0.9.1)のDockerイメージをAmazon Elastic Container Regist
OpenVPNでキャリアNAT超えで自宅LANに接続できるようにする
# 動機
もともと自宅のサーバにOpenVPNを入れて外出先から自宅が見えるようにしていて。外出先から自宅の中のメールサーバを見たり、録画しておいた番組を見たり、sshでログインできると幸せだ。今年になってマンション管理会社の方針(管理費のコスト削減)でマンションのインターネットプロバイダが変わることになった。説明会で話を聞いてみると、なんと(ついに)自宅に付与されるアドレスがプライベートIPアドレスになってしまうらしい。いわゆる[キャリアグレードNAT](https://ja.wikipedia.org/wiki/%E3%82%AD%E3%83%A3%E3%83%AA%E3%82%A2%E3%82%B0%E3%83%AC%E3%83%BC%E3%83%89NAT)だ。ほとんどの用途で問題ないとはプロバイダ担当氏の説明であるのだが、私の利用用途はたぶん担当氏の想定外なんだろうな・・・と思いながらもそれをことさらに言いたてることもせず(どうせ言っても理解してくれないし、理解してくれたところで解決策もなく徒にマンションの同居世帯の和を乱すだけ)、自力で解決策を探ることにした。自前で自室
AWS SAM CLI を使って、ローカルでLambda環境を構築する
## はじめに
AWS SAM CLIを使って、Lambda環境をローカルで構築できると聞いて構築してみました。
チュートリアルでオプションになっているローカルで動作させるところをゴールとしています。
なので、開発者ガイドに書かれているようなIAMやS3は設定しません。AWS CLI もインストールしません。
ローカルのLambdaは、Docker コンテナで動作します。また、この記事では下記の開発者ガイドを参考にしています。
各コマンドが何を行っているか詳細が書かれているので、気になる方は参照してみてください。– [チュートリアル:Hello Worldアプリケーションのデプロイ](https://docs.aws.amazon.com/ja_jp/serverless-application-model/latest/developerguide/serverless-getting-started-hello-world.html)
この記事は、2019年11月時点で作業記録です。
## 環境
– CentOS Linux release 7.6.1810
– Do
AWSに登録したら一番最初にやること
## 目的
このエントリーはIAMのダッシュボード画面のセキュリティステータスを全て完了させるのが目的です。
AWSを利用するにあたって必ずしも必要な設定ではないですが、アカウントが乗っ取られたり悪用されて身に覚えのない請求が発生する可能性を最小限に止めることができます。
## 免責
社内カリキュラム利用を想定し、一部簡略化して記載しています。
不明な点があれば質問してください。
共同編集のリクエストもOKです。
## 早速始める
### AWSにルートユーザーでログインする
ルートユーザーであることを確認してログインしてください。
### AWSマネジメントコンソールからIAMを開く
「サービスを検索する」にて`IAM`を検索しましょう。
aws cliの煩わしいけどよく使うコマンド
# region取得したい時
“`
aws configure get region
“`
# account ID抽出したい時
“`
$ aws sts get-caller-identity –query Account –output text
“`# 他
何かあれば追記予定
TerraformでMFAを利用しながらAWSリソースへアクセスする方法
# 今回は
### [aws-vault](https://github.com/99designs/aws-vault)を使ってみます
# 前提
– 下記設定が終了していること
– ~/.aws/config
– ~/.aws/credentials– source_profileの指定をしないこと
## 使い方(MacOSの場合)
Brew caskでインストール“`
$ brew cask install aws-vault
“`プロファイルを作成、アクセスキーとシークレットキーを入力
“`
$ aws-vault add PROFILE_NAME
“``aws-vault ls` で登録したプロフィールが確認できる
“`
$ aws-vault ls
“``aws-vault` から一時的なアクセスキーを渡してプロセスを実行
“`
$ aws-vault exec home — aws s3 ls
“`
Serverless FlameworkでAPI Gatewayのバイナリメディアタイプを設定する方法
表題の件、日本語文献だと`serverless-plugin-custom-binary`を用いるパターンが散見されるが、
内容が古く、Version1系の説明が多い
現時点(2019/11)ではVersion2(それもリリースは2018/6)で、設定方法が変わっている– Version2
“`yaml
plugins:
– serverless-plugin-custom-binary
custom:
apiGateway:
binaryMediaTypes:
– image/jpeg
“`
https://www.npmjs.com/package/serverless-plugin-custom-binary#usage– Version1
“`yaml
plugins:
– serverless-plugin-custom-binary
custom:
apigatewayBinary:
types:
– image/jpeg
“`