- 1. AWS S3にAngularのプロジェクトを配置して公開する(初心者向け)
- 2. S3バケットを空にするRubyスクリプト
- 3. VPC (Virtual Private Cloud) ~ AWS学習メモ ~
- 4. AWS試験対策(④コンピューティングとストレージ続々)
- 5. CloudFormationがなんやよおわからへんからおしえてや
- 6. AWSの10分間チュートリアルをやってみる 6. アプリケーションを更新する
- 7. AWS試験対策(③コンピューティングとストレージ続)
- 8. 【DevOps試験対策#2】課題解決の鍵とは?
- 9. CloudFormationでスタックを作成しようとしたら「Encountered unsupported property (PropertyName)」となる
- 10. AWSにdjangoでWebアプリを立ち上げて転職
- 11. Rails】An error occurred while installing unf_ext (0.0.7.6), and Bundler cannot continue.【解決策】
- 12. 【AWS&Rails】 listen “#{app_path}/tmp/sockets/unicorn.sock”がないみたいなエラー【解決策】
- 13. LambdaでEC2内のシェルスクリプトを実行
- 14. Amazon Athena で no viable alternative at input への対処法
- 15. Rails AWS EC2デプロイフロー ①EC2インスタンス作成編
- 16. クラウド(AWS)上に検証環境を構築するメリット・デメリットまとめ
- 17. 新米エンジニアがクラウド(AWS)上での検証環境構築に挑戦してみた
- 18. AWS CloudFormationでAmazon S3のブロックパブリックアクセスを設定するのに必要なアクセス許可設定
- 19. Docker Swarmで学ぶサービスメッシュ
- 20. AWS CLI v2 が GA(General Availability) になったので早速使ってみました。
AWS S3にAngularのプロジェクトを配置して公開する(初心者向け)
S3×Angularということで、S3にAngularのプロジェクトを置いて、ホスティングする方法です。
セキュリティ周りに関しては説明していません。とにかく公開したい人向けです。
***
# S3のバケットを作る
### 用語
> バケット…フォルダの一つ上の概念容量無制限のハードディスクみたいなもの。バケット名は世界中で一意である。
***
### バケット作成手順1(バケット名を決める)
世界で一つだけのバケット名を決めてください。
![](https://i.imgur.com/hxY2Fp4.png)
***
### バケット作成手順2(オプションの設定)
今回はそのまま「次へ」を押下してください。
![](https://i.imgur.com/Bgja0nc.png)
***
### バケット作成手順3(アクセス許可の設定)
ここでは、アップロードされるファイルに対するアクセスに誰をブロックするかを指定します。今回はひとまずすべてのチェックを外します。
![](https://i.imgur.com/89ulsTS.png)
***
### バケット作成手順4(確認)
S3バケットを空にするRubyスクリプト
APIなどでバケットを削除する際、空にしてからでないと削除できません。バケットを空にするプログラムを作るのは、けっこうな手間なのですが、Rubyだと一発でいけます。
“`ruby:clear-bucket.rb
require ‘aws-sdk-s3’
bucket = Aws::S3::Bucket.new(‘<バケット名>‘)
bucket.clear!
“`
VPC (Virtual Private Cloud) ~ AWS学習メモ ~
#VPCとは?
AWS上に仮想的なネットワークを構築しプライベートなクラウド環境を提供するサービス。
VPC領域を作成するとネットワークをEC2インスタンスなどを作成することができる。##VPCの構成要素
構成の順番
1.AWSクラウド → 2.リージョン → 3.VPC → 4.アベイラビリティ―ゾーン
→ 5.VPCサブネット(Public Subnet、Private Subnet)
##サブネット
・サブネットVPC内に構成するネットワークセグメントのことで、1つのVPCに対して1つ以上のサブネットで構成される。
・Public Subnet、Private Subnetの違い【Public Subnet】
インターネットと直接通信を行う目的で作成されたサブネット
AWS試験対策(④コンピューティングとストレージ続々)
ストレージ〜自分はストレージのことよくわかってない気がするけどなんとか生きてる。この機会に覚えたいと思う。
## EBS
cドライブみたいなもん。こいつは一途だから一つのインスタンスにしかくっつけない。一方、インスタンスくんはたくさんのEBSちゃんをたぶらかすことが可能…。
同じAZのインスタンスにのみくっつける。一途な割には遠距離恋愛不可。
他のAZのインスタンスとどーしてもくっつきたい場合は、s3に写真をあげて、くっつきたいインスタンスがあるところで写真からクローン作ればオッケイ。容量は1GB単位で指定できる。最大は16TBまで。最初に10!って宣言しちゃって、後からやっぱ15ほしいわ!とかもできる。
この子はインスタンスに一途だけど運命共同体ではない。インスタンスがいなくなってもこの子は生き続ける。たくましい。
## EBS最適化インスタンス
デフォルトで無効。
インスタンス君はEBSちゃんだけじゃ飽き足らず、いろんなとこに通信というちょっかいを出しに行きます。
なので、忙しくてEBSちゃんへの連絡が遅くなったりします。しかしこのオプションをつければ、EBS専用の回線が
CloudFormationがなんやよおわからへんからおしえてや
CloudFormationのテンプレートを作成するとき、
はじめての人は何をすれば良いのかがよくわからない気持ちになるものです、たぶん。なのでテンプレートについての簡単な解説を。。。
![cloudformation.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/245704/1ac2ae7d-b36b-66f4-a580-9e790892ee9d.png)
## CloudFormationについて
CloudFormationとは、AWSのリソースを簡単に構築することができる機能のことです。
YAML/JSONファイルにリソースの設定を書き込んで、AWSコンソールのCloudFormationでファイルをアップロードすると、
設定したリソースが作成されていきます。
もちろんCLIでもアップロードができます。[AWS CloudFormation](https://aws.amazon.com/jp/cloudformation/)
これら一つのYAML/JSONファイルに設定され
AWSの10分間チュートリアルをやってみる 6. アプリケーションを更新する
こんにちは。トリドリといいます。
新卒で入社した会社でJavaを数年やった後、1年ほど前に転職してからはRailsを中心に使用してアプリケーションの開発をしているしがないエンジニアです。今回、AWSの勉強をするために公式の10分間チュートリアルをやってみることにしたので、備忘のために記事に残していこうと思います。
AWSに関しては、1年ほど前転職活動をしていた時期にEC2とRDSを少し触っていた以外ほとんど触ったことが無い初心者です。
(ただし、このときにアカウントを作ったので、12ヶ月の無料枠は切れていました)[前回](https://qiita.com/toridori111/items/d29d2c4b045db4032875)は「Amazon Elastic Beanstalk を使用したアプリケーションの起動」を行いました。
今回は「アプリケーションを更新する」を行います。
前回の続きで作成したアプリケーションの更新になります。# アプリケーションを更新する
## ステップ 1: アプリケーションコードの更新
前回のチュートリアルでダウンロードしたサンプルコードを
AWS試験対策(③コンピューティングとストレージ続)
自分用メモ、昨日の続きから
## セキュリティグループ
セキュリティのルールをまとめた仮想FW。許可したいものだけ記載するホワイトリスト方式。
インバウンドは外から内へ、アウトバウンドは内から外への通信。
基本的に使うポートだけ開ける(インバウンドに記載する)。
開けすぎると攻撃受ける箇所が多すぎてセキュリティリスクであるから。
EC2のポートを開けるというよりは、ルールを作ってそこにEC2が従う的な感じ。
何が違うかって言うと、22と80のポートを開けたいサーバが2つあったとき、各それぞれに設定を作らなくて良くて、一度設定を作ったとこに所属させれば良い。お手軽。セキュリティグループはステートフルといって、外へのトラフィックのについての、戻りのトラフィックは自動的に許可されるって仕組みらしい。
球技で例えるとわかりやすいかも。テニスとか。
フォアハンドで打ったものがバックハンド側に返ってきても受け取れる。みたいな。
しかし、相手のサーブをバックハンドで受け取るには、準備してないと受け取れないよーってな感じ。また、アクセス元もセキュリティグループで指定できます。Aに入ってるサー
【DevOps試験対策#2】課題解決の鍵とは?
# 前回のおさらい
さて、前回はマルチクラウドプラットフォームの課題抽出を行いました。過去記事についてはこちら[【DevOps試験対策#1】マルチクラウドプラットフォームの是非を問う](https://qiita.com/spazio-431/items/56a9f3addbe9c23896eb)
1. コスト
2. 煩雑化(闇を抱えかねない。)
3. 柔軟性は必要不可欠
4. 運用まで考慮に入れた変革が必要
5. 優先度
6. 業務負荷これらの課題を解決する上で何が必要になるのか。
それぞれを最大限に効果を出すにはどうするのかという観点で考察していきたいと思います。## コスト
一概にコストといっても金額が下がれば良いと言うわけではなく、相対的にコストダウン効果が出ればOKである。
例えばDevOpsを導入することによって、発生を抑止出来るヒューマンエラー、それらに伴うダウンタイムの激減など
定量化して論じることが出来るポイントは相当量に存在する。
また過剰割当リソースの最適化に伴うコスト調整も可能であろう。私自身はこれらを定量化し指標としてたて達成する方法論をK
CloudFormationでスタックを作成しようとしたら「Encountered unsupported property (PropertyName)」となる
## 事象
“`lambda.yml
Resources:
DemoFunction:
Type: AWS::Lambda::Function
Properties:
FunctionName: demo_func
Code:
ZipFile: |
import json
def lambda_handler(event, context):
jsn_str = json.dumps(event, ensure_ascii=False)
print(jsn_str)
Handler: lambda_function.lambda_handler
MemorySize: 128
Timeout: 30
Role: !Sub arn:aws:iam::${AWS::AccountId}:role/Lambda_Basic_Role
Runtime: python3.7
AWSにdjangoでWebアプリを立ち上げて転職
こんにちはmogkenです。
前回Python+Django+AWSでスクレイピングアプリを作って転職という記事を書いてから3ヶ月余りが経ちました。タイトルの通り幸いにも転職が成功して1月からクラウド基盤を開発している会社にサービス企画で転職しました*\(^o^)/*
というわけで今回はその時に作ったPythonのwebアプリをAWSに構築した際の手順を簡単に記録します。ただ申し訳ないのですが随分と前のことなので、やや記憶が曖昧で内容が正しいか保証できません…素人の備忘録だと思ってください。
## 今回のやること
AWSのVM(Centos7)にpython3とDjango、nginx、そしてgunicornをインストールして、作成したWebアプリをデプロイします。ロードバランサーやオートスケーリングもやろうと思っていたのですが、転職ができてしまったので一番簡単な構成で力尽きました…
構成図(最小構成すぎるのでいらないけれど一応)
Rails】An error occurred while installing unf_ext (0.0.7.6), and Bundler cannot continue.【解決策】AWSでデプロイ作業をしていたら以下のようなエラーが出ました。
“`
An error occurred while installing unf_ext (0.0.7.6), and Bundler cannot continue.
“`完全に詰んだかと思いましたが、1時間かけて解決することができたので共有しようと思います。
| | |
|:—————–|——————:|
|rubyのバージョン | 2.5.1 |
| Railsのバージョン | 5.2.3|
| bundlerのバージョン | 2.0.2 |では早速見ていきましょう。
僕は、Pay.jpのgemをbundle installしたかったのですが、An error occurred while installing unf_ext (0.0.7.6), an
【AWS&Rails】 listen “#{app_path}/tmp/sockets/unicorn.sock”がないみたいなエラー【解決策】
AWSでデプロイしようと試みてたら以下のようなエラー出ました。
“`
listen “#{app_path}/tmp/sockets/unicorn.sock”
“`Unicorn関係はほんとに嫌いです?
しかし解決できたので共有します!
| rubyのバージョン | Railsのバージョン | bundlerのバージョン |
|:—————–|——————:|:——————:|
| 2.5.1 | 5.2.3 | 2.0.2 |では早速見ていきましょう
!##手順1 本番環境にいく
“`
ec2ユーザー ElasticIP アプリ名 $
“`
まずはここまでいきましょう。##手順2 ps aux | grep unicornコマンドを叩く
“`
ps aux | grep unicorn
“`
そして1番上の左の数字をkillしてあげてください。“`
ki
LambdaでEC2内のシェルスクリプトを実行
## はじめに
### 本記事の対象となる読者
特定のトリガーでLambdaを起動して、EC2内のシェルスクリプトを実行したい
### システム概要
上記のやりたかったことを実現するために使用したサービスは以下です。
* AWS Lambda(以後Lambda)
* AWS System Manager(以後SSM)
* AWS Elastic Computer Cloud(以後EC2)### 書かないこと
* EC2インスタンスの構築方法
## EC2
Amazon Linux2を使用して、無料利用枠でインスタンスを用意します。
### EC2インスタンスを作成
EC2インスタンスを作成する前に以下のポリシーをアタッチしたIAMロールを作成しておきます。仮に名前は`AWSServiceSSMRole`としておきます。
* AmazonEC2RoleforSSM
* AmazonSSMFullAccess上記で作成したロールをインスタンスに割り当てインスタンスを作成します。
> ssm-agentのインストールは必要ありません。
### インスタンス内
Amazon Athena で no viable alternative at input への対処法
## 背景
以前からあるCloudTrailのログをAthenaで分析したいと思いクエリを投げましたが、クエリが重いのでなんとかしたいと思いました。
Partitionを分割して時間とコストを節約しようと考え、Athenaのテーブルを作成しなおそうと思ったら、`no viable alternative at input ‘create external’` のようなエラーに遭遇。
Syntaxがおかしいっぽいことまではわかるのだけど、これだけじゃどこを直して良いのかわからない。。。
とりあえず、公式ドキュメントを確認。さすがよくまとまってます。
https://docs.aws.amazon.com/ja_jp/athena/latest/ug/create-table.html
## DDL確認ポイント
公式ドキュメントから、確認ポイントを抜粋しました。
これらをひとつひとつチェックしていけば、ほぼ間違いなくエラーは消えるでしょう。* テーブル名に特殊文字(アンダースコア(_)以外)を使ってる
* テーブル名を数値から始めている
* カラム名に特殊文字(アンダース
Rails AWS EC2デプロイフロー ①EC2インスタンス作成編
#はじめに
自分でアプリケーションは作ったものの、なかなかAWSにデプロイできなったので記録として残しておく!
わかりやすく….#1.EC2インスタンスの作成
##①サービスの中から 「**EC2**」 を選択します
![aws インスタンス1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/522222/d6e09f6b-8a32-d054-2350-4209475db00a.png)
##②左の一覧から**インスタンス**をクリック
##③**インスタンス作成**をクリック
クラウド(AWS)上に検証環境を構築するメリット・デメリットまとめ#1.はじめに
元々別記事の一部だったのですが、少し長くなってしまったのでまとめました。
実際に私が検証環境を構築した事例につきましては、以下の元記事にまとめてありますのでご参照ください。[新米エンジニアがクラウド(AWS)上での検証環境構築に挑戦してみた](https://qiita.com/Nanasix76/items/bc33b90d3db8d1715598)
インフラ屋さんの業務の中で、**アプライアンス(製品)の機能検証**は欠かすことのできないフェーズだと思います。
– アプライアンスの実際の挙動を確認したい
– この設計でちゃんと動くのか試したい
– お客さんに提案する前に使い心地を試してみたいといった場面では、規模の大小はどうあれまず間違いなく**機能検証**を実施しますよね。
ですが実機でこの機能検証を行うためには、色々と面倒な準備が必要です。ざっと思いついたものだけでも、以下のようなものがありました。
他にもあるよ!って方はご指摘ください。###2.実機で検証をするためには…
#### 2.1.検証スペースの確保
何はともあれ、まずは検証
新米エンジニアがクラウド(AWS)上での検証環境構築に挑戦してみた
#1.はじめに
##1.1.背景
先日、**「AWS上に検証環境を作って,バーチャルアプライアンスの機能検証をしてほしい」**とお願いされました.恥ずかしながら当時の私はバーチャルアプライアンスのことはおろかAWSのことさえほぼ何も知らず、分からない単語だらけのミッションだったのですが,周囲の方々の協力のおかげでどうにか形になってきました。
試行錯誤の過程で、知らないとハマってしまうであろうポイントがいくつか出てきたため、アウトプットも兼ねて皆さんとナレッジを共有させていただきたいと思います.本記事では機能検証の内容そのものではなく、その前段である**AWS上に検証環境を構築する方法**に焦点を絞って解説したいと思います。
機能検証の内容自体については、またいずれ別記事でまとめる予定ですので、興味がある方は是非そちらもご覧ください。今回はFortinet社のバーチャルアプライアンスを用いていますが、もちろん他ベンダーの様々なアプライアンスにも応用可能な内容だと思いますので、もしも皆さんが同じようなことをする際は、少しでも参考にしていただければ幸いです.
また,「他にもやり
AWS CloudFormationでAmazon S3のブロックパブリックアクセスを設定するのに必要なアクセス許可設定
AWS CloudFormation(CFn)でAmazon S3(S3)のブロックパブリックアクセスを設定するのに必要なアクセス許可をCFnのエラーを信じたら騙されたのでメモ。
S3のブロックパブリックアクセスに関しては下記が参考になります。
Amazon S3 Block Public Access – アカウントとバケットのさらなる保護 | Amazon Web Services ブログ
https://aws.amazon.com/jp/blogs/news/amazon-s3-block-public-access-another-layer-of-protection-for-your-accounts-and-buckets/S3パブリックアクセス設定を試してみる – Qiita
https://qiita.com/atsumjp/items/cb6ddf5e3df4bbf5e4a7## 手順
### テンプレートを用意
こんな感じのテンプレートを用意します。`PublicAccessBlockConfiguration` でブロックパブリックアクセス
Docker Swarmで学ぶサービスメッシュ
# はじめに
本記事はDocker Swarmでクラスタを構築し、サービスメッシュについて学びます。環境はAWSのELB(Elastic Load Balancing)と、EC2(Amazon EC2)インスタンス2台を使用し、Docker Swarmのクラスタを構築します。
![Qiita_swarm.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/221759/a068c1b0-2252-2bc5-46d8-bf793cad7cf1.png)
Kubernetesと比較した際にDocker Swarmを導入するメリットは、導入コストが低いことです。Docker SwarmはKubernetesに比べてハードルが低いため、本番環境にコンテナ技術を導入しようとしているシステムには最適だと考えます。
**Docker Swarmを通してサービスメッシュの意義を体感しましょう。**
## Docker Swarm
Docker Swarmは、Docker社が提供するオーケストレーションツールです。
AWS CLI v2 が GA(General Availability) になったので早速使ってみました。
みんな大好き AWS CLI の v2 が 2020年2月11日日本時間早朝に GA(General Availability) となりました!
わーい。
https://aws.amazon.com/jp/blogs/developer/aws-cli-v2-is-now-generally-available/筆者はAWS CLI の薄い本を書くくらい AWS CLI が好きだったりします。
というわけで、早速使ってみました。## インストール
公式ガイドには Linux、 macOS、 Windows 向けのインストール手順が載っています。
今回は、 AmazonLinux2 で試したので、 Linux の手順に則ってみました。公式ガイド:https://docs.aws.amazon.com/cli/latest/userguide/install-cliv2.html
### インストールする
公式ガイドには以下の記載があります。
https://docs.aws.amazon.com/cli/latest/userguide/install-cliv2-lin